Laayo's tech stack
A five part tour of the systems behind Laayo, from the servers up to the apps in your hand. We wrote it the way we would explain the system to a new engineer on their first week: what each piece does, why we picked it, and what we would change.
Read part oneThe stack at a glance
Top to bottom, from the phone to the dashboards. Each layer links to the part that explains it.
-
01
Apps
Part 4- Swift (iOS customer)
- Kotlin (Android customer)
- Flutter (rider, partner)
- Shorebird OTA
- PHP SSR website
What people hold in their hands. The customer app is now native on both platforms; rider and partner apps stay on Flutter with over the air patches.
-
02
Edge
Part 1- Cloudflare
- nginx
- TLS everywhere
Every request enters through a CDN and a reverse proxy that decides which service answers it.
-
03
Services
Part 2- Laravel (PHP 8.3)
- Go API (hot path)
- Go realtime hub
- storelive
- menuwatch
- Queue workers
One Laravel monolith owns the business rules. Go services take the busiest reads and every realtime connection.
-
04
Realtime
Part 3- WebSockets (Pusher protocol)
- Redis GEO
- Polling fallback
Order status, chat, store open and close and rider positions are pushed to phones, with polling kept as the safety net.
-
05
Data
Part 1- MariaDB
- Redis (live)
- Redis (cache)
- Meilisearch
MariaDB is the source of truth. Redis is split by job: one for live state, one for cache. Search has its own engine.
-
06
Observability
Part 5- Prometheus
- Grafana
- GlitchTip
Metrics, dashboards and crash reports so we see a slow route or a crash before customers tell us.
-
Next
Planned
- H3 hex grid
- Redis Streams for order events
- Database read copy
Not built yet. These are the next steps we have written down, covered at the end of part five.
All parts
-
01
The foundation The servers, edge, databases and deploy habits that every order on Laayo runs through, and why we chose a boring, well-understood base before anything clever. Oct 12, 2026 · 7 min read
-
02
Go on the hot path How we moved the busiest API calls from Laravel to Go one endpoint at a time, by running Go in the shadow first and comparing every answer before letting it serve. Oct 15, 2026 · 7 min read
-
03
Realtime Order status, chat, rider positions and store open or close now reach phones in a fraction of a second. Here is the Go hub behind it and the fallbacks that keep it honest. Oct 18, 2026 · 6 min read
-
04
Going native Why we rebuilt the customer app in Swift and Kotlin, how we moved screen by screen without logging anyone out, and why the rider and partner apps stay on Flutter for now. Oct 21, 2026 · 6 min read
-
05
Seeing what happens The dashboards, metrics and crash reports we use to know how Laayo is doing right now, and what is planned next for the backend. Oct 22, 2026 · 6 min read