· Development · 2 min read
Side Projects That Actually Ship: Lessons from Building pdffaktura.dk
Side projects rarely ship. This one did, because it solved my own problem.

We’ve all been there. The graveyard of half-finished side projects on GitHub. “I’ll finish it later”, we tell ourselves, and then move on to the next idea.
The projects that actually ship usually come from a real need. For me, that need was invoicing. I had some freelance work and just wanted to create an invoice as a PDF and download it. The existing tools were too much. Reports, dashboards, subscriptions. I didn’t need any of that.
So I built pdffaktura.dk. The name means “PDF invoice” in Danish. It’s simple and clear. I used Next.js, pdfmake to generate PDFs, and daisyUI for the interface. One small feature was using cvrapi.dk to fetch company info from a CVR number, which saved time filling out details.
It shipped because I was the first user. Every feature had a purpose. The first and final version did three things: create an invoice, fetch business info from CVR, and make the invoice downloadable as a PDF. That was enough.
What I learned:
- Build something you need yourself
- Use tools you already know
- Good enough beats perfect that never ships
- Real use shows you what matters
pdffaktura.dk is not big, and it doesn’t need to be. It’s a tool I use, and that makes it worth more than a pile of unfinished projects.
Before starting the next side project, ask: Does this solve a problem I have? Would I use it even if nobody else did? Can I finish the first version in a few weeks? If yes, there’s a good chance it won’t end up in the graveyard.
