Toss a plain chore into Promptodo and it bounces back with motivational speeches, sarcastic jabs, or epic fanfare. Productivity gets a sense of humor and you get to feel like the main character.
- ⚡ Built for quick capture: type the dull version, pick a vibe, and drop it straight into the task log.
- 🤹♀️ Optimistic UI keeps everything lively while OpenAI responds.
- 🪄 AI rewrite pipeline with optimistic updates, fallback copy, and animated loading states.
- 🎨 Tone picker with 3D emoji art for motivational, sarcastic, epic, or chaotic moods.
- 🪟 Drag-and-drop prioritization for active tasks (via Framer Motion Reorder).
- 🔁 Active versus completed tabs with restore, timestamps, and clear-all actions.
- ✏️ Inline edit dialog that refreshes the rewrite when you tweak a task or tone.
- 🗂️ Local persistence via
localStorageso your chaos survives refreshes and retries. - 🌎
/api/rewriteroute talks to the OpenAI Responses API when credentials exist and gracefully falls back to handcrafted rewrites otherwise.
- Next.js App Router
- Tailwind CSS + Shadcn
- Framer Motion
- OpenAI Responses API (or built-in fallback) for rewrite generation
npm install
npm run devThen visit http://localhost:3000 and start bossing your chores around. 🧹
Create .env.local to enable real rewrites (and optionally point to a custom OpenAI-compatible endpoint):
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_API_KEY=your-openai-api-key
The API automatically falls back to playful canned rewrites whenever the key is missing, the request fails, or you disable OpenAI during development.
- User picks a tone, adds a task, and hits submit.
/api/rewritevalidates input, fetches the tone prompt, and calls OpenAI API (Responses).- If the response is empty, invalid, or errors out, use the fallback rewrites.
- User's mundane task is rewritten by AI into a more exciting version.
src/app/page.tsx— Feature-rich client UI with tone picker, drag sorting, edit dialog, and persistence.src/app/api/rewrite/route.ts— Next.js route that calls OpenAI, enforces tone validation, and handles graceful fallback.src/lib/tones.ts— Tone metadata, prompts, emoji references, and fallback rewrite helpers.public/emoji— 3D emoji sprites used throughout the UI.
- Daily GPT pep talk.
- Typewriter animation while rewrites stream in.
- Procrastination streak counter ("You've stylishly delayed productivity for 5 days.").
- Shareable cards for your spiciest rewrites.
Built with Next.js, Tailwind CSS, and a gentle reminder that doomscrolling does not count as productivity.
