ryer.io

Vibe Coding My Way to a Unified Personal Website

TL;DR

  • Integrated three separate web apps into one website using Docker and GitLab CI/CD.
  • Employed “vibe coding” to accelerate development with AI assistance.
  • Witnessed the stark difference in container sizes; Next.js apps were surprisingly large.
  • Focused on speed and functionality, setting aside non-essential processes to maintain rapid momentum.

Today has been quite the adventure with my personal website. The journey started because I wanted to learn Go, spurring the creation of an initial site at go.ryer.io. That setup had most of the backend and timeline functionalities, leveraging a Postgres database with a Remix frontend. Not quite satisfied, I initiated two more projects: a Journal app for converting voice notes into blog posts using an AI pipeline and Markdown with Hugo, and a Connect site using Next.js.

The real challenge today: integrating all three ventures under ryer.io. My approach involved Dockerizing everything, creating a seamless development environment with a custom script to spin up Docker containers for each component. This setup ensured that each service, despite being on different runtimes, could communicate effectively during development.

Also, I’ve been “vibe coding”—a blend of exploratory and opportunistic programming—aiming for quick results. I used AI to learn and speed up the coding process, although I had to intervene when the AI misjudged context or repeated steps unnecessarily.

Finally, I got the apps dockerized and used GitLab CI for deployment. I deployed the integrated site to Railway, where the biggest surprise was containers’ sizes: Next.js ballooned to 457MB compared to Remix’s more modest 157MB, and the practically lightweight Hugo app at just 5MB!

In conclusion, transitioning the diverse applications into a single coherent setup was a rewarding exercise in quick iteration and creative engineering. The experience emphasized practical learning, effective AI use, and reminded me of the importance of staying adaptive with tech choices. Now, it’s time to tweak some settings on Railway and finalize this deployment.