An Ode to Nest

An Ode to Nest
Hack Club Nest poster

It's been a while since I first set up my own Linux server. I've always had a few scripts where persistence would be nice, and now they've been scattered across my VPSes, home server and my PC. And though I'm lucky enough to have forced myself through the pain that is the Google Cloud Console, and learned what their free tier includes - which, by the way, has the least transparent free tier I've seen in my life - it was quite the uphill battle to learn how not to crash the server with the wrong script.

When I first learned about Hack Club's Nest, I didn't think it was all that great. Nest is Hack Club's free, shared, tilde-style server for and by teens, with over a thousand users on the same dedicated Hetzner host. I mean, what, 2 gigabytes of RAM for me? 10 gigabytes of storage? That's hardly anything!

What's Hack Club?

I'm glad you asked! Hack Club is one of those things I wish I found earlier in life, even just a few years ago. If you are a teen interested in programming or tech adjacent things, I could not possibly recommend it more. It's one of the primary examples of a do-ocracy - get stuff done, you get stuff. That mentality goes so far beyond the prizes you get for making cool things you care about making or the hackathons you get flown out to. Hack Club is an incubator for the most amazing, most creative, most impressive people and projects I have ever seen, and all for the price of absolutely nothing. If you're not in Hack Club and are interested, see the below "How do I join?" section for more info.

But the value of Nest goes so far beyond the pure specs. If you're looking to train an ML model, yeah, your laptop probably could do a better job. But for all the utilities configured, guides, and (mostly) active support in #nest-help on Slack, there's a good bit less friction in getting the small things working. Learning to do things without sudo spam everywhere also truly teaches you to understand what it is you're doing, not just how.

Nest is where I first learned how to use Caddy, nginx's better-looking cousin, with trainer wheels. How do you set up a domain, you may ask? Well, first, you create a socket with a little utility nest caddy add mydomain after setting up a few records. Then, add a little snippet that looks like this:

http://example.com {
  bind unix/.example.com/webserver.sock|777
  reverse_proxy localhost:12345
}

and voila, you're done! The first time through a project takes a while, and that journey is a great facilitator of learning. This was also the first time I had to learn about sockets and ports, and led me down a really deep rabbit hole of what I'd have previously considered useless knowledge, but has provided me a richer context for how things actually work.

I've made a few hacky scripts here, from a GitHub action that zips and copies the repo onto the server before restarting the systemd service to a bash script that's documented nowhere but Stack Overflow and Gemini search history. Nest encourages throwing stuff at the wall and seeing what sticks, because experimentation is exactly how great stuff is made.

Another great thing (or bad one, depending on how you look at it) is how it forces you into using sustainable tactics. No, you cannot nohup your processes into working for you, and no, you cannot leave tmux sessions running your scripts in the background. You have to learn to use systemd, writing service files in a restart-persistent manner. I also did learn about the concept of timer files through systemd, which is pretty neat. Here's an example of one I recently wrote in just a few minutes for a website tracking the progress of the Hack Club Slack Enterprise migration.

How do I join Nest?

First of all, you must be a teen (a shocker, I know). Join the Hack Club Slack. Since there's been a recent migration over to Hack Club Account login, you'll have to set up an account here first to log in. You do not have to verify your identity for your Slack login. Afterwards, head over to the Quickstart guide, which will walk you through how to set up your account, Nest verification, and how to make your first project. You can DM me @sadeshmukh on the Hack Club Slack if you have any questions, or even just want to chat!

Quick shoutout here to Kashyap, an amazing programmer who's also working on Nestualize, a desktop UI for Nest. You can download and contribute here.

If you're looking for highly consistent or reliable uptime, don't choose Nest. It almost reliably goes down every few weeks for a few hours, for maintenance, an unexpected outage, or something in between, averaging out a 99% uptime at best and 90% at worst. They even tell you as much, and if you truly need some sort of SLA, choose Oracle, Google, or Amazon, which all have decent free tiers. But between the free subdomain (sahil.hackclub.app), email server & address ([email protected]), and the sheer amount I've personally gained from it, I wouldn't hesitate for a second to recommend Nest to any teen looking to learn.

Perfect uptime is overrated anyways.