This site is intentionally meta. Not only is it a place for me to share work and thinking, but the creation of the site itself is part of that work. Even more meta: I built this entirely from my Discord server using Remote OpenCode.

The Experiment

Instead of the traditional local development workflow, I worked with an AI agent (OpenCode) connected to my machine through Discord. Here’s how it looked:

  1. I’d describe what I wanted in Discord
  2. OpenCode would execute commands, create files, and modify code in real-time
  3. The dev server (running on a Tailscale network) was accessible from my remote machine
  4. I could see changes instantly in the browser and iterate

It’s a fascinating meta-layer: building a site about working in public while literally working in public with an AI pair programmer.

Why Build This Site?

I’ve been thinking about creating a personal site for a while. The traditional reasons apply—a central hub for my work, a credibility anchor, a way to reach potential clients or employers. But there’s more to it.

I also want to practice what I preach about working in public. Building in isolation feels antithetical to how I actually work best—iteratively, with feedback, learning visibly.

And this experiment with Remote OpenCode is exactly that: real-time collaboration, visible process, learning through doing.

The Architecture

The site uses a “hub-and-spoke” model. The homepage acts as a filter, directing people to different streams of content:

  • /writing — Professional, technical, thought leadership
  • /journal — Personal, stream-of-consciousness
  • /projects — Actual work samples
  • /about & /now — Connective tissue

This structure lets me have multiple tones and audiences on one site without feeling schizophrenic. A friend can read my gardening reflections in /journal, a potential employer can check out technical posts in /writing, and everyone can see real work in /projects.

Tech Stack

  • Astro for static site generation (fast, minimal overhead)
  • Markdown for content (portable, future-proof)
  • TypeScript for type safety
  • Cloudflare Pages for hosting (free, fast, automatic deploys)
  • Tailscale for secure remote access to dev server
  • OpenCode (Remote) for AI-assisted development

No fancy frameworks, no CMS overhead. Just markdown files in Git, automatic deploys, and an AI helping me move fast without getting bogged down in build tool configuration.

The Process

The workflow was surprisingly smooth:

  1. Planning — I’d describe the architecture and design direction
  2. Scaffolding — OpenCode created the Astro project structure
  3. Building — Built pages, components, and styling incrementally
  4. Design — Enhanced the aesthetic with typography, colors, animations
  5. Testing — Viewed live changes in the browser from across the network
  6. Iterating — Refined based on what I saw

At each step, I could give feedback or suggestions, and the agent would adjust. No context switching, no waiting—just continuous iteration.

What’s Interesting About This

This experience surfaced some things worth thinking about:

  • Speed vs. Depth — How much do you lose by moving fast? I didn’t sweat the perfect component structure; I got a working site with good aesthetics instead.
  • Collaboration with AI — It’s not magic, but it’s genuinely productive. The agent understood my intent and made reasonable decisions.
  • Remote Development — The Tailscale + local dev server setup worked perfectly for accessing the site from a different machine.
  • Working in Public — This whole process is documented here. People can see how it was built, what decisions were made, what changed.

What’s Next

  • Add more stream landing pages (AI + communications, Hudson Valley, gardening, etc.)
  • Write real posts in each section (this is the beginning)
  • Deploy to Cloudflare Pages
  • Continue building in public

This is very much a work-in-progress. The site will evolve as I use it.


The meta-ness of building a “working in public” site while literally working in public (with an AI observer documenting the process) feels like the right way to start. Have thoughts? That’s the whole point—I want feedback and conversation. Tell me what you think.