A modern, full-featured task management and note-taking application built with Next.js 14+, Supabase, and TypeScript. Taskify combines powerful todo list functionality with rich note-taking capabilities in a beautiful, responsive interface.
- β Create, edit, delete, and organize tasks
- π Task status tracking (Pending, In Progress, Completed)
- π― Priority levels (High, Medium, Low)
- π Category organization
- π Due date management
- π Advanced search and filtering
- π Real-time task statistics
- π Rich text note creation and editing
- π·οΈ Tag-based organization system
- π Pin important notes
- π Full-text search across all notes
- π Note statistics and management
- πΎ Auto-save functionality
- π Global search across tasks and notes
- π¨ Beautiful, responsive design
- π Dark/Light theme support
- π€ Guest mode with localStorage
- π Secure authentication with Supabase
- π± Mobile-friendly interface
- β‘ Real-time updates
- π Email/password authentication
- π Google OAuth integration
- π€ Guest mode for quick access
- βοΈ Cloud sync with Supabase
- πΎ Local storage fallback
- π Row-level security
- Primary: #fb5495 (Pink) - Used for buttons, accents, and highlights
- Secondary: #5184ff (Blue) - Used for secondary elements and links
- Theme: Supports both light and dark modes with automatic system detection
- Clean, modern font stack with proper hierarchy
- Automatic capitalization for titles and descriptions
- Responsive text sizing across devices
- Node.js 18+
- npm or yarn
- Supabase account (for cloud features)
-
Clone the repository
git clone <repository-url> cd taskify
-
Install dependencies
npm install
-
Environment Setup
Create a
.env.localfile in the root directory:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Database Setup
Follow the instructions in
database-setup.mdto set up your Supabase database. -
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
taskify/
βββ src/
β βββ app/ # Next.js 14 App Router
β β βββ api/ # API routes
β β βββ auth/ # Authentication pages
β β βββ dashboard/ # Task management
β β βββ notes/ # Note management
β β βββ search/ # Unified search
β β βββ layout.tsx # Root layout
β βββ components/ # React components
β β βββ auth/ # Authentication components
β β βββ layout/ # Layout components
β β βββ notes/ # Note components
β β βββ shared/ # Shared components
β β βββ tasks/ # Task components
β β βββ ui/ # UI components
β βββ lib/ # Utilities and services
β βββ database.ts # Database operations
β βββ supabase.ts # Supabase configuration
β βββ utils.ts # Utility functions
βββ public/ # Static assets
βββ database-setup.md # Database setup instructions
βββ README.md # This file
- Create a new Supabase project
- Run the SQL commands from
database-setup.md - Configure authentication providers (optional)
- Update environment variables
The application supports guest mode for users who want to try the app without creating an account:
- Data stored in localStorage
- Full functionality available
- Easy migration to cloud storage
-
Creating Tasks
- Click "New Task" button
- Fill in title, description, category, priority, and due date
- Save to add to your task list
-
Managing Tasks
- Change status by clicking status buttons
- Edit tasks by clicking the "Edit" button
- Delete tasks with confirmation
- Filter by status, category, or priority
-
Search Tasks
- Use the search bar to find tasks by title or description
- Apply filters for refined results
-
Creating Notes
- Click "New Note" button
- Add title, content, and tags
- Pin important notes for easy access
-
Organizing Notes
- Use tags for categorization
- Pin frequently accessed notes
- Search by content or tags
-
Managing Notes
- Edit notes inline
- Delete with confirmation
- Filter by tags or search terms
- Access global search from the navigation
- Search across both tasks and notes
- Results ranked by relevance
- Click results to navigate directly
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS, shadcn/ui components
- Backend: Supabase (PostgreSQL, Auth, Real-time)
- State Management: React hooks and context
- Authentication: Supabase Auth with Google OAuth
- Deployment: Vercel-ready
- Row-level security (RLS) enabled on all tables
- User data isolation
- Secure authentication flows
- Environment variable protection
- Input validation and sanitization
- Fully responsive design
- Touch-friendly interface
- Mobile-optimized navigation
- Progressive Web App (PWA) ready
- Built-in dark/light mode toggle
- System preference detection
- Persistent theme selection
- Easily customizable color scheme
- CSS custom properties
- Consistent design tokens
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push
The application can be deployed on any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js team for the amazing framework
- Supabase for the backend infrastructure
- shadcn/ui for the beautiful components
- Tailwind CSS for the styling system
For support, please open an issue on GitHub or contact the development team.
Built with β€οΈ using Next.js and Supabase