The Problem
- Something that made completing tasks feel rewarding
- A built-in focus mode so I'd actually do the work
- Real data showing where my time went
The Solution
Core Features
Technical Decisions
Why Next.js + Supabase?
The Gamification Engine
// Streak multiplier calculation
const getStreakMultiplier = (streak: number): number => {
if (streak >= 30) return 3.0; // Monthly warrior
if (streak >= 7) return 2.0; // Weekly consistent
if (streak >= 3) return 1.5; // Getting momentum
return 1.0; // Starting fresh
};
// Points scale with task priority
const calculatePoints = (task: Task, streak: number): number => {
const basePoints = task.priority * 10;
const multiplier = getStreakMultiplier(streak);
const focusBonus = task.completedInFocusMode ? 1.5 : 1;
return Math.round(basePoints * multiplier * focusBonus);
};Real-Time Sync Challenge
Results
| Metric | Result |
|---|---|
| Active users | 500+ monthly |
| Tasks completed | 12,000+ tracked |
| Avg. focus sessions/user | 4.2 per day |
| User retention (30-day) | 42% |
| User satisfaction | 4.7★ average |
What I Learned
1. Build for yourself first
2. Gamification is a double-edged sword
3. Simple beats complete
What's Next
- Competitive weekly rankings (opt-in) for those who thrive on competition
- Team workspaces for small groups
- AI task suggestions based on productivity patterns
Built with: Next.js 14, TypeScript, Tailwind CSS, Supabase, Vercel
Want to try it? to-pra.vercel.app — it's free. Need something similar built for your team? Let's talk →
Tell me what's stealing hours from your team
A free 30-minute call, no sales pitch: we review your operation and I tell you whether I can help — and how.Book a call
