Services
E-commerce & Online Sales
Custom Software & Apps
Company
Our company
CAMID (ZagZag/xmove) is an offline-first Progressive Web App for field workers, handling projects, activities, time tracking, addresses, articles and notifications for teams working on-site — often in locations with poor or no connectivity. As a Laravel development agency based in South Tyrol, we took over a multi-year codebase from the previous agency.
With no Laravel developer left on the previous team, CAMID needed a partner who could quickly take ownership of an unfamiliar, multi-year codebase and keep the platform moving forward without disruption.
Field workers must be able to work fully offline and sync reliably once back online. In parallel, file and data storage needed to move to Azure (the CAMID Cloud service).
True offline-first architecture — a clean one-directional sync pipeline (API → sync → IndexedDB → reactive UI), so the app is fully usable without a network.
Offline editing for time tracking via a write-ahead buffer that queues changes offline and reliably replays and reconciles them on reconnect — the hardest offline problem, solved for the entity that matters most in the field.
Client-side full-text search and sorting directly over IndexedDB, so search works with zero connectivity.
Resilient authentication that transparently refreshes sessions and replays interrupted requests.
Azure storage migration — moving file storage to CAMID Cloud with per-function security keys, per-file isolation, and robust metadata handling.
| Area | Technology |
| Frontend | React 18, TypeScript, Vite, Tailwind CSS v4, PWA |
| Local data layer | IndexedDB (Dexie), reactive live-query hooks |
| Backend | Headless Laravel API, PHP 8.4, Laravel Passport (OAuth2) |
| Database & storage | PostgreSQL 17, S3/MinIO, Azure (CAMID Cloud) |
| Architecture | Domain-driven design — action classes, presenters, typed DTOs |
| Monitoring & testing | Sentry, Laravel Pulse, Pest/Vitest, CI with linting & static analysis |
| Languages | 5-language UI: DE, IT, EN, PL, SL |
We start by reviewing the codebase, architecture and open issues before making changes. With CAMID, the priority was continuity of a live, business-critical system — moving it forward without disruption.
The app works fully without an internet connection, including time tracking and search. Changes are stored locally and reliably reconciled with the server once the connection returns.
CAMID needed a scalable, secure cloud storage solution for files. We implemented the migration with per-function access keys and per-file isolation.
Yes, this is one of our core strengths in Laravel development. CAMID came to us on a recommendation from the previous agency, specifically for our Laravel experience.
About two months, at a steady pace of 20–25 hours per month (roughly 40–50 hours total) — a deliberately lean, focused engagement covering the codebase takeover, offline improvements, and the Azure migration.