Hacker News new | ask | show | jobs
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.