A beautiful, modern todo application with iPhone design aesthetics built with Next.js, TypeScript, and Framer Motion.
- 🔐 Secure Authentication - Single-user login with encrypted credentials
- 📝 Category Management - Organize todos into custom categories with icons and colors
- ✅ Todo Tasks - Add, complete, and delete tasks within categories
- 🎨 Beautiful UI - iPhone-inspired design with glass morphism effects
- ✨ Smooth Animations - Framer Motion animations throughout
- 🔒 Encrypted Storage - All data is encrypted at rest
npm installCreate a .env.local file in the root directory:
JWT_SECRET=your-super-secret-jwt-key-change-this
USER_EMAIL=admin@todo.app
USER_PASSWORD_HASH=your-bcrypt-hash-hereRun the password generator script:
node scripts/generate-password.jsCopy the generated hash to your .env.local file as USER_PASSWORD_HASH.
npm run devOpen http://localhost:3000 to see the app.
- Next.js 15 - React framework with App Router
- TypeScript - Type safety
- Tailwind CSS - Styling
- Framer Motion - Animations
- bcryptjs - Password hashing
- jose - JWT tokens
- lucide-react - Icons
- Bcrypt password hashing
- JWT authentication with HTTP-only cookies
- AES-256 encryption for stored data
- Single-user authentication
- Secure session management
├── app/
│ ├── api/
│ │ ├── auth/ # Authentication endpoints
│ │ └── categories/ # Category and todo endpoints
│ ├── dashboard/ # Main app dashboard
│ ├── layout.tsx
│ └── page.tsx # Login page
├── components/ # Reusable UI components
├── lib/ # Utility functions
├── types/ # TypeScript type definitions
└── data/ # Encrypted data storage
- Login - Use your configured email and password
- Create Categories - Click "Add Category" to create new categories with custom icons and colors
- Add Todos - Click on a category to open it and add todo tasks
- Complete Tasks - Click the checkbox to mark tasks as complete
- Delete Items - Hover over items to reveal delete buttons
Edit the COLOR_OPTIONS array in app/dashboard/page.tsx to customize available colors.
Edit the EMOJI_OPTIONS array in app/dashboard/page.tsx to customize available emojis.
Modify app/globals.css and tailwind.config.ts for custom styling.
MIT
Made with ❤️ using Next.js