Motir builds itself
How Motir builds Motir.
It sounds like a chicken-and-egg problem. It isn't. Motir started as a folder of prompts, and every feature it shipped became a tool for building the next one.
Where it started
We vibe coded. The project fell apart.
Vibe coding made the code fast. But the further we got, the more of the project we lost — because a project is not only code.
- A bug found, never trackedSpotted in the middle of a session, forgotten by the end of it.
- Too much at onceFive features in flight, and no way to tell which one to start next.
- Tests that weren't thereMissing, or not up to the standard the rest of the code needed.
- Decisions lost in a chatWhy something was built that way ended when the coding session did.
What we needed
Jira and Linear track work. We needed more.
We plugged our process into the project tools we knew. They held the tasks, but not the thing we were missing.
- 01A plan before the codeAn agent should start from a plan a person approved, not from a prompt.Motir AI Planner
- 02Ready, or blocked by whatSee which work can start now, and which waits — on exactly which other work.
- 03Someone running the whole projectA project manager that oversees everything and puts it together, without being asked.Motir Project Manager
So we built it.
The bootstrap
Every feature becomes the tool for the next.
Motir didn't wait to be finished before it was used. Each feature it shipped replaced the scaffolding it was built with.
- Day 0motir-metaAn internal project: a set of prompts, a task list and a store of mistakes. It prompted a model to build Motir's first features.Prompts and a task file
- ThenWork itemsWith work items shipped, Motir asked itself what to build next, not an outside tool.Its own work items
- ThenThe MCP serverWith the MCP shipped, those lookups became MCP calls, and status kept itself in sync.Its own MCP server
- ThenAI planningWith planning shipped, Motir planned its next features with its own planner.Its own planner
- NowAgents and approvalsAgents build Motir's work items; a person approves every plan and every merge.All of it
Build a featureUse itBuild the next one with it
Still building
It hasn't stopped.
Motir is still adding features to itself, in public. These numbers are live from Motir's own project.
- 3,854
- shipped
- 343
- planned
- 1
- feature requests
- 0
- upvotes
Shipped lately
- MOTIR-7693Hand-Drawn / Indie puts BOTH scroll bars on every framed scroll container — the `.border::after` overlay sits at `inset: -1px`, one pixel of scrollable overflow on each axis
- MOTIR-7716(motir-ai) `graphServiceWarming` refresh-notice cases get a `warming` 503 on their setup read under load, because the cold download outlasts the 40 ms default warming answer
- MOTIR-7577(motir-core · test) E2E + acceptance video — a member mentions a work item in a page, opens the work item and finds the page under Pages, sees the chip follow a status change, removes the mention, and watches archive and restore move the row
- MOTIR-7576(motir-core · test) Story INTEGRATION gate — the 90% floor over the changed package and app surface, every body-write path deriving `mention` rows on real Postgres, `manual` rows surviving derivation, RLS and cross-tenant isolation, and the Visitor withholding
- MOTIR-7575(motir-core) The PAGES SECTION on the work item page — linking pages with place, source labels and last edited, load-more paging, empty / loading / error states, absent without `page:view` and for a Visitor, with its strings in `en` and `zh`
- MOTIR-7574(motir-core) MENTION in the PAGE EDITOR — the work-item picker on `@` and the toolbar, the live chip node view in edit and read, wired through `PageEditorHost`, with its strings in `en` and `zh`
Build yours the same way.
Start with an idea. Motir plans it, builds it and keeps the whole project together.