DEV Community

E. Smith
E. Smith

Posted on

Slothstep: a lazy-friendly app that turns "ugh, I'll do it later" into three tiny steps

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

This is a submission for the Hacktoberfest Open-Source AI Challenge: Week 3 – Slow and Steady.

What I Built

Slothstep is a tiny web app for the thing sloths do best: not panicking.

You type whatever you keep putting off ("clean the whole flat before Saturday", "write that difficult email to my boss", "sort the files on my laptop") and an open-weight model answers with exactly three steps:

  1. one you can start right now and finish in two minutes or less,
  2. one that follows naturally,
  3. one that finishes the job.

Every step has a realistic time estimate, and you can tick them off as you go. The point is not a perfect plan. The point is that the first step is so small there is no excuse left not to start.

The effort it saves: the hardest part of a dreaded task is rarely the task, it is the staring. Slothstep replaces "where do I even begin?" with one concrete, two-minute action. (On my machine a plan takes about 25 seconds to generate with a 4B model.)

Demo

  • Live app (demo mode with sample plans, because a free host cannot run a model): https://slothstep.onrender.com/
  • Real thing: clone the repo, ollama pull gemma3:4b, pip install -r requirements.txt, python app.py
  • Code:

    GitHub logo banana0000 / slothstep

    Slothstep: turn a task you keep putting off into three tiny steps with an open-weight model (Gemma 3 + Ollama). Dash app.

    🦥 Slothstep

    Describe a task you keep putting off and get three tiny, realistic steps. The first one takes two minutes or less, so there is no excuse left not to start.

    Built for the Hacktoberfest Open-Source AI Challenge (Week 3: Slow and Steady) with an open-weight model (Gemma 3) served by Ollama.

    Live demo: https://slothstep.onrender.com

    Features

    • Three steps with time estimates, validated so the model cannot return malformed plans
    • Tick steps off as you go
    • Light and dark mode (remembered in the browser)
    • A badge showing whether the model server is running
    • Runs fully offline with a local model, or against any OpenAI-compatible host serving an open-weight model

    Stack: Dash + Dash Mantine Components, Python.

    Run locally

    ollama pull gemma3:4b
    pip install -r requirements.txt
    python app.py
    

    Open http://127.0.0.1:8050.

    Configuration
















    Variable Default Purpose
    OLLAMA_MODEL gemma3:4b Model name (Ollama tag, or model id on
    …




The free host may take about a minute to wake up on the first visit.

How I Built It

  • UI: Dash with Dash Mantine Components (light and dark mode), a single Python file.
  • Model: Gemma 3 (4B) running locally through Ollama. The same code can also talk to any OpenAI-compatible host serving an open-weight model. The free hosted demo runs in a clearly labelled demo mode with sample plans, since a free host cannot run a model.
  • Reliable output: the model is asked for JSON only, then the app validates it (exactly three steps, non-empty text, positive integer minutes) and shows a friendly error instead of garbage if the model misbehaves.
  • Prompting: low temperature, a hard limit of two minutes for step one, and an explicit "do not invent missing details" instruction so it doesn't hallucinate a kitchen you don't have.
  • Deploy: a render.yaml Blueprint for a free Render web service running with DEMO_MODE=true. A real model needs a private Ollama service on a paid instance, which the repo's ollama/Dockerfile supports.

Why Open Innovation Matters Here

What people procrastinate on is personal: unanswered emails, messy folders, awkward conversations. I don't want those sent to a closed API.

  • Private by default: run it locally and your to-dos never leave your machine.
  • Works offline: no internet, no problem. Ollama and a 4B model are enough.
  • Set up once, free forever: no subscription, no per-token bill for something you use ten times a week.
  • Swappable: because Slothstep speaks both Ollama and the OpenAI-compatible API, moving from a local Gemma to a hosted open-weight model is two environment variables, not a rewrite.

A closed model might write slightly nicer sentences. But for a three-line plan, a small open model is more than good enough, and I keep control of my data.

Prize Categories

  • Best Use of Gemma: Gemma 3 is the model at the core of the app.
  • Best Use of Render: the app is deployed from a render.yaml Blueprint.

Thanks for reading, and please take it slow. 🦥

Top comments (0)