· 4 min read

How We Built Wageasy: From Idea to App Store with React Native

A behind-the-scenes look at how notchip designed and built Wageasy — a professional invoicing app for freelancers — using React Native, Expo, and a local-first architecture.

A behind-the-scenes look at how notchip designed and built Wageasy — a professional invoicing app for freelancers — using React Native, Expo, and a local-first architecture.

Every great app starts with a frustration. For Wageasy, it was watching freelancers struggle with invoicing — cobbling together spreadsheets, chasing payments, and losing hours to paperwork that should take minutes.

We’re notchip, a mobile and web app development agency, and Wageasy is our own product — built from the ground up to solve a problem we understood firsthand.

Here’s the story of how we built it.

Starting With the Problem

Before writing a single line of code, we talked to freelancers. Designers, developers, consultants — people running real businesses from their laptops and phones.

The patterns were clear:

  • Invoicing was scattered. Some used Word docs, others used Google Sheets, a few had tried enterprise tools that were way too complex.
  • Mobile was an afterthought. Most invoicing tools were desktop-first. Freelancers wanted to send an invoice from their phone right after finishing a job.
  • Privacy mattered. Nobody wanted their financial data sitting on someone else’s server if they could avoid it.

These insights shaped every technical decision we made.

Why React Native and Expo

We chose React Native with Expo as the foundation. The reasoning was straightforward:

  1. Single codebase, two platforms. Freelancers use both iOS and Android. Maintaining two native apps doubles the effort without doubling the value.
  2. Expo SDK simplifies native features. Push notifications, camera access for receipt scanning, file system for PDF generation — Expo handles the native bridge cleanly.
  3. TypeScript end-to-end. Type safety from the API layer to the UI components catches bugs before they reach users.
  4. Fast iteration cycles. With Expo’s development tools, we could ship updates and gather feedback in tight loops.

For the landing page, we chose Astro — a content-focused framework that ships zero JavaScript by default. Perfect for a marketing site where page speed and SEO matter more than interactivity.

The Local-First Architecture

The biggest technical bet we made was going local-first with OP-SQLite.

Instead of requiring an internet connection to create invoices, everything runs on-device. Your invoices, clients, and project data live in a local SQLite database on your phone. This means:

  • Offline PDF generation. Create and share invoices without cell service.
  • Instant performance. No waiting for API calls. The app responds immediately.
  • Data privacy by default. Your financial data doesn’t leave your device unless you choose to sync it.

We paired this with Firebase Auth for optional cloud sync and backup — giving users the best of both worlds.

GST: The India-Specific Challenge

Wageasy targets Indian freelancers as a primary market, which means GST compliance is a core requirement — not an add-on.

India’s GST system has two scenarios depending on whether the transaction is intra-state or inter-state: CGST + SGST for same-state transactions, IGST for cross-state. The tax rate is the same (18% for most services) but the split matters — clients need the correct breakdown to claim input tax credit.

We implemented a pure TypeScript function that takes the seller’s registered state and buyer’s state, determines the correct tax type, and calculates the amounts. The GSTIN (GST Identification Number) is entered once in settings and appears on every invoice automatically.

This was a non-trivial amount of compliance work — getting it right meant freelancers could stop manually calculating CGST/SGST splits on every invoice.

Design Decisions That Mattered

A few design choices that shaped the user experience:

Invoice creation in under 2 minutes. We timed the workflow repeatedly. If it took longer than 2 minutes to create a standard invoice, we simplified the flow.

GST-first for India. Most invoicing apps treat GST as an afterthought. We built CGST/SGST/IGST handling into the core data model from the start.

Progressive disclosure. New users see a clean, simple interface. Features like client history and export reveal themselves as users grow into the app.

What We Learned

Building Wageasy reinforced several principles we apply to all our app development work:

  • Talk to users before building. The features we were most excited about weren’t always the ones users needed most.
  • Local-first is underrated. For many app categories, performance and privacy gains from local-first architecture outweigh the complexity.
  • Ship early, iterate fast. The first version of Wageasy was deliberately minimal. User feedback shaped every feature we added after launch.
  • Mobile-first means mobile-only thinking. Not “responsive desktop app” — genuinely designing for how people use their phones.

What’s Next

We’re actively developing unlimited history with cloud sync, PDF export improvements, and project grouping — features that make Wageasy more useful for freelancers with high invoice volumes.

If you’re a freelancer tired of invoicing headaches, give Wageasy a try — plans start at $4.99/mo.

And if you’re building a product and need a team that thinks this deeply about the technical decisions, let’s talk. We’re notchip, and this is what we do.

  • development
  • react-native
  • behind-the-scenes
  • mobile-app
Share:
Back to Blog

Related Posts

View All Posts »