OrigenStudio gives Mike a real production home

The fork finally has the plumbing to ship itself - automatic staging and production environments that go live on their own.

infrastructure

Upstream Mike never came with a way to actually deploy it. OrigenStudio built that missing piece: push a change to the staging line and it lands in a staging environment; push to the main line and it goes to production, no manual hand-holding. The backend runs on Railway (an app-hosting platform), the frontend on Cloudflare's edge network, with storage and database wired in behind the scenes.

The team also wrote a full setup runbook documenting the whole thing. The early commits are honest bootstrap fixes - the kind you only hit by running real deployments - which tells you this isn't a paper exercise. It's the clearest signal yet that OrigenStudio is treating Mike as a product to be hosted and run, not a demo to be admired.

So what Anyone weighing whether to stand Mike up as a real hosted service now has a working blueprint to copy.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

8 commits from OrigenStudio/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
cb594f35 ci: add GitHub Actions CI/CD with staging + production environments Pol Guixe 2026-05-27 ↗ GitHub
commit body
Adds a single-workflow CI/CD pipeline plus the deploy config it needs:

- .github/workflows/ci-cd.yml: build/lint on every PR; branch-driven deploys
  (staging branch -> staging env, main -> production env). Deploy jobs are
  gated behind their CI job and pick the GitHub Environment from the branch,
  so the same secret names resolve per-environment.
- frontend/wrangler.jsonc: OpenNext/Workers config with named env blocks
  (mike-frontend-staging / mike-frontend-production). Was missing entirely.
- frontend/package.json: deploy:staging / deploy:production scripts.
- backend/railway.json: pins start command and /health check for Railway.
- DEPLOY.md: full runbook (Railway + Cloudflare + Supabase + R2) and the
  CI/CD + two-environment setup guide.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
550a6ff7 ci: make frontend lint advisory (non-blocking) Pol Guixe 2026-05-28 ↗ GitHub
commit body
The repo has 39 pre-existing eslint errors that were never gated by CI.
Run lint for visibility via annotations but don't fail the pipeline on it;
tsc (backend) and next build (frontend) remain the hard gates. Remove
continue-on-error once the lint backlog is cleared.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6d0186e8 ci: bump checkout/setup-node to v5 (Node 24 runtime) Pol Guixe 2026-05-28 ↗ GitHub
commit body
actions/checkout@v4 and actions/setup-node@v4 run on the deprecated Node 20
runtime, which GitHub force-migrates to Node 24 on 2026-06-02. v5 runs on
Node 24 natively. (node-version: 20 for the app build is unaffected.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
e620d8e5 Merge pull request #1 from OrigenStudio/ci/github-actions-cicd PolGuixe 2026-06-02 ↗ GitHub
ci: GitHub Actions CI/CD with staging + production environments
def45505 ci: pin Node 20 for backend + install bun for OpenNext frontend build Pol Guixe 2026-06-03 ↗ GitHub
commit body
Two bootstrap fixes after first deploy attempt:

- backend/package.json: add engines.node ">=20" so Nixpacks installs Node 20
  on Railway instead of the default 18 (which is EOL and was removed).
- .github/workflows/ci-cd.yml: install bun in deploy-frontend before the
  OpenNext build. OpenNext detects frontend/bun.lock and invokes `bun run
  build`, which fails on a runner with only Node installed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
791c98ab ci: bump deploy-frontend to Node 22 (wrangler 4 requirement) Pol Guixe 2026-06-03 ↗ GitHub
commit body
Wrangler 4.x requires Node ≥22.0.0; the deploy-frontend job was on Node 20
and failed at the deploy step. ci-frontend stays on Node 20 (only used for
typecheck/build, not wrangler).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0e89ccb2 ci: trigger both deploys on workflow changes too Pol Guixe 2026-06-03 ↗ GitHub
commit body
Path-filter now matches .github/workflows/** in both backend and frontend
filters. Means a workflow-only edit redeploys both packages - which is the
right default given any workflow change can affect either deploy.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
e5a0d5b5 Merge pull request #2 from OrigenStudio/staging PolGuixe 2026-06-03 ↗ GitHub
deploy: pin Node versions, fix OpenNext bun build, broaden path filter

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-627.md from inside the repo you want the changes in.

⬇ Download capture-thread-627.md