Switchback Labs

A side project · Est. 2026

Software for the long way up.

I'm Nick. I write software and run long distances on trails, and this is where the two meet. Most of what I build here starts as a small annoyance in my own life. Some of it turns into something real. All of it is for fun.

This is the plain version of the site. The real one is a 2004 desktop you can play with: open Switchback OS.

Things to do

Projects

Ideas, at different mile markers

Trailmark

Building

Race registration and operations for the trail and ultra community, plus a free race-day companion for athletes, their crews and the people following along.

Visit trailmark.run →

javelauryn.run

Live

A race-day guide for friends and family following one runner at the Javelina Jundred: live updates, push notifications, a cheers wall and a course tracker.

Visit javelauryn.run →

Performance challenges

Pilot

A platform for an athletic club's eight-week performance challenge: body scans, fitness tests and points-based divisions. It's a private pilot for now.

New idea (2).txt

Spitballing

The next one. It usually starts somewhere around mile 30 and ends up in this folder.

Under the hood

How this site runs

Hosting and cost

This site runs on one small AWS Graviton server (a t4g.micro) in Oregon, behind Cloudflare. It costs about $9 a month.

One server is plenty until traffic says otherwise. When it does, the same setup grows with it: a bigger server first, then more of them.

Messages to Nick go out through Amazon SES using the server's own AWS role, so there's no email password or API key to leak.

Deploys

Every push to the main branch runs the full test suite. If the tests pass, Kamal builds a container image and swaps it in with zero downtime.

The new version has to pass a health check before it takes any traffic. If it fails, the old version keeps serving. After every successful deploy, Nick gets an email saying what went out.

Security

The server has no open SSH port, and only Cloudflare can reach it. Traffic is encrypted all the way to the server.

Each deploy uses short-lived AWS credentials that GitHub requests for that run. Secrets live in AWS Secrets Manager, never in the code.

Backups and monitoring

The server's disk is snapshotted every day, and each snapshot is kept for two weeks.

AWS checks the server every minute and sends an email if it stops responding. Logs go to CloudWatch.

Say hi

Leave a note

Found a bug, cleared Trailsweeper, or just liked the music? Say so here, or email nick@switchback-labs.com.