Claude Code Workflows Part 1: Visual Debugging on a Headless Server
How I review UI changes without a browser — using Playwright MCP for screenshots, a self-hosted image service, and a Claude Code skill that ties it all together.
Thoughts on web development, TypeScript, GraphQL, Prisma, and open source.
How I review UI changes without a browser — using Playwright MCP for screenshots, a self-hosted image service, and a Claude Code skill that ties it all together.
Set up automated production deployments to your Hetzner server using GitHub Actions, Tailscale VPN, PM2 process management, and Nginx reverse proxy with SSL.
How to install Claude Code on your remote server, set up a productive development workflow with tmux, and build features with AI assistance from any device.
How to secure your Hetzner server with Tailscale VPN, SSH hardening, and custom port configuration so it's only accessible through your private network.
How to configure a fresh Ubuntu server for development — creating users, installing Node.js, Bun, Docker, PostgreSQL, and setting up a comfortable shell environment.
Why I moved my entire development environment to a Hetzner dedicated server, how to pick the right specs, and what to expect from the ordering process.
Learn how to solve the GraphQL N+1 problem and over-fetching issues using PrismaSelect to analyze GraphQL queries and generate optimized Prisma select objects.