3 ms·
Hi HN — I work on Plane. Our mobile app has to connect to Plane Cloud (always latest), self-hosted instances that can lag by weeks/months, and some fully air‑g
by viharkurama 7mo ago
Hi HN — I work on Plane.
Our mobile app has to connect to Plane Cloud (always latest), self-hosted instances that can lag by weeks/months, and some fully air‑gapped deployments with no outbound internet.
We ended up making the app assume nothing about the server: after login it does a single "instance discovery" call to fetch metadata (including backend version + deployment flags), then routes everything through a small compatibility engine:
- hard minimum supported backend version (blocked below it)
- a central feature registry (feature → minimum backend version)
- version-aware API behavior (pick endpoints/request shapes based on what the server supports)
Air‑gapped support mostly became "use the same mechanism, but enforce no external network calls/telemetry."
Would love feedback / other patterns folks have used for mobile + self-hosted version skew.