How We Built Muse x402 with Claude Code, GitHub & Digital Ocean
March 6, 2026 · 8 min read
Muse x402 is a web3 trivia game where players guess famous paintings and university mascots, paying tiny Solana micropayments to unlock hints. The entire project — from first commit to live deployment — was built using Claude Code inside VSCode, with every push automatically deployed to Digital Ocean via GitHub Actions. Here's how it all fits together.
The Tech Stack
Before diving into the workflow, here's what Muse x402 is built on:
- Next.js 15 — React framework handling both the frontend and API routes
- Prisma + SQLite — database ORM with a lightweight SQLite file on the server
- Solana Web3.js — for wallet connections and on-chain micropayments
- Tailwind CSS — utility-first styling, dark theme throughout
- x402 Payment Protocol — HTTP 402 Payment Required flow for hint unlocking
Writing Code with Claude Code
Almost every file in this project was written, edited, or reviewed inside VSCode using the Claude Code extension — Anthropic's official AI coding assistant. Claude Code runs directly in the terminal as a CLI and integrates natively with the VSCode editor, giving it full visibility into the entire codebase at once.
The workflow looked like this: describe a feature in plain English, let Claude Code read the relevant files, propose changes, and apply edits. For example, the entire x402 payment flow — the 402 response from the API, the Solana transaction in the frontend, the on-chain verification — was scaffolded and debugged this way.
What made it especially powerful was Claude Code's ability to hold the full context of the project — it understood how HintCard.tsx talked to the hints API, which talked to Prisma, which talked to the database — without needing everything re-explained each time. Complex multi-file changes that would have taken hours were done in minutes.
From VSCode to GitHub
Once a feature was working locally, committing it was a one-line command. Claude Code would often draft the commit message too — summarising exactly what changed and why. Commits were pushed directly to the main branch on the GitHub repository (tarvitave/x402muse).
The repository acts as the single source of truth. Pull requests were used for larger features, while small fixes and content updates went straight to main. The branch protection rules and automated checks kept the main branch always in a deployable state.
GitHub Actions → Digital Ocean
Every push to main triggers a GitHub Actions workflow automatically. The workflow:
- Checks out the repository
- Installs dependencies with
npm install - Runs the Next.js production build
- Builds a Docker image and pushes it to the container registry
- Triggers a re-deploy on Digital Ocean App Platform
Digital Ocean's App Platform handles the heavy lifting from there — spinning up the new container, running health checks, and switching traffic over with zero downtime. The database (a SQLite file on a persistent volume) is preserved across deploys.
The whole pipeline — from git push to live on the internet — takes about 90 seconds. Fast enough that we'd push a tweak, refresh the browser, and it was there.
Keeping the Lights On: Monitoring
A game with live Solana payments needs reliable uptime monitoring. Two tools keep tabs on Muse x402:
osvue.com — Uptime & Performance
Osvue monitors x402muse.com from multiple regions, alerting immediately if the site goes down or response times spike. It also tracks historical uptime and gives a public-facing status page. For a payment-enabled game where players expect instant responses, even a 30-second outage needs to be caught fast.
nocodeapi.com — API Health
Nocodeapi monitors the individual API endpoints — /api/paintings, /api/schools, /api/hints/[id] — making sure each one is returning the right status codes and response times. It catches issues like a slow database query or a broken external image URL before players notice.
What AI-Assisted Development Actually Feels Like
The honest answer: it feels like having a senior developer available at any time who has read every file in the codebase. You describe what you want, it proposes a solution and explains the trade-offs. You can accept, modify, or push back. The iteration speed is genuinely different from writing everything by hand.
It's not magic. Claude Code still makes mistakes — it occasionally proposes changes that break something else, or misunderstands a subtle requirement. But those are caught quickly because the feedback loop is fast: change, run locally, see the result in seconds, ask Claude to fix it.
For a project like Muse x402 — spanning Solana wallet integration, a custom payment protocol, database persistence, admin tooling, and a leaderboard — being able to move across all of it without context-switching cost was a big deal.
Wrapping Up
The full stack — VSCode + Claude Code for development, GitHub for version control, GitHub Actions for CI/CD, Digital Ocean for hosting, osvue.com for uptime monitoring, and nocodeapi.com for API health — gave a small team the ability to ship, iterate, and monitor a production-grade web3 app quickly and confidently.
If you want to try the game, head to x402muse.com. Connect a Solana wallet, guess a painting or a school logo, and see the x402 payment flow in action.