Slow and Steady: local, open-source AI that helps you work without urgency or cloud lock-in
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady What I Built Slow and Steady is a personal AI workspace that runs on the machine in front of you. The idea is sloth-shaped on purpose. Most “AI assistants” ask you to open an account, paste private text into

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
Slow and Steady is a personal AI workspace that runs on the machine in front of you.
The idea is sloth-shaped on purpose. Most “AI assistants” ask you to open an account, paste private text into someone else’s API, and keep paying per token. That is a lot of fuss for a tool that is supposed to take work off your plate. This app does the opposite: install it once, talk to an open-source model on localhost, and keep the conversation in a SQLite file on disk.
It helps with the work people put off: explain a hard topic, tidy a paragraph, sketch a project, walk through a code snippet, or just sit with a calm chat window. The computer does the drafting. You stay in the chair.
There is a Demo Mode so you can use the whole interface before you download a model. Demo replies are scripted and labelled as scripted. They never pretend to be a language model, and they never silently replace a failed local request.
When you are ready, connect Ollama, pick an installed model such as qwen2.5:1.5b, and chat for real. Streaming, stop, regenerate, Markdown, code highlighting, and conversation history all work the same way in both modes.
Local AI Ready is only shown after the backend has checked that Ollama answers and the selected model is installed.
Quick path for judges who do not want to pull a model:
./scripts/start-backend.sh # terminal 1./scripts/start-frontend.sh # terminal 2 Enter fullscreen mode Exit fullscreen mode Click Start Demo. Suggested prompts are on the empty chat. Replies are labelled scripted, not an AI model.
To use a real open-weight model (not automatic — you pull it):
ollama pull qwen2.5:1.5b Enter fullscreen mode Exit fullscreen mode Then choose that model in the sidebar.
Browser (Vite + React) → FastAPI on 127.0.0.1:8747 → Ollama on 127.0.0.1:11434 ↓ SQLite (chats + settings) Enter fullscreen mode Exit fullscreen mode The UI never talks to a model. An abstract AIProvider sits behind the API with two implementations:
Security choices that match the theme of “do less, leak less”:
Tests run without a downloaded model. Last run in the build environment: 46 backend tests passed, 17 frontend tests passed. Live generation against a real Ollama instance was not verified in that environment because Ollama was not installed there; offline detection and the mocked provider suite were.
The closed path for a chat app is easy: drop in a paid API key and ship. It is also the path that sends every draft, code snippet, and half-formed question to a server you do not run.
Slow and Steady is built so the open pieces are the product, not a badge:
A closed API would have been faster to stub and worse at the job. The job is a private, unhurried assistant that does the typing so you do not have to.
Hacktoberfest Open-Source AI Challenge: Week 3 (theme: Slow and Steady) — overall
No partner runtime is required for this project. It is meant to live on a laptop, not on a hosted GPU. I am not claiming Render, Gemma-as-a-service, DigitalOcean, or other partner categories unless those are added later with a real integration.