An intelligent day-planning system that helps you schedule overwhelming days through smart negotiation and clear tradeoffs.
Work is ALWAYS protected.
When your day gets intense, Pace automatically reduces non-essential activities (breaks, phone time, leisure) to protect your work blocks. Sleep is the last to shrink and never goes below 6.5 hours.
Choose your intensity level and Pace adjusts everything else:
| Intensity | Breaks | Phone/Social | Leisure | Sleep |
|---|---|---|---|---|
| Low | Full (20min) | Full (60min) | Full (120min) | 8h |
| Medium | Normal (15min) | Limited (30min) | Normal (60min) | 7.5h |
| High | Short (10min) | Minimal (15min) | Minimal (30min) | 7h (min 6.5h) |
Activities are protected in this order:
- Work - Deep focus tasks (NEVER reduced)
- Essential - Must-do personal tasks, meals
- Breaks - Can be shortened when needed
- Phone/Social - Can be heavily reduced
- Leisure - First to shrink
- Sleep - Protected minimum of 6.5 hours
Pace explains every scheduling decision:
"🔥 High intensity day activated. Work blocks are fully protected." "⏱️ Breaks shortened to maximize productive time." "📱 Phone/social time reduced to protect work focus."
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- State: Zustand with localStorage persistence
- UI: Radix UI primitives
- No AI APIs - Pure rule-based scheduling engine
# Clone the repository
git clone https://github.com/yourusername/pace.git
cd pace
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:3000 to start planning.
No need to assign times. Just add what you need to do:
- Work tasks - Deep focus blocks (90-120 min each)
- Essential tasks - Things that must happen
- Movement - Exercise, walks
- Phone/Social - Flexible, can be reduced
- Leisure - Free time, hobbies
- Low: Recovery day, full breaks and leisure
- Medium: Balanced productivity
- High: Maximum output, minimal distractions
Pace creates a structured timeline:
[
{ start: "7:00 AM", end: "7:30 AM", label: "Morning Routine", type: "essential" },
{ start: "7:30 AM", end: "9:30 AM", label: "Deep Work Block", type: "work" },
{ start: "9:30 AM", end: "9:40 AM", label: "Break", type: "break" },
// ... continues through day
]Check off blocks as you complete them. The schedule adapts to show your progress.
src/
├── app/
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Main app
├── components/
│ ├── layout/ # Header, background, command palette
│ ├── task-input/ # Task entry interface
│ ├── schedule/ # Timeline display
│ ├── calendar/ # Calendar view
│ └── ui/ # Reusable components
├── lib/
│ ├── utils.ts # Utilities
│ └── scheduler.ts # 🔥 Core scheduling engine
├── store/
│ └── useStore.ts # Zustand state management
└── types/
└── index.ts # TypeScript definitions
The heart of Pace is the rule-based scheduler (src/lib/scheduler.ts):
// Core scheduling function
function generateSchedule(
tasks: Task[],
config: ScheduleConfig
): ScheduleResult {
// 1. Calculate required work time (PROTECTED)
// 2. Calculate breaks needed between work blocks
// 3. If time is tight, reduce in priority order:
// - Breaks (up to 50%)
// - Sleep (max 1 hour, never below 6.5h)
// 4. Allocate remaining time to flexible activities
// 5. Generate tradeoff messages
}- Work blocks are 90-120 minutes
- Breaks are automatically inserted between work blocks
- Lunch is scheduled around noon
- Evening wind-down before sleep
- All times are system-assigned (user never sets times)
| Shortcut | Action |
|---|---|
⌘K |
Open command palette |
⌘N |
Plan today |
⌘D |
Toggle dark/light mode |
- Glassmorphism - Frosted glass card effects
- Ambient Background - Dynamic gradients based on time of day
- Framer Motion - Smooth animations throughout
- Dark Mode - Easy on the eyes
Works on desktop, tablet, and mobile devices.
- Drag-and-drop block reordering
- Weekly overview
- Recurring tasks
- Calendar sync (Google, Apple)
- Push notifications
- Analytics dashboard
MIT License - see LICENSE for details.
Built with ❤️ to help you focus on what matters.
Remember: Your work is always protected.