AI-Powered Note-Taking App - A modern, responsive note-taking application with integrated AI features and analytics dashboard.
LucidNotes is a single-page web application that combines traditional note-taking with AI-powered features. Built for a seed-stage ed-tech founder, this MVP demonstrates clean architecture, seamless AI integration, and polished user experience.


- π CRUD Operations - Create, edit, delete, and organize notes
- π·οΈ Tagging System - Required tags for organization and filtering
- π Search & Filter - Search by text content or filter by tags
- π± Responsive Design - Optimized for desktop and mobile devices
- π€ Note Summarization - AI-powered summaries of long notes
- βοΈ Auto-Title Generation - Intelligent title suggestions
- π Smart Note Generation - Create notes from shorthand input
- π Usage Metrics - Notes created per day/week
- π€ AI Feature Usage - Track AI feature utilization
- π·οΈ Tag Popularity - Most used tags and trends
- π Dark/Light Theme - Toggle between themes
- β‘ Smooth Animations - Micro-interactions and transitions
- π‘οΈ Error Handling - Graceful handling of empty states and API failures
- βΏ Accessibility - ARIA labels and keyboard navigation
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4
- UI Components: shadcn/ui + Radix UI
- Icons: Lucide React
- Charts: Recharts
- State Management: Zustand
- AI: OpenAI API
- Backend: JSON Server (mock API)
- Package Manager: pnpm
- Node.js 18+
- pnpm
- Clone the repository
git clone https://github.com/felipe-muner/lucid-notes
cd lucid-notes
- Install dependencies
pnpm install
- Set up environment variables
cp .env.example .env.local
Add your OpenAI API key:
OPENAI_API_KEY=your_openai_api_key_here
- Start the development servers
pnpm dev
- Open your browser Navigate to http://localhost:3000
lucid-notes/
βββ src/
β βββ app/ # Next.js App Router
β βββ components/ # React components
β β βββ ui/ # shadcn/ui components
β β βββ notes/ # Note-related components
β β βββ analytics/ # Dashboard components
β β βββ layout/ # Layout components
β βββ lib/ # Utilities and configurations
β βββ hooks/ # Custom React hooks
β βββ types/ # TypeScript type definitions
β βββ store/ # Zustand store
βββ db.json # Mock database
βββ estimates.csv # Time tracking
βββ public/ # Static assets
- β‘ Lighthouse Performance Score: β₯90
- βΏ Lighthouse Accessibility Score: β₯90
- π± Mobile-first responsive design
- π Optimized bundle size and loading
- Shortcut keys - Save note (β/Ctrl + Enter to save)
- CRUD operations work smoothly
- Search and filtering functions correctly
- AI features handle errors gracefully
- Analytics display accurate data
- Responsive design on mobile devices
- Dark/light theme switching
# Development
pnpm dev # Start Next.js development server
# Production
pnpm build # Build for production
pnpm start # Start production server
# Utilities
pnpm lint # Run ESLint
π Live Application
- Chrome (latest)
- Firefox (latest)
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel
Remember to add your OPENAI_API_KEY
to Vercel's environment variables.
See estimates.csv
for detailed time estimates vs actual time spent on each feature.
πΉ Feature Walkthrough - Complete demo showing all features, AI integration, and architecture overview.
- Mock backend (JSON Server) - would use real database in production
- Simple AI prompts - could be optimized for better results
- Basic analytics - could add more sophisticated metrics
- No user authentication - would implement in production
- Real-time collaboration
- Advanced AI features (note suggestions, content enhancement)
- Export functionality (PDF, Markdown)
- Advanced search with vector embeddings
- Offline support with sync
See ARCHITECTURE.md
for detailed information about:
- Component structure and organization
- State management patterns
- API design and data flow
- Scaling considerations
This project is built as part of a technical assessment.
This is a demonstration project. For questions or feedback, please reach out via the submission email.
Built with β€οΈ using Next.js 15, TypeScript, and shadcn/ui