Add All, Unread, and Read controls backed by the existing server filter.
Keep separate paginated query caches and reconcile mutations and live
updates across filters, including rollback after filter switches.
Adapt the All/Unread/Read UI approach proposed by adityawaghamare in
https://github.com/oxynote/oxynote/pull/203 (head
|
||
|---|---|---|
| .. | ||
| app | ||
| electron | ||
| i18n | ||
| modules | ||
| public | ||
| .dockerignore | ||
| .nuxtrc | ||
| .prettierignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| colada.options.ts | ||
| components.json | ||
| Dockerfile.dev | ||
| eslint.config.mjs | ||
| forge.config.ts | ||
| index.d.ts | ||
| knip.ts | ||
| nuxt.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| prettier.config.js | ||
| README.md | ||
| sentry.client.config.ts | ||
| sentry.server.config.ts | ||
| tsconfig.json | ||
| vite.electron.config.ts | ||
| vitest.config.ts | ||
| vitest.nuxt-setup.ts | ||
Web
Nuxt 4 + Vue 3 frontend of Oxynote. Ships two ways: a server-rendered web app and an Electron desktop app.
Tools and dependencies:
- Favicon processing: https://realfavicongenerator.net
- Nuxt documentation
- Vue documentation
- VueUse documentation
- Tiptap documentation
- Shadcn-vue documentation
I18N
All text needs to be placed in the i18n/ directory.
We use a separate package for validation and it uses its own internal error messages: https://vee-validate.logaretm.com/v4/guide/i18n/
Setup
Install dependencies and run the prepare step:
pnpm run setup
Environment variables are read from .env — make setup at the repository
root creates it from docker/env/web.example.env.
Development
Start the web development server on http://localhost:3000 (the backend
stack must be running — make dev at the repository root does both):
pnpm run start:dev:web
Run the desktop app against the same dev server:
pnpm run start:dev:desktop
Production
Build the web application:
pnpm run build:web
Package the desktop application (or build installers with make:desktop):
pnpm run package:desktop
QA
pnpm run qa # check-types + check-lint + check-fmt
pnpm run qa-fix # check-types + lint --fix + prettier --write