Skip to content

willtrinh/promptodo

Repository files navigation

✨ Promptodo ✨

A to-do list that refuses to be boring. 🤖

Promptodo screenshot

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.

🤖 Overview

  • ⚡ 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.

🔥 Features

  • 🪄 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 localStorage so your chaos survives refreshes and retries.
  • 🌎 /api/rewrite route talks to the OpenAI Responses API when credentials exist and gracefully falls back to handcrafted rewrites otherwise.

🧰 Stack

  • Next.js App Router
  • Tailwind CSS + Shadcn
  • Framer Motion
  • OpenAI Responses API (or built-in fallback) for rewrite generation

💻 Running locally

npm install
npm run dev

Then visit http://localhost:3000 and start bossing your chores around. 🧹

Environment variables

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.

✍️ Rewrite flow

  1. User picks a tone, adds a task, and hits submit.
  2. /api/rewrite validates input, fetches the tone prompt, and calls OpenAI API (Responses).
  3. If the response is empty, invalid, or errors out, use the fallback rewrites.
  4. User's mundane task is rewritten by AI into a more exciting version.

📂 Project structure

  • 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.

🚀 Roadmap ideas

  • 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.

About

an AI-driven to-do list 🤣

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published