A feature-rich todo application with web and desktop support built with Next.js, React, TypeScript, and Tauri.
- ⚡️ Cross-Platform: Web and desktop apps with Tauri (macOS, Windows, Linux)
- 🔄 Workspaces: Organize todos in personal and shared workspaces
- 🔔 Reminders: Get notified about your todos via email
- 💬 Comments: Add context to your todos with comments
- 🌙 Dark Mode: Toggle between dark and light themes
- 🔐 Authentication: Secure login with Google, GitHub, and Twitter
- 📱 Responsive Design: Works on desktop and mobile devices
- 🤖 AI-Powered: Natural language todo creation
- 📊 Weekly Reviews: Receive email summaries of your todos
- ⌨️ Command Palette: Quick access to application features
- 🌐 Timezone Support: Handle todos across different timezones
- ⚡️ Raycast Extension: Quick access to todos from Raycast
- Frontend: React, Next.js 15+, Tailwind CSS
- Backend: Next.js API routes
- Database: PostgreSQL with Drizzle ORM
- Desktop: Tauri (Rust)
- Authentication: Next Auth with OAuth providers
- UI Components: Shadcn UI with Radix UI primitives
- Email: Resend for email notifications
- Analytics: PostHog
-
Clone the repository:
git clone https://github.com/R44VC0RP/todo-exon.git cd todo-exon -
Install dependencies:
bun install
-
Set up environment variables (database URL, OAuth credentials, etc.)
-
Run the development server:
bun run dev
-
For desktop app development:
bun run tauri:dev
The application uses Drizzle ORM for database operations.
# Generate migrations
bun run db:generate
# Apply migrations
bun run db:pushbun run buildbun run tauri:buildtodo-exon/
├── app/ # Next.js app directory
├── components/ # React components
├── lib/ # Utility functions and database
├── emails/ # Email templates
├── public/ # Static assets
├── styles/ # Global styles
├── raycast-extension/# Raycast extension
└── src-tauri/ # Tauri desktop app
Contributions are welcome! Please feel free to submit a pull request.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a pull request