Why We Built 2 Local-First B2B Mobile Apps Using Flutter and React 19 + Capacitor 8

# flutter# react# mobile# startup
Why We Built 2 Local-First B2B Mobile Apps Using Flutter and React 19 + Capacitor 8Vanza Labs

When my co-founder and I started our product engineering studio, VanzaLabs, we faced the classic...

When my co-founder and I started our product engineering studio, VanzaLabs, we faced the classic agency paradox: to win clients who need turnkey MVPs, you have to prove you can ship production-ready software from scratch.

Instead of creating dribbble-style mockups or another todo app, we decided to solve two real-world workflow problems for small businesses and independent contractors—and ship two production apps to Google Play.

Here is a breakdown of why we bet on a Local-First (Zero-Middleware) architecture, why we chose Flutter for one app and React 19 + Capacitor 8 for the other, and how a 2-founder team ships at startup speed using AI-assisted workflows.


Why Local-First (No Middleman Servers)?

Most mobile productivity tools for small businesses and field workers suffer from two major friction points:

  1. Data Privacy & Trust: Contractors, freelancers, and business owners don't want their client lists, pricing tables, and financial contracts stored on a random third-party startup's database.
  2. Offline Reliability: Field work happens in basements, construction sites, and warehouses where mobile connectivity drops constantly.

So we designed both products around a strict Local-First principle: the app either runs 100% offline on the device or communicates directly with the user's own cloud account (Google Drive / Sheets / Forms) with zero intermediate backend servers.


App #1: FormGrid — Mobile Workspace for Google Sheets™ & Forms™

The Problem: Try creating a Google Form linked to a response spreadsheet—or quickly appending a new order row to a large sheet—inside a mobile browser. The mobile web UI for Google Forms and Sheets wasn't built for fast field operations.

Our Solution (FormGrid on Google Play):

  • Tech Stack: Flutter (Dart, Material 3), Google Workspace APIs (Drive v3, Sheets v4, Forms v1), Provider, RevenueCat (purchases_flutter), qr_flutter, receive_sharing_intent.
  • Direct Client-to-API Architecture: FormGrid connects directly from the mobile client to Google APIs using scoped OAuth access—only touching files created or opened through the app.
  • Offline Sync Queue: When a user adds rows to a sheet without internet access, entries are queued locally on the device and automatically synced once connectivity is restored.
  • Field-Ready Utilities: Ready-to-use business sheet templates (orders, inventory, attendance, budget), an instant custom QR code generator for newly created forms, and direct file import via the OS share sheet.

App #2: Vanza Invoices & Contracts — Pocket PDF Generator for Contractors

The Problem: Contractors, builders, artisans, and freelancers often calculate job estimates on paper or in messy chat threads, while clients expect a clean, professional PDF estimate, invoice, or contract on the spot.

Our Solution (Vanza: Invoices & Contracts on Google Play):

  • Tech Stack: React 19, TypeScript, Vite, Tailwind CSS 4, Capacitor 8, Dexie.js (IndexedDB), jsPDF + jspdf-autotable, RevenueCat (purchases-capacitor).
  • Why React 19 + Capacitor 8 Instead of Flutter? While Flutter was ideal for native list performance and OS intents in FormGrid, an invoicing and contract engine revolves around complex dynamic forms, line-item tables with automatic tax/discount calculations, amount-in-words formatting across 13 languages and 20+ currencies, and rendering 12 distinct PDF templates. Using React 19 and Tailwind 4 inside Capacitor 8 allowed us to iterate on complex document layouts much faster.
  • 100% Offline via IndexedDB (Dexie.js): Client directories, service catalogs, pricing, and generated documents live entirely on the user's phone—no mandatory sign-up required.
  • On-Screen Signatures & Stamps: Clients can sign directly on the smartphone screen with their finger upon job completion, while contractors can overlay their transparent PNG company stamp and share the final PDF via WhatsApp, Telegram, or Email in one tap.
  • Optional Google Drive Backup: Users can optionally back up their local database directly to their own Google Drive.

Shipping Fast as a 2-Founder Team

As a two-founder team, leveraging modern AI coding agents alongside disciplined architectural review lets us compress weeks of boilerplate UI and localization work into days.

However, our biggest takeaway is simple: AI accelerates code generation, but human engineering owns the architecture. From configuring corporate Google Play Console accounts (D-U-N-S verification to bypass the 14-day / 12-tester personal account bottleneck) to wiring offline sync queues and subscription billing, shipping real products requires end-to-end engineering rigor.


What's Next?

We are currently growing our in-house apps while helping startups and SMBs build their own products at VanzaLabs:

  • Turnkey Web & Mobile MVPs in 3–8 weeks (Flutter, React, Next.js, TypeScript, Python) with 100% code ownership in your GitHub.
  • AI & Workflow Automation (CRM/ERP integrations, custom AI agents, and RAG systems).

We'd love your feedback on the apps and our stack choices! Have you used Flutter and Capacitor side-by-side in production? Let us know in the comments.

🌐 Website: https://vanzalabs.tech