Skip to content

About

Desktop application (React + Tauri)

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Copy Paste Wizard

A small cross-platform desktop app for storing snippets you paste all the time — credentials, tokens, URLs, boilerplate text — and copying them with a single click.

Data lives entirely on your machine (browser localStorage inside the Tauri webview). Nothing is sent anywhere.

Screenshot1 Screenshot2 Screenshot3

Features

  • Tabs → groups → elements — a three-level structure to organize snippets.
  • One-click copy — clicking an element writes its value to the system clipboard and shows a toast.
  • Element types:
    • string — copied to clipboard
    • pass — copied to clipboard
    • link — opened in the default browser
    • danger-link — opened in the default browser, but only after a confirmation dialog
  • Labels — show a friendly name on the button instead of the raw value.
  • Context menus — right-click a tab or element to edit or delete it.
  • Import / export — save all data to a timestamped JSON file, or load it back.
  • Reset — wipe local data.
  • Themes — light / dark, persisted.
  • i18n — English and Ukrainian, persisted.

Tech Stack

Requirements

  • Node.js 18+
  • Rust toolchain and the Tauri v1 prerequisites for your OS (on Linux: webkit2gtk, libayatana-appindicator, librsvg, etc.)

Getting Started

npm install
npm run tauri        # runs `tauri dev` — starts Vite on :1420 and opens the desktop window

Frontend only, in a browser (Tauri APIs — clipboard, dialogs, shell — will not work):

npm run dev

Scripts

Script What it does
npm run dev Vite dev server on port 1420 (strict port)
npm run build tsc type-check, then Vite production build into dist/
npm run preview Serve the built frontend
npm run tauri tauri dev — full desktop app in development mode
npm run formatt Prettier over the whole repo

Building an installer

The tauri script is hard-wired to tauri dev, so use the CLI directly for a release bundle:

npx tauri build

Artifacts land in src-tauri/target/release/bundle/ (targets: "all" in tauri.conf.json).

Project Structure

src/
  components/        feature components (AddTab, AddGroup, AddElement, CopyElement, …)
    ui/              shadcn/ui primitives (button, dialog, select, toast, …)
  routes/            Router, MainLayout, Home, Settings
  store/             Zustand stores — useDataStore (snippets), useLocalizationStore (lang)
  services/          JsonService — import / export / reset
  hooks/             useSwitch
  types/             data + global types
  config/            constants (localStorage key)
  i18n.ts            inline en/uk translation resources
src-tauri/
  src/main.rs        Tauri entrypoint + `save_file` command
  tauri.conf.json    window, bundle and allowlist config

Path aliases: @ → src/, @ui → src/components/ui/ (declared in vite.config.ts and tsconfig.json).

Data Format

Export produces a JSON array of tabs:

[
  {
    "title": "Work",
    "value": [
      {
        "type": "group",
        "name": "Staging",
        "value": [
          { "type": "string", "label": "Admin user", "value": "admin@example.com" },
          { "type": "pass", "label": "Admin password", "value": "hunter2" },
          { "type": "link", "label": "Dashboard", "value": "https://staging.example.com" },
          { "type": "danger-link", "label": "Drop DB", "value": "https://staging.example.com/reset" }
        ]
      }
    ]
  }
]

The same shape is kept under the zustand key in localStorage; the selected language lives under localization.

Notes & Caveats

  • Values are stored in plain text. pass elements are not encrypted or masked — the type only labels intent. Do not use this for secrets you would not keep in a plain file.
  • Imported JSON is not validated (// TODO: validation in src/services/json.service.ts) — a malformed file can put the store into a broken state. Export first if in doubt.
  • The Tauri allowlist is "all": true and csp is null; tighten both before shipping anything public.

License

Not specified.

About

Desktop application (React + Tauri)

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages