Skip to content

Repository files navigation

Sait

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.

Run it

cd ~/Sites/effortless && shards build      # bin/effortless here is a symlink to this build
./bin/effortless migrate
./bin/effortless cmd seed_demo
./bin/effortless serve

Then open:

  • http://localhost:3000 — Sait marketing + waitlist
  • http://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.com

Create 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-...' >> .env

Ship a client site

From 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 --publish

Link 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).

Hosts (production)

Host Serves
sait.run / www.sait.run Marketing + waitlist
{slug}.sait.run Client live site
{slug}-dev.sait.run Client draft + editor chat

Verify

./bin/effortless check && ./bin/effortless cmd sait_check && ./bin/effortless test

Docs

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages