A desktop application for managing quotations, built with Electron, React, and TypeScript.
- Create, edit, view, and delete quotations
- PDF export for quotations
- Excel export for quotation lists
- Local JSON file storage (no database required)
- Import data from the web app's Supabase database
- Dark/Light mode support
- Node.js 18 or higher
- npm or yarn
# Install dependencies
npm install
# Run in development mode
npm run dev
# For Electron development (opens the desktop app)
npm run electron:dev# Build the app
npm run build
# This will create:
# - dist/ folder with the web build
# - dist-electron/ folder with the Electron build
# - release/ folder with the packaged installerIf you have data in the existing Supabase-powered web app, you can export and import it:
- Navigate to the
scriptsfolder - Run the export script:
node scripts/export-supabase.js
- This creates a JSON file with all your data
- Open Quotation Desktop, go to Settings > Data
- Click "Import Data" and select the exported file
- Log into your Supabase dashboard
- Export each table as JSON
- Combine them into a single file matching the expected format
- Import via Settings > Data in the desktop app
All data is stored locally in JSON files at:
- Windows:
%APPDATA%/quotation-desktop/data/ - macOS:
~/Library/Application Support/quotation-desktop/data/ - Linux:
~/.config/quotation-desktop/data/
Data files:
quotations.jsonquotation_items.jsonvendors.jsonrecipients.jsoncategories.jsonitem_types.jsonexchange_rates.jsonsettings.json
- Frontend: React 18, TypeScript, Tailwind CSS
- UI Components: shadcn/ui (Radix UI)
- Desktop: Electron
- Build Tool: Vite
- State Management: TanStack Query (React Query)
# Run web version only
npm run dev
# Run with Electron
npm run electron:devMIT