A beautiful, minimal task management application that automatically converts incoming emails into organized tasks using Postmark integration. Live Project: https://task-flow-email-to-task-manager.vercel.app/
- Send emails to your unique TaskFlow address
- Automatic parsing of email subject as task title
- Email body becomes task description
- Smart detection of metadata:
- Due dates: "Due: tomorrow", "Due: 2025-06-10", "Due: 3 days"
- Priority: "Priority: High/Medium/Low"
- Tags: "Tags: work, urgent, meeting"
- Clean, intuitive task dashboard
- Priority color coding (red=high, amber=medium, blue=low)
- Task completion with smooth animations
- Edit and delete tasks with confirmation
- Comprehensive filtering by status, priority, tags, and search
- Task statistics dashboard
- Modern, minimal interface inspired by Apple's design principles
- Light/dark mode toggle with system preference detection
- Responsive design for desktop, tablet, and mobile
- Smooth micro-interactions and hover states
- Consistent 8px spacing system
- Soft color palette with accessibility-focused contrast
- Automatic email confirmations for created tasks
- Daily summary emails with task statistics
- Due date reminders
- Overdue task alerts
- Node.js 18+ and npm
- Supabase account
- Postmark account for email processing
-
Clone and install dependencies:
npm install
-
Set up Supabase:
- Click "Connect to Supabase" in the top right of the interface
- Follow the setup wizard to create your database
- The required tables will be created automatically
-
Configure Postmark:
- Create a Postmark account at postmarkapp.com
- Set up an inbound stream for your domain
- Configure the webhook URL to point to your Supabase edge function:
https://your-project.supabase.co/functions/v1/email-webhook
-
Environment Variables: Copy
.env.exampleto.envand fill in your credentials:VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key POSTMARK_SERVER_TOKEN=your_postmark_token POSTMARK_FROM_EMAIL=tasks@yourdomain.com
-
Start the development server:
npm run dev
Send an email to your configured address with:
- Subject: Becomes the task title
- Body: Becomes the task description
Include these patterns in your email body for automatic parsing:
Due Dates:
Due: todayDue: tomorrowDue: 2025-06-10Due: 3 days
Priority Levels:
Priority: highPriority: mediumPriority: low
Tags:
Tags: work, urgent, meeting
Subject: Review quarterly reports
Hi TaskFlow,
Please review the Q4 reports and prepare summary.
Due: tomorrow
Priority: high
Tags: work, reports, quarterly
Thanks!
This creates a high-priority task due tomorrow with appropriate tags.
- React 18 with TypeScript
- Tailwind CSS for styling
- Lucide React for icons
- date-fns for date manipulation
- Vite for development and building
- Supabase for database and real-time subscriptions
- PostgreSQL with Row Level Security
- Edge Functions for email processing
- Postmark for email sending/receiving
tasks (
id: uuid,
title: text,
description: text,
due_date: date,
priority: enum('low', 'medium', 'high'),
tags: text[],
completed: boolean,
email_from: text,
created_at: timestamptz,
updated_at: timestamptz
)npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
src/
βββ components/ # React components
β βββ Header.tsx # App header with theme toggle
β βββ TaskCard.tsx # Individual task display
β βββ TaskFilters.tsx # Filtering controls
β βββ TaskForm.tsx # Task creation/editing
β βββ TaskStats.tsx # Statistics dashboard
βββ hooks/ # Custom React hooks
β βββ useTheme.ts # Dark/light mode management
β βββ useTasks.ts # Task management logic
βββ lib/ # Utilities and services
β βββ supabase.ts # Supabase client
β βββ taskService.ts # Task CRUD operations
β βββ emailParser.ts # Email content parsing
βββ types/ # TypeScript definitions
βββ task.ts # Task-related types
- Primary: Blue (#3B82F6)
- Secondary: Teal (#14B8A6)
- Accent: Orange (#F97316)
- Success: Green (#10B981)
- Warning: Amber (#F59E0B)
- Error: Red (#EF4444)
- High Priority: Red (#EF4444)
- Medium Priority: Amber (#F59E0B)
- Low Priority: Blue (#3B82F6)
- Headings: 120% line height, semibold weight
- Body: 150% line height, regular weight
- Maximum: 3 font weights throughout the app
- Row Level Security (RLS) enabled on all tables
- Email validation and sanitization
- XSS protection through React's built-in escaping
- CORS properly configured for API endpoints
- Environment variables for sensitive credentials
- Mobile: < 768px (single column, touch-optimized)
- Tablet: 768px - 1024px (adapted layouts)
- Desktop: > 1024px (full feature set)
The app is ready for deployment to any modern hosting platform:
-
Build the project:
npm run build
-
Deploy to your preferred platform:
- Netlify, Vercel, or similar
- Ensure environment variables are configured
- Set up custom domain for email integration
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License
TaskFlow - Transform your inbox into an organized task management system! π§β
