Dawnsmith
A desktop app that edits a Shopify theme by conversation, and keeps it off the store until you publish.

- Built at
- On my own
- Role
- Founder and sole engineer
- Timeline
- 2026
- Stack
- Tauri, Rust, React, TypeScript, Hono, Cloudflare Workers, Anthropic API, xterm.js
A merchant who wants trust badges, a sale countdown or a sticky add-to-cart has two options: hire a developer, or install another app that bolts it on from outside the theme. Both are slow, and the second leaves the storefront carrying a stack of scripts it did not need. Dawnsmith builds the thing into the theme itself, from a sentence.

The problem
The usual answer to this gap is a visual editor that hides the tooling, which trades a setup problem for a capability problem: you can only do what the editor exposes. The other answer, a chat box wired to a theme, trades it for a trust problem — you cannot tell what it is about to do, what it will cost, or how to undo it.
Plan first, then build
So the assistant does not start editing. It investigates, writes a plan with each step listed, and prices the work in credits before anything runs. When the plan hits something ambiguous it stops and asks, with concrete options, rather than picking one and being wrong four steps later.

Sections that already fit
Free-form generation produces a theme that does not match itself. The section library is curated and pre-tested against the theme, filtered by what each one is for, and labelled with whether it needs photos, shows products, or is already in the theme — so the choice is made from things that will work, and the assistant does the fitting.

Nothing reaches the store until you say so
The whole app is built on one promise, stated on its own first screen: the theme stays on this computer and the Shopify login never leaves it. Edits land in a local copy with a live preview, problems are surfaced as you go, and publishing is a deliberate, separate act.


How it works
The local-first promise rules out the obvious architecture of running theme operations server-side. Tauri ships a native binary with a Rust core and a React interface; the app provisions Node, the Shopify CLI and Theme Check itself on first run, so the user installs nothing. The hosted Hono API on Cloudflare Workers handles only what has to be hosted — accounts, licensing and billing. Dawnsmith AI runs on Claude.
The terminal is embedded rather than hidden, which is the concession to the other audience: a developer can watch exactly what the tooling is doing.

Testing something that does not behave the same way twice
An agent that edits themes cannot be checked by a normal test suite: the same request does not produce the same output, and the thing that matters is whether the result is any good and what it cost to get there. So two harnesses sit under it.
The first is an eval crate that runs a suite of real tasks, records each run, and replays recorded runs against changes — so a prompt or model change can be judged on quality and on credits spent, rather than on whether it still compiles. Cost is a first-class result because the product charges in credits, which makes a regression in efficiency a pricing problem, not just a slow one.
The second builds a throwaway Shopify theme on disk for each test — sections, templates, config and locales — so the agent’s file operations run against a real theme layout instead of a mock that agrees with whatever the code does.
What shipped
Dawnsmith is downloadable for Mac at dawnsmith.eienify.com, free to start on 150 credits with no card.