Go, founder, mobile, Laravel, Vue.js, React Native, saas, gps, AWS, architecture, PostgreSQL, case-study
Traxelio: A Fleet Intelligence Platform, From One Droplet to a Seven-Tier AWS Fleet
**I founded Traxelio and built the whole platform myself: a Laravel core, a Go ingestion service, a Vue dashboard, and a React Native app live on the App Store and Google Play, wired to a data layer that turns raw GPS pings into products operators pay for.**
## Outcome
I founded Traxelio and built its Laravel core, Go ingestion service, Vue dashboard, and React Native mobile app into a live fleet intelligence platform with products built on GPS data.
## Context
Traxelio is my solo-bootstrapped fleet intelligence company. Customers begin with tracking hardware and subscriptions, while the location data supports higher-value products such as driver scoring, fuel-theft analytics, and risk reports.
## Problem
Regional fleet-tracking competitors are hardware importers with a thin software skin. They sell a tracker, resell a white-label GPS server, and treat the data as exhaust. I founded Traxelio to invert that. Hardware is the entry point, not the product: a customer starts by buying a tracker and a peripheral or two (fuel sensor, dashcam, TPMS, driver ID), a subscription recurs on top, and the data those devices emit compounds into products like driver scoring, fuel-theft analytics, and risk reports. Hardware ARPU sets the floor; data ARPU sets the ceiling. What a reseller cannot match is the moat around that: a proprietary pipeline owned from the TCP socket up, local payments (Wave, Orange Money), a bilingual French and English UI, and native apps on both stores.
## Constraints
- Fleet scale means many devices, each emitting a position every few seconds, all day, indefinitely.
- Bootstrapped and solo: marginal cost per tracked device has to stay low, and one person operates every layer.
- The live map wants near-real-time positions while history wants cheap, durable storage, so freshness fights cost.
- Phones used as trackers drain battery fast and get killed by the mobile OS in the background.
- The platform has to stay acquirable: clean to transfer, automated to run.
## Decisions and trade-offs
**Infrastructure. Rejected: staying on the single droplet.** Traxelio began as one DigitalOcean droplet co-locating the entire web and data tier. That is operationally simple until one device spike or one runaway job takes down web, database, and websockets at once. **Also rejected: a managed telematics platform** (Wialon and its kin). It is the fast path, but it caps the margin, forfeits the data moat, and leaves me unable to touch my own packet layer. **Chosen: an AWS CloudFormation fleet of seven independent tiers**, each its own single-instance stack with the template as source of truth: app, MySQL, Redis, Reverb, a tracking box running Traccar plus a Go ingestion service, a camera box, and a Postgres box with pgvector embeddings. A fault in one tier no longer cascades across the rest.
**Position ingestion. Rejected: writing every ping through the app into the primary tables.** At fleet scale that is write amplification and lock contention on the same database serving dashboards, so a device spike would slow page requests. **Chosen: device ingest isolated on its own tier, feeding a dedicated positions queue.** Autoscaled SQS workers drain a bank of purpose-built queues, and position aggregation runs off the hot path so device load never competes with a dashboard request. Workers scale out under load and terminate when idle, so a job spike touches neither the web tier nor the ingestor.
**Mobile background tracking. Rejected: always-on high-frequency sampling**, which flattens the battery and invites the OS to kill the app. **Chosen: adaptive sampling tied to motion and ignition**, batching pings while offline and flushing them on reconnect. A little freshness traded for a tracker that survives a full shift.
## Implementation
I evolved the initial single DigitalOcean droplet into seven CloudFormation-managed AWS tiers for application, MySQL, Redis, Reverb, tracking, camera, and PostgreSQL with pgvector. The tracking tier isolates Traccar and Go ingestion, feeds purpose-built queues drained by autoscaled SQS workers, and the mobile app uses adaptive, motion- and ignition-aware sampling with offline batching.
## Results
Traxelio runs in production as a fleet intelligence platform, not a GPS toy:
- The catalog covers 1,500+ compatible device models, and the platform operates across 19+ cities in 10+ countries.
- iOS, Android, and web are all live, backed by the same isolated ingestion and real-time layers.
- The camera tier ships dashcam integration with driver identity checks and signed passenger footage links delivered by email.
- An AI assistant answers across five channels: mobile, web, WhatsApp, SMS, and email.
- A pgvector-backed intelligence layer underpins the compounding data products, including activity-based risk scoring pitched to microfinance partners.
Because it is solo-bootstrapped, there is no cap table and no investor obligations. Operations are automated, and every month of tracking makes the data asset worth more. That is the acquisition-ready shape: a running, automated platform with a compounding moat, carried from an empty repo to paying users on the web and both mobile stores, alone.
## Takeaways
Owning the ingestion layer creates the room to turn raw device data into differentiated products. Isolating hot telemetry from customer-facing systems keeps scale work from degrading the operator experience.