Back to projects
// 001
Project file

Invoicify, end-to-end invoicing for Belgian businesses

Quotes, invoices, VAT and PEPPOL in one application, built for Belgian freelancers and SMEs.

Invoicify keeps quotes, invoices, credit notes, purchase orders, expenses and payments in one place. The product also covers preparation for electronic invoicing and Belgian VAT rules.

Invoicify public page with a preview of the account dashboard
Client
Endevops
Sector
B2B SaaS and administrative fintech
Year
2026
// 002
Project content

The regulatory context

Since 2026, electronic invoicing has been part of the obligations for Belgian businesses registered for VAT. Many small companies still use several disconnected tools to prepare a quote, send an invoice, track a payment and find a document later. That split creates duplicate entry, mismatched files and a mental load that has nothing to do with the actual work.

Invoicify started from that observation. The product was designed as a single environment for freelancers and SMEs that need to stay organised without adopting a heavy ERP. Work began in 2022 and continues as Belgian requirements evolve.

The document cycle

The application covers the core administrative cycle. A freelancer can create a quote, turn it into an invoice, issue a credit note and track a purchase order. Customers, products, payments and expenses live in the same space, with a history for each document.

Documents leave by email or through the PEPPOL network. Payments and reminders are tracked from one interface. A clear view of incoming and outgoing documents avoids searching for a file across three folders. The goal is not to add features for their own sake, but to reduce the number of places where information has to be copied.

Converting a quote into an invoice reuses the lines, the customer and the details already entered. A credit note can correct an invoice without recreating the document. Purchase orders support companies that need to approve a purchase before invoicing. These everyday actions stay in the same history, so nobody has to reconstruct the context at every step.

A readable interface

The interface is built with TanStack Start and React 19, using Tailwind CSS v4 and Base UI components. The design system includes several colour themes, light and dark modes, and a layout that stays readable when printed. Amounts use a monospaced font so columns are easier to compare.

Totals are recalculated on the server, and forms validate their data before submission. The public page and the application share the same visual language, with violet reserved for primary actions. That continuity means visitors do not land in a completely different interface after creating an account.

List, detail and form screens share the same components. Users find the same columns, labels and actions from one section to the next. That choice slows down the first design pass, but it reduces the number of variants to maintain and the surprises that appear at print time.

The product needs no installation. A browser is enough to create a document, track a payment or download a PDF. Updates ship on the server without user action.

The technical base

On the server, the application runs on an Effect v4 runtime with PostgreSQL and Drizzle. Every request opens an isolated context per organisation, with its own roles and permissions. An accountant can manage several client companies without mixing their data. Subscriptions run through Stripe, electronic invoices through PEPPOL, and email through SMTP.

PDF files are generated on the server. Errors are reported to Sentry with OpenTelemetry traces, which makes it possible to follow an operation from end to end when a document fails to send or a payment stays stuck.

Testing and production

Compliance was the hard part, not the interface. PEPPOL formats, Belgian VAT, legal mentions and document numbering all impose precise rules. Playwright tests and integration tests cover the critical invoicing flows.

Invoicify is live at invoicify.be. The product stays deliberately focused on the core administrative cycle. That focus supports a more direct interface, practical terminology and a shorter onboarding path for smaller companies.

It does not try to become a general ledger or a full ERP. General accounting, payroll and inventory remain outside the product. That boundary keeps the model small enough to explain and the interface small enough to learn.

Invoicify invoice editor with line items, VAT and totals

// 003

Ready to build something great?

Let's talk about your project. No commitment, no pressure — just an honest conversation about what you need.