- Node.js 20+
- Visual Studio Code.
Solution contains 3 main source trees:
src
: Main Web application. Uses Vue 3 and Vite as a bundler.src-tauri
: Tauri source code, provide native OS functionality, like windows management, tray icons & hotkeys. Also, manages app settings.src-tauri-macros
: Rust macros for easier settings handling. Use a separate crate to satisfy Rust compiler.
tauri:dev
- run tauri in development mode.tauri:build
- build in production mode and create installer/updater.lint
- run eslint checks on all files.
In order to provide history synchronization functionality Supabase is used as a backend. It must be configured before starting the application, otherwise history sync won't work.
Steps to connect Supabase to a project:
- Install Supabase CLI - https://supabase.com/docs/guides/cli
- Execute
supabase login
command. - Link to a remote project using
supabase link --project-ref <ref>
.
- Migrations should be written in a
supabase/migrations
folder. - To push a new migration to a server, run
supabase db push -p <db password command>
- To fetch latest TypeScript types, use the following command:
supabase gen types typescript --project-id <projectId> src/components/history/services/database.generated.ts
- Disable Anonymous sign-ups in Auth Project settings
- Enable Email Auth provider in Authentication > Provider settings. Disable
Confirm email
,Secure email change
andSecure password change
features. - Use
supabase/email-templates/otp.template.html
as aMagic Link
email template. UseSelected Text Translate > Login
as email subject.
In order to create a new release the following steps must be done:
- Increment application version in
tauri.conf.json
. - Push changes to GitHub.
- Create a new tag that matches a release version, e.g.
v1.2.3
, push this tag to GitHub. - Wait for release action to complete.