An agent-chat site builder on Effortless.
The site owner points at part of their page, says what they want, and files under
draft/ change; publish copies them to live/.
Status: file-tree pivot. Page content is on disk (sites/<slug>/{draft,live}/).
localhost is the marketing page; open demo-dev.localhost as a site member to
edit the draft via chat.
cd ~/Sites/effortless && shards build # bin/effortless here is a symlink to this build./bin/effortless migrate./bin/effortless cmd seed_demo./bin/effortless serveThen open:
http://localhost:3000— Sait marketing + waitlisthttp://demo.localhost:3000— demo site (live)http://demo-dev.localhost:3000— demo draft + chat
Seed with an owner email so you can log in and edit:
./bin/effortless cmd seed_demo -- you@example.comCreate that user via /register once if needed (registration is unlinked from the
product UI). On the editor host, sign in from the chat panel when logged out.
Put secrets in a project-root .env (gitignored) — Effortless loads it before
config.lua:
echo 'OPENAI_API_KEY=sk-...' >> .envFrom the built site directory (must contain index.x.html), with Railway CLI
linked to this project:
~/Sites/sait/bin/sait-ship # first ship → draft only
~/Sites/sait/bin/sait-ship --replace # overwrite draft (refused otherwise)
~/Sites/sait/bin/sait-ship --replace --publishLink Railway once in the Sait app repo (cd ~/Sites/sait && railway link), not in each site folder. sait-ship always runs railway from that repo (SAIT_ROOT to override).
It asks for slug, owner email, and password; packs the current folder; creates
the user/site if needed; stages into draft/ via draft.new (never wipes
first). Existing draft content requires --replace. Live is only updated with
--publish. Domain defaults to sait.run (SAIT_DOMAIN to override).
Requires the latest deploy (includes effortless cmd ship_site).
| Host | Serves |
|---|---|
sait.run / www.sait.run |
Marketing + waitlist |
{slug}.sait.run |
Client live site |
{slug}-dev.sait.run |
Client draft + editor chat |
./bin/effortless check && ./bin/effortless cmd sait_check && ./bin/effortless test| Doc | What |
|---|---|
| docs/superpowers/specs/2026-08-02-apex-marketing-waitlist-design.md | apex landing + waitlist |
| docs/superpowers/specs/2026-08-02-file-tree-sites-design.md | file-tree architecture |
| sait.md | product plan (v2 sections archived) |
| docs/FINDINGS.md | framework discoveries |
| AGENTS.md | Effortless conventions |