After my success with The Wheel Screener, I thought, "Why not? Why can't I go on to build a second sustainable MRR SaaS product?" This time, I would avoid all the quote-on-quote industry "mistakes" I made with The Wheel Screener.
Most of the Wheel Screener API runs on a single Digital Ocean self-managed server via a .NET API. I use AWS lambda functions and Netlify Identity as my auth layer when needed. Apparently, in 2022, that's considered "old school", and though I do love writing .NET code, I also wanted to change this so called "old school" architecture while building Kurynt. In the end, I believe I've achieved that goal:
- this site utilizes a 100% go backend (wow go, developed in silicon valley, Google, amazing)
- it is deployed on the cloud via the Google Kubernetes Engineer (GKE) (wow cloud, it's the future, amazing)
- the protocol used for client to server communication is not REST, but gRPC over WebSockets. (okay actually don't have a sarcastic comment here, gRPC is damn fast)
- the backend uses "advanced" cloud architecture design, including database replication, event queuing, and message bussing (via Rabbit MQ). (wow polling can accomplish this in half the code and complexity but is "bad", wow)
I hope you've noticed the marked speed and performance this application has over some more traditional ones! 😄 (and also take heed of my extremely sarcastic comments - indeed, sarcastic, but all sarcasm is based in truth!)I actually decided to throw all that unnecessary complexity out the window, (though I did managed to not use any .NET). Instead, I built Kurynt using a healthy mix of technologies and tools:
- A Supabase backend featuring PostgreSQL functions and triggers
- A suite of TypeScript serverless functions from Netlify ❤️
- Emails via Supabase and Mailjet
- Payments courtesy of Stripe ❤️
- Package information, data, and much more courtesy of GitHub and NPM
- Sentiment, question answering, and many more machine learning models from from Hugging Face
So, as my skepticism for the software community at large continues to grow, whether that be a product of my age, the nearly infinite number (it feels like) of interviews I've failed, the actual fact of the matter of reality of the situation, or just my curmudgeonry in general, I give you Kurynt, my best attempt at a tool to plan, review, and schedule package upgrades. Kurynt is a tool I use almost every day at InClub, where I continue my day-to-day role as CTO.