Back to Projects

MI Printers

Offline-first business management PWA for a printing company with cloud sync across devices

MI Printers - Image 1
1 / 8

Project Overview

A full-featured Progressive Web App built for a real printing business, handling invoices, customers, suppliers, and payments — all with offline-first architecture. Works without internet using IndexedDB, syncs seamlessly to Supabase when back online, and generates professional PDF invoices on any device.

Problem It Solves

The client's printing business operates in an area with unreliable internet. Cloud-only tools would freeze mid-invoice when the connection drops, leaving customers waiting. They needed something that just works — online or offline — and stays in sync across the shop's devices without manual effort.

Tools & Technologies Used

Next.js 16TypeScriptSupabaseIndexedDB (Dexie.js)ZustandTailwind CSSService Workers

Skills Involved

Offline-First ArchitecturePWA DevelopmentState ManagementCloud Sync StrategiesMobile-First UI/UXPostgreSQL RPC FunctionsPDF Generation

Challenges

The trickiest part was getting bidirectional sync right — making sure an invoice created offline on one device doesn't clash with one created on another, handling soft-deletes that need to propagate everywhere, and keeping invoice number sequences correct even after app reinstalls or settings changes. I also had to think carefully about what happens when someone changes their password on one device while another device still has an active session.

Learnings

This project really forced me to think about data consistency in ways I hadn't before. Building the sync queue, handling optimistic UI updates that might need to roll back, and designing PostgreSQL functions that gracefully handle conflicts taught me a lot about real-world distributed systems — even at a small scale. I also got much better at building responsive UIs that feel native on mobile.