DEV Community

Cover image for I built a Free Invoice Generator with Next.js because I hate subscriptions
Mutashim Mohsin
Mutashim Mohsin

Posted on

I built a Free Invoice Generator with Next.js because I hate subscriptions

The Problem with "Free" Tools

A few months ago, I needed to send a quick invoice for a freelance gig. I Googled "free invoice generator," clicked the top result, spent 10 minutes filling out the details, and hit "Download."

Pop-up: "Create an account to download your PDF." Next Pop-up: "Start your 7-day free trial."

I was frustrated. I just wanted a simple PDF, not a monthly subscription to an accounting ecosystem.

The Solution: SmoothLedger
I decided to solve this problem by building SmoothLedger.com.

My goal was simple:

  • No Signups: You land on the page, you type, you print.
  • No Watermarks: Professional output immediately.
  • Fast: Built on a modern tech stack.

The Tech Stack

As a full-stack developer (currently in my 5th semester!), I wanted to use tools that were fast and handled state management well.

Frontend: Next.js (App Router). I love Next.js for its SEO benefits and how easy it makes routing.

Styling: Tailwind CSS. It allowed me to build the invoice preview to look exactly like A4 paper on the screen.

Deployment: Vercel (for the frontend speed) and Azure (for backend services).

State Management: React Hooks. Since there is no database login required for the basic features, managing the invoice state locally makes the app incredibly snappy.

The Challenge: Printing to PDF

One of the hardest parts of this build was getting the web view to convert perfectly to a PDF. Browsers render HTML differently than PDF engines. I had to do a lot of tweaking with print-specific CSS (@media print) to ensure that when a user hits "Save," the margins, fonts, and layout remain perfect.

Future Plans

I am currently working on adding more tools to the suite, like a richer salary slip generator and potentially some AI-driven features to help categorize expenses.

Try it out

If you are a freelancer or dev who hates friction, give it a try. I’d love to hear your feedback on the UX or the code implementation!

Link: SmoothLedger.com

(I'm also open to connection requests here on Dev.to!)

Top comments (0)