Always start with the API changelog. The backend is the source of truth for
what endpoints, request params and response fields exist. Do not guess shapes
from src/api.ts alone — it is a hand-maintained client and can lag behind the
server.
- Changelog:
../lnvps-api/API_CHANGELOG.md(sibling checkout of thelnvps-apirepo). Read the[Unreleased]section first, then work back through dated entries to find anything not yet reflected in the UI. - Reference docs:
../lnvps-api/API_DOCUMENTATION.mdfor full request/response detail on a given endpoint. - The web app only consumes the public/user API (
/api/v1/...). Ignore/api/admin/v1/...entries — those belong tolnvps-admin, not this repo.
- Read the changelog (
API_CHANGELOG.md), collecting every/api/v1/...change since the UI was last updated. - Diff against the client (
src/api.ts): for each change, check whether the method / request param / response field already exists. - Update
src/api.tsfirst — add or adjust the TypeScript interfaces and methods so the types match the server. - Then wire the UI, following
docs/code-style.mdand (for anything billing/lease/payment)docs/billing-design-system.md. - Add
<FormattedMessage>copy for all new user-facing strings, then runbun run locale:extractand translate the new keys. - Verify with
docs/build-and-test.md.
- Fields are frequently added as read-only (
subscription_id,deleting_on,company_id,account_type,tax[], ...). Adding them to the interface and surfacing them is usually low-risk. - Watch for breaking entries (e.g.
nwc_connection_stringremoved from/account,use_nwc→modeon referral) — these require changing existing call sites, not just adding new ones.