This is a Next.js project bootstrapped with create-next-app
.
- Next.js: React-based web framework for server-side rendering and routing.
- Convex: Backend-as-a-service for real-time data and authentication.
- TypeScript: Static type checking for JavaScript.
- Tailwind CSS: Utility-first CSS framework for styling.
- Radix UI: Accessible UI primitives (used for components like Toasts and ScrollArea).
- Lucide React: Icon library.
- @convex-dev/auth: Authentication provider integration for Convex.
- @fontsource-variable: Variable font support for Inter, Noto Serif, and Source Code Pro.
- Environment Variables:
- Set
NEXT_PUBLIC_CONVEX_URL
in your environment to your Convex deployment URL.
- Set
- Convex Setup:
- Install Convex CLI:
npm install -g convex
- Initialize Convex in the project if not already done:
npx convex init
- Push schema and functions:
npx convex push
- Install Convex CLI:
- Fonts:
- Fonts are imported via
@fontsource-variable
packages in the codebase.
- Fonts are imported via
- Install dependencies:
npm install
- Start the Next.js development server:
npm run dev
- Start the Convex dev server (in a separate terminal):
npx convex dev
- Access the app at http://localhost:3000.
- Push your code to a Git repository (e.g., GitHub).
- Import the repository into Vercel.
- Set the
NEXT_PUBLIC_CONVEX_URL
environment variable in the Vercel dashboard to your Convex deployment URL. - Vercel will handle build and deployment automatically.
- Ensure Convex is deployed and accessible from your Vercel deployment.
- Environment Variables: Missing or incorrect
NEXT_PUBLIC_CONVEX_URL
will break Convex connectivity. - Convex Schema Changes: After modifying Convex schema or functions, always run
npx convex push
. - Authentication: Convex authentication relies on correct provider setup; misconfiguration can prevent user login.
- Data Consistency: Tag and note relationships are managed via multiple tables; ensure mutations handle all related tables to avoid orphaned records.
- Server/Client Boundaries: Some components and hooks are server-only or client-only; incorrect usage may cause runtime errors.
- Font Loading: If fonts do not load, ensure
@fontsource-variable
packages are installed and imported.