Building ClientDesk: a small client and invoice manager in Next.js

2026-11-10来源 dev.to TypeScriptEnglish

I built ClientDesk because I wanted one place to track clients, invoices, and payments for freelance work, instead of juggling spreadsheets.

It is a Next.js + TypeScript app with a Postgres database. You can add clients, create invoices with line items, record partial payments, and see what each client still owes. Invoices export as a one-page PDF, and clients export as CSV. There is a dashboard with the totals that actually matter: paid, outstanding, and overdue.

A few things I paid attention to along the way:

  • Auth with email/password is built, with password reset and Google/GitHub sign-in built but not switched on yet — they need credentials I haven't added.
  • Security headers, rate limiting on sensitive routes, and an audit log so changes are traceable.
  • Users can export all their own data and delete their own account.

It is a real working app, not a demo with fake data — the live version is linked below, and the code is on GitHub. If you try it and something breaks, tell me: that is the most useful feedback I can get.

Live demo: https://clientdesk-muhammadahmad67889s-projects.vercel.app/
Code: https://github.com/MuhammadAhmad67889/clientdesk

原文:https://www.a8q9.cn/en/article/building-clientdesk-a-small-client-and-invoice-manager-in-next-js-886931.html

相关文章