A lovable.dev-style "wish an app" chat builder on Solid. You chat a wish — "build me a landing page for my honey from my bees" — a coding agent builds a real Vite + React app, and a live preview link appears in the conversation. Iterate by chatting again.
It is a thin chat UI + server-side orchestrator on top of the sibling
codespaces bridge, which provides the entire
build engine (repos, the issue-driven coder agent, the build runner, and
Solid-Pod "Pages" publishing). The builder owns the conversation and project
model; the bridge owns repos and builds. See AGENTS.md.
This app installs @mind-studio/core and @mind-studio/ui from GitHub Packages.
A committed .npmrc scopes @mind-studio to that registry; before installing, export
a GitHub token with read:packages:
export NODE_AUTH_TOKEN=<a GitHub PAT with read:packages>
npm installThis prototype needs the mind-codespaces bridge running first — it does the building.
# 1. Start the shared Mind CSS (:3011), then the codespaces bridge.
(cd ../.. && docker compose up -d) # shared Mind CSS on :3011 (see ../../SOLID-SERVER.md)cd ../../codespaces
OPENROUTER_API_KEY=sk-or-...\
MIND_AGENT_MODEL=openai/gpt-oss-120b:free \
npm run dev # bridge on :3010# 2. Start the builder (points at the shared :3011 so WebIDs line up).cd ../apps/builder
cp .env.example .env.local # already targets :3010 / :3011
npm install
npm run dev # builder on :3070Open http://localhost:3070, sign in as alice
(alice@mind.local / dev-only-do-not-use-in-prod on the shared CSS), and type
a wish.
| Script | Purpose |
|---|---|
npm run dev | Next.js dev server on :3070 |
npm run seed:demo | Create one demo "honey landing" project end-to-end against the local bridge (idempotent) |
npm run smoke:wish | Drive /api/wish, poll until published, assert the preview URL returns 200 |
npm run typecheck | tsc --noEmit |
| Service | Port |
|---|---|
| Builder / Next.js | 3070 |
| mind-codespaces bridge (required) | 3010 |
| shared Mind CSS (required) | 3011 |
MVP (M1): single wish → React/Vite SPA → preview card in chat, against a local
bridge with dev-header auth. Iteration, multi-project dashboard, and the
production "delegated" bridge-session path are later milestones — see the plan
and AGENTS.md.
Versioning, CHANGELOG.md, and tags are automated with
release-please — don't tag or
edit CHANGELOG.md by hand.
- Commit to
mainusing Conventional Commits:fix:→ patch,feat:→ minor,feat!:/BREAKING CHANGE:→ major.chore:/docs:/refactor:/test:don't trigger a release. - release-please keeps an open "chore(main): release X.Y.Z" PR that rolls the
pending commits into
CHANGELOG.mdand bumps the version. - Merge that PR to release: it creates the
vX.Y.Ztag + GitHub Release, which firesrelease.ymlto build and push the Docker image to GHCR. - Deploying the image to production is a separate, manual GitOps step in
mindpods-infra(mind-deploy.sh).