
From LAMP to a Serverless API. I built the invoicing tool I always needed and now it's live :D
Hey everyone, Daniel here!
I'm not going to give you the high energy launch spiel :P (I'm tired already, Ha!). I'm just here to share what I built, because honestly, I'm proud of it.
For years, my world was the LAMP stack. PHP, jQuery, a trusty MySQL database. I could build things with my eyes closed. But every time a project needed invoicing, I'd hit the same wall of tedious, frustrating work.
So, I decided to build the solution for myself. The rule was simple: no using my comfort zone. I wanted a real challenge, to build something scalable and learn a modern stack from the ground up. I hadn’t seriously touched Python since my school days (the 2005-2009 era), but I dove in.
I obsessed over the architecture, probably (certainly) to an unhealthy degree. I chose AWS Lambda for the core PDF rendering over Cloud Run because cold starts were nearly half and I could control costs better with provisioned concurrency. I intentionally built with FastAPI backend instead of Next.js backend, and used Amazon SES instead of my usual Mailgun/Resend bros, purely to build a more versatile and cost-effective system.
It's a distributed system of about six different microservices, all designed to be independent and resilient. It's probably over-engineered for what it is, but it's blazing fast from here in Switzerland to the US (where data is stored), and I can defend every single technical decision behind it.
The end result is json2invoice. It's an API I built for me, and for any other developer who is sick of dealing with this problem. You send it JSON, you get back a PDF. That's it.
It's live on Product Hunt today. I'm not going to beg for upvotes. I'm just hoping to connect with other builders, talk tech and answer any questions you have: good or bad.
I'll be around all day (kinda, sorta... hopefully?)
Cheers!
JSON2Invoice
Replies