|
|
|
|
|
by viharkurama
116 days 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. |
|