All work

Platform·MMXXV — MMXXVI

Compusof Tools

A field log that works without signal

Year
MMXXV — MMXXVI
Role
Design & engineering

I·Context

Technicians reported incidents over WhatsApp, often from inside sites with no signal. Photos got lost in the chat and every report was rewritten by hand.

II·What I did

  1. I

    A real database inside the browser, so nothing depends on the network.

  2. II

    An assistant that works with any AI provider, or with none at all.

  3. III

    Reports shared to WhatsApp through templates each technician can tune.

How it is built

SQLite in the browser
SQLite compiled to WebAssembly, stored in the browser's private file system (OPFS) and running in a Worker, so a query never freezes the screen on a mid-range phone.
Live queries
Each query knows which tables it reads and reruns when they change. Notifications wait for the commit, so a rolled-back transaction never touches the UI.
A lossless migration
The app started on IndexedDB. The migration copies page by page, only ever reads the old database, resumes if the phone dies and isn't marked done until the row counts match.
On-device AI
OpenAI, Gemini, Claude, Groq or Chrome's built-in AI. With none of them, an open model runs on the phone's GPU through WebGPU and nothing the technician types leaves the device.
Hybrid search
Technical knowledge is searched by full text and by vectors inside the same SQLite, merged by rank fusion. Text answers from the first moment; vectors arrive later and only raise the quality.
Photos and caching
ImageMagick in WebAssembly shrinks every photo on the phone. The service worker never caches AI responses and only fetches the model runtime the first time it is needed.

III·What I learned

“The first time I built for the people right next to me.”

Tools

Vue 3·TypeScript·SQLite WASM·WebGPU·Workbox·AI SDK

Next work

Akelarre

Legal paperwork, from intake to signature

Contact

Your details are only used to reply to you. Read the privacy notice.