All case studies
6 min2026-05-20

From Python CLI to Production — Eclipse Todo App

How a simple Python CLI todo app evolved into a full-stack Next.js 16 + FastAPI application with JWT auth, PostgreSQL, and OpenAI integration.

The Starting Point

Eclipse began as a humble Python CLI todo app — 200 lines of code, JSON file storage, zero tests. The goal was simple: learn the fundamentals of CRUD operations before layering on complexity.

The Spec-Driven Pivot

After the CLI version was stable, I wrote a full specification for the production version:

  • Authentication: JWT-based with refresh tokens
  • Database: PostgreSQL with Prisma ORM
  • API: FastAPI with auto-generated OpenAPI docs
  • AI Integration: Smart task prioritization using OpenAI
  • Frontend: Next.js 16 with App Router

Architecture

Next.js 16 (Frontend)
    ↕ HTTP/REST
FastAPI (Backend)
    ↕ Prisma
PostgreSQL (Database)

Why FastAPI?

The CLI version was Python, so sticking with Python for the backend was natural. FastAPI gave us automatic OpenAPI docs, async support out of the box, and excellent Prisma compatibility.

The AI Feature

The most interesting feature is Smart Priority — OpenAI analyzes your task list and suggests priority levels based on deadlines, dependencies, and task descriptions. It uses a simple prompt chain:

  1. Extract deadlines from task descriptions
  2. Identify task dependencies
  3. Suggest priority: High / Medium / Low
  4. Explain the reasoning

Deployment

  • Frontend: Vercel
  • Backend: Railway
  • Database: Neon (serverless PostgreSQL)
  • CI/CD: GitHub Actions

Takeaways

Starting with a CLI forced me to think about the core logic before worrying about UI. The spec-driven approach meant the FastAPI backend was built in 3 focused days — no scope creep, no rework.

Next.jsFastAPIPostgreSQLOpenAICase Study