69
40 Comments

The Architecture Behind A One-Person Tech Startup

  1. 9

    I'm a recovering engineer, so almost all of the technical stuff went over my head. But I want to take a second to stop right at the "one person startup" part and say Good Job. This stuff isn't easy, even if you're taking it slow and using open source tools to get you up and running. Don't discount the fact that You. Are. Getting. It. Done.
    Way to go!

    1. 1

      Thank you, that's very encouraging!

  2. 8

    Crazy Infrastructure! I work in an IT - Consulting Company and most parts of this Post is actually what we, as DevOps Team, tell everybody to setup because they want this kind of Infrastructure for high availability and incident management :)

    What leads me to the question: Getting all that up and running requires usually an Operational Team. For how long are you building your startup ? How much time to you invest in building the App and how much time in building the Infrastructure around it ?
    How many customers do you have ? is your workload high?

    1. 4

      I've been really lucky to have a team willing to mentor me these past years. Also had many (catastrophic) failures in production which taught me a lesson or two :)

      I actually spend very little time managing the infrastructure side of things. The initial setup took maybe a week of part time work, and since then maybe a couple of hours per month, something none at all.

      While I love tinkering with the engineering side of things, most of my time is actually spent on product/customer support/marketing.

      People used to tell me support can eat up a lot of time, and I can say they were absolutely right :) That said, I’m happy to chat with my customers, most of them know I’m a one-man operation so they’re pretty friendly and patient with their requests.

  3. 4

    I haven't finished reading yet because that's a beast of a breakdown, but great job. Shows you put a lot of time and effort into it.

    I like the considerations around security.

    1. 1

      Thanks Simon! I appreciate it

  4. 3

    Very nicely written. I spent the time to read through, it's very insightful. At the same time, I feel like... you guys are really missing out. I am a one person tech startup (I do web & mobile apps. I also advise few other companies ). I am on .NET/Azure stack. I can say, I have pretty much all the features you mentioned and more without leaving the Microsoft/Azure ecosystem.

    I use GoDaddy and Azure as domain registration. DNS would be from GoDaddy and Azure. I have 3rd party SSL but going forward I'll just use Azure SSL as they are free, managed and auto renew. I use Stripe for checkout. That's pretty much it from 3rd party.

    I use App Service (Web App, Azure Functions).
    -Scale: I just set the budget and it can scale up and out as I defined. I have CDN, Load balancing from Azure.
    -Security: Azure Key Vaults (for secrets), configuration, DDos Protection, Access Control. I use Azure SSL as they are free, managed, and auto renew.
    -Some built in tools: Kudu services
    -API Management, CORS
    -Monitoring: Alert, Metrics, logs, health check, app service logs, log stream, process explorer...
    -Automation: Tasks, Events, WebJobs

    My storage solutions are: SQL, SQLite, MySQL, Azure (file, blob, queue) Storage, Azure backups, CosmoDB.

    My source control/CICD are Azure Devops (though they can be on github as well, I had them setup before Microsoft acquisition). I have multiple Deployment slots.

    I've tried Azure B2C for identity solution and... While I like it, I wouldn't recommended it at this time.

    I guess what I wanted to say is picking Microsoft as my ecosystem seems to work well for me. Everything just work. Not exploring or trying it out is just ignorant. I used to use AWS but it's just easier and faster on Azure.

  5. 3

    Such an informative and insightful article! I’d love to be able to subscribe to your blog btw.

    Also, I saw that you said you mainly learnt devOps from a mentoring team. What about web and UI design? Panelbear looks so neat!

    1. 1

      Thanks for the nice comment!

      I studied Computer Graphics, and took various design courses which I think helped me suck less.

      Painfully humbling, and while I’m no designer, I feel more comfortable with it now :)

  6. 3

    Really excellent article on building a sustainable architecture for a saas. I particularly like the emphasis on a version controlled architecture and flux for auto deploy of images.

    Would be interesting to see a follow up on AWS costs for this approach - these can soon rack up. What would you advise for a indie-hacker starting out - would it be cheaper to initially use a dedicated VPS with a single node cluster and then transfer to AWS EKS. Is this approach doable - given your configuration how feasible is it to switch to different cloud providers - google, on-prem, your laptop (for instance).

    Keep up the good work. A useful article looking forward to more :)

    1. 2

      On digital ocean the kubernetes master node is free. So there is no extra cost at all to use this setup. Only caveat is that the smallest node isn’t available.

  7. 2

    I love the fact that you called out that it's one person startup. So much advice is geared towards investment and building huge companies. These days, you can do SO MUCH without a larger team. Focus on adding value and building what people want.

  8. 2

    Thank you for sharing this! This was a super fascinating read. You're definitely ahead of where my project is, so it was awesome to see what kind of architecture is supporting a tech product like your own. I'm looking for a cofounder to help with the workload, but this article really encouraged me to continue on as a solo developer at least for the meantime.

    1. 1

      Also, please create a newsletter! :)

  9. 2

    There's a bunch of good commentary on this blog post on HN: https://news.ycombinator.com/item?id=26737771

  10. 2

    Very interesting to see, I'm running exactly the same stack with few differences. Thanks for sharing.

  11. 1

    Hi @asimon. Thank you so much for sharing your set up. I'm a 23 y/o business student but over the year I'm getting more and more into programming. Your posts are very helpful, hope there're more coming.

    I also tried to do a similar post: https://www.indiehackers.com/post/i-just-launched-my-first-product-as-a-solo-indie-hacker-here-s-the-stack-i-m-using-6a5f54e02c

    It's way simpler than your set up, but I'm still getting started and it works to me. 🙂

    1. 1

      Congrats on the launch Luis! Glad you found my post useful. And it’s great that you use what works best for you :) Best of luck!

  12. 1

    Seems solid, however not sure if you really need all that when getting started.

    I used to roll with Serverless on the AWS stack, now it's mainly Firebase and both get you pretty far with almost no ops effort

  13. 1

    Gotta get it out first that I'm not much of a technical person, so this massive breakdown kind of scares me. However, I run a newsletter that focuses around makers and hustlers who enjoy making their own things. I'm 100% my audience would appreciate this article. Is it okay for me to share this post with my audience?

    1. 1

      Yes that’s no problem :)

  14. 1

    Nice write up, I have a question :D
    Without a centralized log storage + query, e.g ES + Kibana,
    Do you feel reading the log solely from k8s logs good enough for your debugging your services and how much/often do you rely on logs to do debugging?

    1. 1

      Yeah it works quite well, and it keep things simple. For metrics I use NewRelic, and for exception tracking Sentry, so logs play a secondary role in debugging issues in prod.

      I used to run Loki for centralized logs, but it's more fun to just tail the logs in the terminal :)

  15. 1

    Very nice infrastructure. How do you prevent things from going wrong? Do you canary new versions and monitor some vital signs? How do you (plan to) handle things going wrong? Is there some automated rollback mechanism? Maybe I missed that in the post (as I have to admit I did not read it in full).

    1. 1

      Good questions, but I think the post already covers all those points :)

  16. 1

    Excellent post, thanks for detailing it so well!

  17. 1

    Excellent article!

  18. 1

    You were an SRE before weren't you? :p

    1. 2

      Backend developer :) But I somehow managed to blow up production so many times that I decided to read Google's SRE handbook and realized infra is cool too.

      https://sre.google/sre-book/table-of-contents/

  19. 1

    This is awesome! Thank you for sharing.

    I've been trying to set up Celery to replace some long running cron jobs I've been using.

    My current plan is to have the cronjobs schedule Celery tasks (e.g. Iterate through all users and create task to run report on each one).

    Do you have a good tutorial you'd recommend on how to get started with Celery? I've been trying to get started through the docs, but maybe I just need to push a bit harder.

    1. 1

      You can use celery beat to schedule the jobs :) It’s fairly simple and haven’t had any problems so far.

  20. 1

    This was an extremely insightful post, bookmarked it.

    I'm trying to supplement my Full Dev knowledge with a bit more Infrastructure understanding, but it's a beast trying to learn all of this and trying to stay ahead of the industry changes.

  21. 1

    Wow, thanks for that!

  22. 1

    How would you grade doing the same in digital ocean kubernetes?
    I am asking since AWS is very expensive to start. GCP is less expensive to start but not as cheap as digital ocean. I had a previous version of my product in GCP on credits but that was not logical to continue without revenue and i was not ready yet.

    1. 2

      If you want to use Kubernetes, you can start with DigitalOcean or Linode. They both offer one-click managed K8s for a fair price, and for the time I used them I was pretty happy overall.

      In case you want to version control your setup instead of using the UI, Terraform has examples in their docs: https://registry.terraform.io/providers/digitalocean/digitalocean/latest/docs/resources/kubernetes_cluster

    2. 2

      Kubernetes is the abstraction from your Servers / Cloud. It shouldn't matter if your Cluster in in AWS, GCP, DO or Bare Metal :) Track down how worthy one vCPU is in the DO cloud compared to gcp and aws and calculate the pricing on that

      1. 2

        I suspect it is not that easy. For example, in GCP you have a managed service for certificates (not let's encrypt). I noticed in your article that in AWS it is as simple as a line in the ingress rules. In digital ocean i found an article similar to your article length explaining how to do that :) I am thinking about simply buying and going to have to do that :)

        1. 2

          In the article I mentioned that I use letsencrypt within the cluster (I use https://cert-manager.io/), but you can also leverage ACM in AWS or as you pointed out the equivalent in GCP.

          Usually your cloud provider offers some annotations for their managed clusters that handle all the setup for you.

          I'm not super familiar with GCP, but maybe this helps: https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs

Trending on Indie Hackers
Micro-Communities | and why you should start one too 14 comments How We Made $49 in 3 months 14 comments Technical co-founder looking to partner up 10 comments I've built Billflow to $27k MRR in 18 months. AMA 4 comments 🧐 HELP! Where do Marketers and SMM hang out? 3 comments Lessons from making $35k in 4 months 1 comment