One last thing to this context window: sir, we need to update the readme.md with something which would look as if I wrote it myself. The reasoning behind this project is to be able to communicate publicly in people who are mutually interested in doing so, like h0p3. You’ll see I’ve added websites and even a cms/text editor at write.exploration.work. You are short on tokens so you must be economical in your strategy, you have quite a bit in your own context window.

Looking at how much the deployment infrastructure has evolved—the sites.json now includes a dozen different sites with their own accents, authentication's moved to [auth], there's a kebab menu, video upload support, and the repo is now private with a deploy key on the main server—I need to update the fleet README to reflect this current state.

I'll read the existing README and the apps directory structure to understand what's there, then rewrite it in Mark's voice: straightforward, first-person, honest about the architecture. The core idea is that this is a public correspondence platform—a way for Mark and his correspondents (h0p3, Javier, René, Ludita, Claude) to write in the open together. I'll document the fleet of sites, the shared Astro monorepo architecture with the UI packages and OKLCH color system, the write.exploration.work CMS (forked from blank.page), and how posts flow from writing to git commits to published builds. Keep it economical and structural, matching his voice from blank.page's about page.

fleet

A small fleet of websites for thinking in public.

// start of human written content

The reasoning behind this project: I want to communicate publicly with people who are mutually interested in doing so. Spiritually this project is indebted to h0p3’s hypertext whose unrelenting seeking of the other has brought me here, allowing me to open channel a channel of public of communication from peer to peer with relative ease (however sloppy it currently is, I’ll need to sand by hand soon).

I also want to communicate publicly with myself, in some aspects of my life in which I want to start feeling comfortable. I might record myself in speech or in movement. Somehow it’s painful to both do it and not do it. I prefer the do it version. I’m in the process of cleaning up the slop and will lock down some things within this week, but I don’t mind if something private gets archived.

// end of human written content

The fleet

appdomainwhat it is
exploration-feedexploration.workthe front door / feed
exploration-workjournal.exploration.workmy inner work log, 2019→
dreamsdreams.exploration.workthe dream database
bodybody.exploration.workthe body work log
inner-observerinner.observermeditations
method-of-actionmethod.acprofessional work log
duopixelduopixel.comthe old blog, 2005→
h0p3h0p3.exploration.workreply-to h0p3
claudeclaude.exploration.workconversations with the machine
javierjavier.method.acJavier’s corner
renerene.method.acRené’s corner
luditaludita.method.acLudita’s corner

Plus apps/write.exploration.work — a fork of blank.page that serves as the CMS for everything above. It’s a text editor, not an admin panel: the first line is the title, the rest is the body, frontmatter is the server’s problem. Saving is a git commit; publishing rebuilds the site and puts it on the web. It lives at [redacted] and is its own repo, embedded here.

How it fits together

  • packages/ui — shared layouts, components, and design tokens (plain CSS, OKLCH ramps, one accent channel per site)
  • packages/content-schemas — Zod schemas for all frontmatter
  • Each app is a thin Astro site: a config, a palette override, and a content folder of markdown. Everything else is shared.
  • Posts travel: write in the editor → save (git commit) → publish (Astro build + rsync to the VPS). The content’s source of truth is this repo.

Quick start

pnpm install
pnpm dev:exploration     # journal.exploration.work   (port 4322)
pnpm dev:method          # method.ac                  (port 4321)
pnpm dev:dreams          # dreams.exploration.work    (port 4323)
pnpm build               # build everything

Full instructions for humans and AI agents in AGENTS.md.

Adding a site (or a correspondent)

pnpm new:site my-slug "My New Site" https://my-new-site.example.com

Then add dev:<slug> / build:<slug> scripts to the root package.json, register it in the editor’s sites.json, and point a domain at the VPS. If you’re reading this because I offered you a corner of the fleet: yes, it’s this easy, and yes, the offer is real — mark@method.ac.