Russian-first note-taking app on Next.js App Router.
- Next.js 15.x App Router, React 18.3, TypeScript 5.9
- Clerk for auth
- Convex for documents
- qual.su REST API for user/org profiles
- BlockNote + Mantine, Tailwind CSS + shadcn/ui
- Profile and org data come from qual.su, not Convex.
- Convex is the source of truth for documents and metadata.
- Keep the profile loading chain: Clerk -> qual.su -> Convex.
document === undefinedin Convex means loading.src/app/api/client.tsreturnsnullon request errors.- Preserve
pined,verifed,isAcrhived, and existing route/file names. - Avoid false 404 flashes on profile pages.
not-found.tsxis used inline, not only as a route.- UI text is Russian-first; keep edits narrow and avoid broad re-encoding.
- Don't run
npm run buildornpm startyourself!
npm run devnpm run lintnpm run knip