Project layout (high-level)
CodeCommon scripts
npm run dev— run Next.js and Convex in parallelnpm run dev:next— run Next.js onlynpm run dev:convex— run Convex dev onlynpm run build— deploy Convex and build Next.jsnpm run start— run production Next.js servernpm run lint— run ESLintnpm run tauri:dev— run Tauri dev + Convex devnpm run tauri:build— build desktop app via Taurinpm run build:tauri— custom Tauri build script
npm run dev:next if you’re iterating only on UI/server pages and not touching Convex schema/functions.
Working with Convex
- Convex stores users, tabs (notes/whiteboards/mindmaps), workspaces, and sharing metadata.
- Run the Convex local dev server with
npx convex dev(or vianpm run devwhich does this for you). - When updating the Convex schema or functions, test locally with
npx convex devbefore deploying.
Authentication (WorkOS AuthKit)
- WorkOS handles SSO/OAuth identity. Provide valid WorkOS credentials in
.env.local. - The app uses WorkOS AuthKit for Next.js; follow the official WorkOS/AuthKit docs for provider-specific setup (SSO providers, redirect URIs, cookie/session secrets).
Desktop (Tauri)
- Tauri support is optional. To develop desktop builds:
- Install Rust and the Tauri toolchain.
- Use
npm run tauri:devto run the desktop app against the local Convex dev server. - Use
npm run tauri:buildornpm run build:taurito produce release artifacts.
- Tauri mode supports local filesystem sync for
.md,.canvas, and.mindmapfiles.
Sync & Offline notes
- App state hydrates from Convex when authenticated.
- Local edits can continue while offline; changes flush when connectivity returns.
- In Tauri mode you can enable local folder sync to persist files on disk.
Linting & Formatting
- ESLint is configured. Run:
- Follow the code style configured in
eslint.config.mjsandtsconfig.json.
Testing & CI
- There are no explicit test scripts in the repository root. Add unit or integration tests and CI jobs per your team standards.
- Vercel configuration is available in
vercel.jsonfor deployment behaviour.
Deploy Checklist
- Ensure Convex is deployed and the deployed URL is set in
NEXT_PUBLIC_CONVEX_URL. - Add WorkOS credentials to your hosting provider’s environment variables.
- Build the Next.js app and verify pages and shared-note viewers work in production.