The only todo app that truly understands your daily routine.
Unlike traditional todo apps that leave you managing the same recurring tasks over and over, Re:do revolutionizes task management with intelligent daily recreation. Built with Laravel and Vue.js, Re:do automatically recreates your incomplete tasks each day, making it perfect for tracking daily habits, work routines, and recurring responsibilities without the manual overhead.
The game-changer that sets Re:do apart from every other todo app:
- Intelligent Task Continuity: Automatically recreates yesterday's incomplete tasks each morning
- Timezone-Aware Processing: Respects user timezones to recreate tasks at the right moment
- Selective Recreation: Choose which lists should refresh daily vs. permanent project lists
- Zero Manual Effort: Never manually copy recurring tasks again - Re:do handles it seamlessly
- Daily Habits: Exercise routines, meditation, reading goals
- Work Routines: Daily standup prep, email checks, report reviews
- Recurring Responsibilities: Taking medications, watering plants, team check-ins
- Mixed Workflows: Combine daily recurring tasks with permanent project todos
- Hierarchical Organization: Users own todo lists, and todos belong to lists
- Smart Daily Recreation: The only todo app that truly automates your daily routine
- Completion Tracking: Visual progress bars and completion percentages for each list
- Date-based Filtering: Filter todos and lists by creation date with calendar interface
- Priority Management: Set and filter by priority levels (low, medium, high)
- Due Date Support: Set due dates and track upcoming deadlines
- Refresh Control: Choose which lists should be recreated daily vs. permanent lists
- User Isolation: Complete privacy - users only see their own data
- Real-time Updates: Dynamic completion percentage updates
- Responsive Design: Works seamlessly on desktop and mobile
- Search & Filter: Comprehensive filtering by completion status, priority, and date
- Modern UI: Clean, intuitive interface built with TailwindCSS
- Calendar Integration: Easy date selection with "Today" and "Yesterday" shortcuts
- Progress Visualization: Color-coded progress bars (red β orange β yellow β blue β green)
- Quick Actions: Efficient todo management with inline editing
- PHP 8.2+
- Node.js 18+
- Composer
- SQLite (default) or MySQL/PostgreSQL
-
Clone the repository
git clone https://github.com/morcen/redo.git cd redo -
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Database setup
touch database/database.sqlite php artisan migrate --seed
You are free to use MySQL or PostgreSQL instead of SQLite. Just update the
.envfile accordingly. -
Start development servers
composer run dev
This will start all services concurrently:
- Laravel server (http://localhost:8000)
- Queue worker
- Log viewer (Pail)
- Vite dev server
# Laravel server
php artisan serve
# Frontend development
npm run dev
# Queue worker (for scheduled tasks)
php artisan queue:work- Register/login to your account
- Navigate to "Todo Lists"
- Click "Create New List"
- Choose whether the list should refresh daily
- Start adding todos to your list
Why this changes everything:
- Set It and Forget It: Mark lists as
refresh_daily: trueand never think about recreating tasks again - Habit Formation Made Easy: Perfect for building consistent daily routines without the friction
- Smart Persistence: Permanent lists (
refresh_daily: false) for projects that span multiple days - Automatic Processing: Runs every hour via Laravel's scheduler - completely hands-off
- Real-world Impact: Users report 3x better habit consistency compared to traditional todo apps
Example Daily Recreation Scenarios:
- πββοΈ Fitness Routine: "30-min workout", "Drink 8 glasses of water" β Auto-recreated every morning
- πΌ Work Habits: "Check team Slack", "Review daily metrics", "Plan tomorrow" β Never forget again
- π§ββοΈ Wellness: "10-min meditation", "Take vitamins", "Journal 3 gratitudes" β Effortless consistency
- π Home Management: "Make bed", "Check plants", "Tidy workspace" β Automated daily reminders
- Date Filter: Use the calendar to view todos from specific dates
- Completion Filter: Show only completed or incomplete todos
- Priority Filter: Focus on high, medium, or low priority tasks
- Search: Find todos by title or description
- Models: User, TodoList, Todo, Setting
- Controllers: TodoListController, TodoController
- Commands: RecreateTodoForToday (scheduled task)
- Database: SQLite (default), supports MySQL/PostgreSQL
- Framework: Vue 3 with Composition API
- Routing: Inertia.js for SPA experience
- Styling: TailwindCSS with custom components
- UI Components: Reka UI for consistent design
- Icons: Lucide Vue for modern iconography
- Laravel 12: Backend framework with modern PHP features
- Vue 3: Reactive frontend with TypeScript support
- Inertia.js: Seamless SPA experience without API complexity
- TailwindCSS 4: Utility-first CSS framework
- Vite: Fast build tool and development server
Run the test suite:
composer test
# or
php artisan testRun tests with coverage:
composer test:coverage
# or
php artisan test --coverage-clover=coverage.xml --coverage-html=coverage-htmlRun specific test files:
php artisan test tests/Feature/TodoListCompletionTest.phpView coverage report:
composer test:coverage-report
# Then open coverage-html/index.html in your browser| Feature | Re:do | Traditional Todo Apps |
|---|---|---|
| Daily Task Recreation | β Automatic & intelligent | β Manual copy/paste every day |
| Habit Tracking | β Built-in with zero effort | β Requires separate habit apps |
| Timezone Awareness | β Respects user timezones | β Generic timing |
| Mixed Workflows | β Daily + permanent lists | β One-size-fits-all approach |
| Routine Automation | β Set once, works forever | β Constant manual management |
| Progress Visualization | β Smart completion tracking | β Basic checkboxes |
The Bottom Line: While other apps make you work harder to maintain your routines, Re:do works for you. It's the difference between manually watering each plant every day vs. having an intelligent irrigation system.
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Add tests for new functionality
- Ensure all tests pass:
composer test - Commit your changes:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow PSR-12 coding standards for PHP
- Use TypeScript for all new frontend code
- Write tests for new features
- Update documentation as needed
- Use conventional commit messages
- π Bug fixes and improvements
- π± Mobile responsiveness enhancements
- π¨ UI/UX improvements
- π§ͺ Additional test coverage
- π Documentation improvements
- π Internationalization (i18n)
- βΏ Accessibility improvements
If you find Re:do useful, consider supporting its development:
- GitHub Sponsors: Sponsor this project
- PayPal: paypal.me/morcenchavez
- Buy Me a Coffee: buymeacoffee.com/morcenchavez
- β Star this repository
- π Report bugs and suggest features
- π’ Share the project with others
- π Contribute to documentation
- π» Submit pull requests
This project is open source and available under the MIT License.
- Built with Laravel - The PHP framework for web artisans
- Frontend powered by Vue.js - The progressive JavaScript framework
- UI components from Reka UI - Unstyled, accessible components
- Icons by Lucide - Beautiful & consistent icon toolkit
Made with β€οΈ by the Re:do team
Report Bug β’ Request Feature β’ Discussions
