Studio Notebook: vision, Phase 1 designs, and working prototype
- VISION.md: the full studio-backbone product vision (craft core, operations, selling, daily driver), Bonna's approved design decisions, and phasing - design/: two clickable Phase 1 mockups (moonlit palette, CSS-only tabs) - prototype/: zero-dependency local app (Node built-ins + SQLite) — Today with jot-first capture + subtask outliner, Clay & Glazes library, fill-and-go Firing Log with emoji unload ratings feeding evidence tables, Pieces with core line/tiles/one-of-a-kind + money card, Files with per-piece attachment, Sourcing with price ledger + live supplier search links (9 suppliers seeded) - CLAUDE.md: access notes updated for the provisioned site + this repo's state Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
104
CLAUDE.md
Normal file
104
CLAUDE.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# Bonna Moon Studio — access notes
|
||||
|
||||
Status as of 2026-08-06: **provisioned and live** at
|
||||
https://bonnamoonstudio.poweredbyotm.com (`site` template v0.11.0, container
|
||||
`site-bonnamoonstudio` on anvil). The repo remains empty by design — see "The plan"
|
||||
below. This file covers how to reach things. There is no app code here to document.
|
||||
|
||||
The long-term product vision — a custom "studio backbone" app in the FMB mold
|
||||
(glaze recipes, firing log, inventory, accounting, market scanner, kiln control) —
|
||||
is captured in [VISION.md](VISION.md). The `site` instance is the storefront layer;
|
||||
the backbone is a separate, phased build.
|
||||
|
||||
## The repo
|
||||
|
||||
- Gitea: `https://git.poweredbyotm.com/bonna61/Bonna-Moon-Studio.git`
|
||||
- Remote name here is **`gitea`** (not `origin`) — matches the FMB convention.
|
||||
- Local branch is `master`; FMB and the platform both use **`main`**. Rename before
|
||||
the first commit, or let `git checkout main` create the tracking branch after the
|
||||
remote has one.
|
||||
|
||||
```sh
|
||||
cd "/Users/bonnamoon/Projects/Bonna Moon Studio"
|
||||
git fetch gitea && git checkout main # once the remote has content
|
||||
```
|
||||
|
||||
**Auth: macOS keychain.** There is no `~/.gitconfig` and no `~/.git-credentials` on
|
||||
this machine; `credential.helper=osxkeychain` is set at the git *system* level. A
|
||||
`git ls-remote gitea` completes with no prompt, so pushes and fetches over
|
||||
`https://git.poweredbyotm.com` just work. Nothing needs a token in the URL.
|
||||
|
||||
Commit identity is set **locally** in this repo (there's no global fallback — commits
|
||||
would fail without it):
|
||||
|
||||
```
|
||||
user.name = Bonna
|
||||
user.email = bonna@fullmoonbakehouse.com
|
||||
```
|
||||
|
||||
### The other Gitea address
|
||||
|
||||
Same Gitea instance, three addresses depending on where you are:
|
||||
|
||||
| Address | When it works |
|
||||
|---|---|
|
||||
| `https://git.poweredbyotm.com` | Anywhere. Keychain auth. Use this. |
|
||||
| `http://192.168.0.5:3022` | Home LAN only (NAS). |
|
||||
| `http://167.237.9.184:3022` | Home public IP — what `anvil` uses, and the fallback when the Mac is off the LAN. |
|
||||
|
||||
The sibling repos (`moonbase`, `moon-household-budget`, `otm-platform`) embed an
|
||||
access token directly in their remote URL against `192.168.0.5:3022`. Those tokens
|
||||
are **only** recorded in those URLs — the `~/Projects/CLAUDE.md` that
|
||||
[moonbase/docs/git-deploy-guide.md](../moonbase/docs/git-deploy-guide.md) refers to
|
||||
does not exist on this machine. Read one back with:
|
||||
|
||||
```sh
|
||||
git -C /Users/bonnamoon/Projects/moonbase remote get-url origin
|
||||
```
|
||||
|
||||
Never commit a token.
|
||||
|
||||
## Hosts
|
||||
|
||||
- **`anvil`** = `debian@51.81.80.250` — OVH VPS, **production, live**. Serves
|
||||
`*.poweredbyotm.com` with real Let's Encrypt certs. Wildcard `*` A-record, so any
|
||||
new `<slug>.poweredbyotm.com` resolves with zero DNS work. Host user is `debian`,
|
||||
not `tonym`. Can't reach the home LAN — its builds use `167.237.9.184:3022`.
|
||||
- **`forge`** = `tonym@192.168.0.83` — Unraid VM, staging, `*.local` hostnames with a
|
||||
local CA. Needs the home LAN.
|
||||
- OTM Admin: **https://admin.poweredbyotm.com** (anvil) — provisioning, template
|
||||
builds, per-service ops, logs.
|
||||
|
||||
A connected MCP server exposes the same control plane read/write (`platform_status`,
|
||||
`list_instances`, `list_templates`, `onboard`, deploy + log tools). Call
|
||||
`platform_status` or `list_instances` first for an overview. It points at **live
|
||||
production** — treat `onboard`, deploys, and restarts as real-world actions.
|
||||
|
||||
Platform source: `/Users/bonnamoon/Projects/platform` (and `otm-platform`). Its
|
||||
`CLAUDE.md` is the authority on deploys, the CI-gated auto-deploy webhook, and the
|
||||
long list of anvil-vs-forge gotchas.
|
||||
|
||||
## The plan (executed 2026-08-06)
|
||||
|
||||
One app with public pages **plus** an `/admin` back office — the **`site`** template
|
||||
("Web — hosting + site + account", v0.11.0), same as `home`, `overthemoon`, and
|
||||
`vvts`. Public site plus the drag-and-drop CMS page editor from `@otm/account-panel`.
|
||||
|
||||
Provisioned via `onboard`: customer **Bonna Moon Studio**, app/service slug
|
||||
`bonnamoonstudio`, industry `universal`, owner **bonna@bonnamoonstudio.com**.
|
||||
Live at **https://bonnamoonstudio.poweredbyotm.com** (admin at `/admin`). The
|
||||
seeded owner password was captured and handed to Bonna at provisioning time; it is
|
||||
deliberately not recorded anywhere in this repo.
|
||||
|
||||
What it is: Bonna's **art studio** — ceramics, carved wood, and sterling
|
||||
silver/ceramic jewelry. The prior site at bonnamoonstudio.com (shop temporarily
|
||||
closed during the studio rebuild) has the source content: product lines, collector
|
||||
testimonials, newsletter signup. That domain still points at the old site; cutover
|
||||
is a future DNS step.
|
||||
|
||||
Remaining notes:
|
||||
|
||||
- **The `site` template does not use this repo.** Its code lives in the platform
|
||||
monorepo at `apps/site`; per-instance content lives in that instance's Postgres, not
|
||||
in git. This repo staying empty is expected. Giving it real code means authoring a
|
||||
new platform template and build chain — days, not minutes.
|
||||
Reference in New Issue
Block a user