deploying a custom blog in 2 hours with AI
how this site came to be
tools
the tools AI tools I used are: claude code and railway MCP. claude code is Anthropic's AI coding agent. railway is a cloud platform that provides the thinnest wrapper over bare metal that i have found. railway MCP is a third party tool that allows claude code to use railway.
development process
first i asked claude to tell me what technologies to use to make my blog:
then i created an empty template with webstorm:
then i asked claude code to make a blog with mdx:
then i edited the content, tweaked the colors, went back and forth on some details and got a working site out.
deployment process
i then asked claude code to deploy on railway, using railway MCP:
it then used the tool (railway MCP):
i ran into a few issues which required manual intervention:
- i had to add the custom domain myself
- although it linked the repo, i had to log into github in order for it to work properly (it failed silently)
also i would prefer it to update deployments instead of making new ones and deleting old ones.
then i asked it to add posthog behind a reverse proxy:
a few times the build would fail in railway prod and i just asked it to loop until npm run build
works before pushing. if that didn't work i asked it to check the railway deployment and read the railway logs and fix.
the posthog thing took a few more loops for debugging to get 100% down.
why railway?
because i am going to use it on a much more complex project soon enough and wanted to do a trial run. seeing as next.js was created by vercel i am sure using their mcp and platform would lead to a smoother experience.
for the future
increasingly, when coding with AI, the issue is not the actual code, but the integration. these are some examples i have encounter in the past month:
- getting twilio to accept my a2p 10dlc
- figuring out how to get a service json from google cloud console to use vertex ai
- having to link railway to my github
- having to buy domains and change the dns
- having to prove my identity stripe 100x
this will soon be solved when we get auth everywhere with api keys + MCP inside claude code. also when these MCP servers discoveries are standardized and easily integratable into claude code.
it's also somewhat weird to give claude code mcp servers. i have to rerun claude mcp add railway-server -e RAILWAY_API_TOKEN=... -- npx -y @jasontanswe/railway-mcp
every time i startup claude code. and i still can't let claude code accept tool uses automatically for minimal human intervention.