Development Environment
FlashMind is built with a modern development stack that makes it easy to customize and extend.Project Structure
Key Technologies
Next.js 15
Next.js 15
FlashMind uses Next.js with the App Router for:
- Server-side rendering
- API routes
- File-based routing
- Built-in optimizations
Convex
Convex
Convex provides:
- Real-time database
- Serverless functions
- Automatic API generation
- Type-safe queries and mutations
Clerk
Clerk
Clerk handles:
- User authentication
- Session management
- User profiles
- Multi-factor authentication
Tailwind CSS
Tailwind CSS
Tailwind CSS enables:
- Utility-first styling
- Responsive design
- Dark mode support
- Custom design system
Customization
Styling
FlashMind uses Tailwind CSS with a custom design system. You can customize:Database Schema
Modify the Convex schema to add new fields or tables:convex/schema.ts
Spaced Repetition Algorithm
The spaced repetition algorithm can be customized inconvex/spacedRepetition.ts
:
Adding Features
Creating New Pages
- Add a new page in the
app/
directory:
app/analytics/page.tsx
- Add navigation in
components/navigation.tsx
Creating Convex Functions
Add new backend functions in theconvex/
directory:
convex/analytics.ts
Adding Components
Create reusable components in thecomponents/
directory:
components/study-streak.tsx
Testing
Running Tests
Writing Tests
Create tests alongside your components:__tests__/study-streak.test.tsx
Deployment
Environment Variables
Set up your production environment variables:.env.production
Build and Deploy
1
Build the application
2
Deploy to Convex
3
Deploy frontend
Deploy to Vercel, Netlify, or your preferred platform
Consider setting up GitHub Actions for automatic deployments when you push to your main branch.