October 12, 2019

anti-milestone: temporary failures

Juri @instant

I thought it might be fun to share a setback instead of a positive milestone for a change. I screwed up twice, hindering my progress on (what is now) https://gllvr.com.

  1. Fail number one:

Naming is hard, and after way too much browsing of namecheap I got impatient and thought: "I know, I'll name my travel planner after my favourite migratory bird!"

I found swallow.app to be free, so I registered it one evening, pointed its DNS to netlify, done. Time to focus back on the essential task of building features!

Except no, the next day I strongly felt that the name didn't work AT ALL for most english speakers 😱. I had hoped that the connotations might be offset with a cute bird logo, but after gathering some more feedback from friends and the internet, it became clear that the feeling evoked by the word "swallow" was just a bit gross for most people. Sorry birds, you still rock.

How fix? The decision on name+domain felt weirdly permanent. Except that it wasn't. I swallowed (ha) my pride and reversed my decision. I looked for domains for "gulliver" and found gllvr.com to be free. I registered it as fast as possible, replaced the name in my source code, and vowed to never make decisions when tired again.

  1. Fail number two:

I'm decent enough at setting up backends, but I don't know much more than the basics about security.

So I needed a server to save trips that people share. Annoying but easy enough: rent a virtual machine for 3.50 a month, install postgres, nginx, fail2ban, ufw firewall, and some other stuff. Configure nginx with an api domain, set up letsencrypt, configure postgres to accept authentication via SSH, and so on.

I left port 5432 open in order to conveniently connect from my laptop, and accept the fact that my config is probably not perfect, but workable enough. I post some updates on the internet, and maybe a hundred people try out the travel planner.

Cue a couple of days later: I receive an URGENT 🚨 email from my provider: "Abuse-Message: Netscan detected ... We received evidence that an attack is originating from your server ..."

The email was very serious, so I briefly shit my pants, log in to my machine and kill a couple of weird processes started by the postgres user. I switch off the VM, disheartened that somebody violated my beautiful API baby.

This is already getting too long, so I'll just note that I decided to deploy the API on something more managed next time. I tried out Firebase and AWS before settling on Heroku for the time being. It was annoying and took some time to rewrite some of the backend, but in the end I'm happy with the current setup.

  1. Conclusion

So there you go, two self-inflicted setbacks. It was a great feeling to fix them. I briefly felt awful about both of these, but it allowed me to experience what DHH once mentioned: bad decisions can always be fixed, so don't be blocked on taking decisions out of fear of making a mistake.

Loading comments...