October 22, 2019

Carefully choosing my tech stack

Viktor Ferenczi @FViktor

Contrary to the common startup advice I won't use the tools I'm the most familiar with. Why? I would like to turn the product development process into a learning experience, so I gain transferable knowledge from it even if the product won't succeed on the market. Therefore, I choose a tech stack I am not yet (deeply) familiar with and accept the hit expected on productivity.

Choosing simple and reliable tools for each task should result in an efficient workflow. After spending some time shopping around I settled with the following tech stack:

  • Formal API definition: OpenAPI v3
  • Middleware code generation: OpenAPI Generator
  • Backend: Go (single static binary)
  • Frontend: Elm + Bootstrap 4
  • Persistence: JSON files
  • Web server: Nginx
  • Hosting: Linode
  • Authentication: Auth0
  • Monitoring: Datadog
  • Email: Mailgun
  • Payment: Signing agreements with BankID + manual invoicing

Yes, you've read it well. No fancy databases or containers. At least not at this stage. The solution need not scale just yet, but it must keep the possibility open. The backend is stateless, which allows for future scaling. The persistence layer has a well defined API internally, making it possible to switch to any scalable database solution later.

Basically, I deferred as many architectural decisions as possible according to Bob Martin's ideas from his great presentation: https://youtu.be/PWkeqFymteY

Today's Top Milestones
  • New Brand!
    Hey IH, it's been a while since I last posted an update about Leave Me Alone. We've all had a pretty crazy year and I kind of dropped off social media
  • Open report November - $200k ARR
    ✅ $200k ARR 💰 MRR: $17,549 (+51%) 🤯 💵 Revenue: $21,129 (+69%) 😱 😀 Customer Count: 185 (+ 20%) 💔 Churn: 13 (vs 20) 👋 New Trial: 950 (vs 840 ) 🔎
  • Looks Like its Sadly Over 😢
    2020 has been a struggle but we got hit with another blow yesterday with the news that our main supplier has decided to close its doors and not supply
  • Hit 1k ⭐️ on GitHub
    We hit 1k stars ⭐️ on GitHub today. Not a goal per se but that's really cool. Even a bit unreal to me, as I never had a project which reached that mil
  • Got featured on a newsletter!
    Woo-hoo! Metronome got a mention in the December 3rd edition of the Podnews newsletter! Permalink: https://podnews.net/update/a-shakespeare-joke-about
  • Started a Medium publication
    We created a Medium publication Brick by Brick https://medium.com/brick-by-brick as a way of sharing our engineering tips and insights to a broader au
  • First Customer from Paid Campaigns!
    After launching a couple paid search campaigns we got the first attributed paying customer. The main keywords for my competitors are really expensive
  • Featured on BetaList
    Today's our first day really testing some eyeballs on our new product, Hashtag Slayer. After reading the acquisition channel report by @zerotousers wh
  • How to Create a Feedback Survey -that gets results
    Why do you NEED FEEDBACK? You are constantly facing hurdles and brick walls that make your success seem impossible. - Difficulties like: - High churn
  • New Landing Page 🔥 w/ Tailwind
    *Special thanks to Maeva for her brilliant suggestions¹ and Chris for encouraging me to give it another go².* I can't say it's looking good or am I fe