Wageasy
Invoicing for freelancers and small businesses — create a tax-compliant invoice in minutes, generate the PDF offline, and track it through to paid.

Wageasy is a mobile-first invoicing and business app for freelancers, consultants, and small teams. It turns the slow, error-prone ritual of invoicing into a couple of minutes: pick a client, add line items, and the app produces a polished, tax-correct PDF — even with no connection.
Behind the simple flow is a fair amount of machinery: a tax engine that handles GST, VAT, and sales tax across regions; a server-side PDF renderer; and a dual iOS/Android push pipeline that keeps the user informed as an invoice moves from sent to viewed to paid.
What we set out to solve
Freelancers lose real time to manual invoicing — formatting documents, recalculating tax, chasing payments — work that has nothing to do with the work they're actually paid for.
Tax rules differ by region (GST, VAT, sales tax), and getting them wrong on an invoice is both unprofessional and a compliance risk.
Many invoicing tools assume you're at a desk with a connection. People who invoice on the move need to produce a valid document anywhere, then get paid faster once it's out the door.
How we built it
We focused on the two moments that matter most to a freelancer: producing a correct invoice fast, and knowing the moment it gets paid. Everything was designed so the first works offline and the second happens automatically.
Tax-aware invoice model
Invoices, line items, and clients carry tax IDs, rates, and categories so GST/VAT/sales-tax totals are computed correctly per region — not bolted on at the end.
Offline PDF generation
The app renders a polished PDF on-device with expo-print, so an invoice can be created, previewed, and shared with no connection. The backend mirrors the same template server-side for sharing and archival.
Lifecycle tracking with push
Each invoice moves through draft → sent → viewed → paid, and a dual iOS/Android push pipeline notifies the user as the status changes — including when a client opens a shared invoice.
Templates and customisation
A library of invoice templates with colour, logo, and watermark customisation lets users keep a professional, on-brand look without design work.
What it does
Tax-compliant invoices
GST, VAT, and sales-tax handling across regions, with per-line tax rates and multi-currency support — correct totals, every time.
Offline PDF generation
Create, preview, and share a polished invoice PDF on-device with no connection required.
Status tracking & push
Follow each invoice from sent to viewed to paid, with native push notifications on both iOS and Android as the status changes.
Templates & branding
A library of customisable templates — colours, logo, watermark, payment QR — to keep invoices on-brand and professional.
Shareable invoices
Send a secure public link clients can open without an account; the app tracks views so you know when it's been seen.
Clients & projects
Organise work by client and project, with time tracking and budget context feeding straight into invoices.
Architecture
Wageasy pairs a React Native app with a Bun-powered API that handles the heavy lifting — server-side PDF rendering, S3-compatible storage, and platform-specific push — while keeping the app fast and offline-capable.
Expo Router app with file-based navigation, Jotai + React Query for state, and an Orval-generated API client. PDF generation and core flows work offline; Firebase Auth covers email, Google, and Apple sign-in.
A Bun + Hono service over PostgreSQL (16-table relational model). Invoices render to PDF via Puppeteer and land in S3-compatible storage; images are validated and optimised with Sharp.
Firebase Auth is the single identity source, synced to the database on each request. A push facade routes to APNs (HTTP/2, JWT) for iOS and FCM for Android behind one interface.
Built with
Engineering challenges
Produce a polished, tax-correct invoice PDF anywhere — including with no connection — and still keep a server copy for sharing.
The app renders the PDF on-device with expo-print for instant, offline output, while the backend mirrors the same template via Puppeteer and stores it in S3-compatible storage. One template definition, two render paths, consistent results.
Notify users reliably across iOS and Android, each with its own delivery mechanism.
A single push facade routes by platform: APNs over HTTP/2 with cached ES256 JWTs for iOS, FCM for Android, behind one notification interface. Invoice lifecycle events (sent, viewed, paid) flow through the same path.
Let clients view invoices without an account, without exposing private data.
Each shareable invoice gets a unique public URL and share token with optional expiry; opening it is tracked as a view, so the freelancer knows the moment a client has seen it.
A look inside







What shipped
Want us to build something like this?
Tell us about your project. NOTchip scopes, designs, and ships on a milestone basis — you only pay for results.
Start a project