← Back to Notes

Ticker-Rush is Live: Production Launch Reflections

Mar 24, 2026

Ticker-Rush is Live!

I'm excited to share that Ticker-Rush has finally hit production on March 18, 2026! It's been an intense journey of building, refining, and finally seeing it live.

By carefully optimizing resource distribution and favoring lightweight components (like Valkey over full Redis), I'm running the entire stack (Go backend, React frontend, Valkey, and PostgreSQL) on a single VM instance with only 2 GB of RAM.

VM Management

Managing a remote VM can sometimes feel disconnected, but I've been once again impressed by how TRAMP and vterm work when accessing the live instance via SSH with Emacs.

While it can be a bit quirky at times (like occasional connection hiccups), the combination makes handling the remote VM feel like working on my local machine.

It's a powerful reminder that these classic tools are far from obsolete.

Strict Separation of Concerns

Running a full stack on 2GB RAM means every megabyte counts. In highly constrained environments, separating the build process from the runtime environment isn't just a best practice. It's mandatory.

Building Docker images, especially for the frontend, is extremely memory-intensive. Node.js and build tools (in this case Vite) would easily trigger OOM kills on the production instance, causing services to swap or crash entirely.

Offloading CI/CD for Production Stability

To keep the production environment lean and stable, I'm using GitHub Actions to handle the heavy lifting:

  • Build: Images are built in the cloud.
  • Registry: Pushed to the GitHub Container Registry (GHCR).
  • Deploy: The production VM simply pulls the pre-built images and restarts the containers.

This ensures that the VM's RAM is dedicated solely to running the services, providing a smooth experience for users.

You can check out the live site now at tickerrush.com!

Roadmap & Future Improvements

While the project is live, the work is far from over. Here's what's next on the agenda:

API Documentation with Swagger

As the project enters next phase, proper API documentation becomes critical. I plan to integrate Swagger to provide a clear, interactive interface for the Go backend.

Advanced Moderation & Admin Tools

Maintaining a healthy community is a priority. While I'm currently using the excellent go-away package for profanity filtering in Go, it doesn't catch everything (especially Russian profanity or clever transliterations).

To address this, I'll be implementing some sort of admin dashboard to manually restrict or ban users who behave badly.

If you're interested in the tech stack or want to try the simulator yourself, check out the Ticker-Rush project page.