Engineering inside Terra /
The data model, constraints and recovery decisions behind Terra.
A cinematic alpine arrival, expressive serif typography and a selectable journey story turn the site into an outdoor editorial experience. The field guide preserves the practical planning path.
Interface and interaction architecture
Vue renders the grouped daybook in the private itinerary workspace. The main site uses original generated landscape artwork and selectable journey narratives; the terrain remains an illustrative view rather than navigation data.
Calendar dates and activity instants are treated differently
Stays use strict arrival and departure calendar dates with a supported one-to-ninety-night duration. Activities use an offset-bearing instant plus duration. The server checks the activity interval against the stay's timezone, preventing a timestamp that looks valid in another timezone from falling outside the selected local stay dates.
Money uses integer minor units
Prices are stored as integer strings and totals use BigInt arithmetic. The supported currencies are INR, USD, EUR and GBP, with one hundred minor units per major unit in this implementation. A stay and its activities must share a currency. Input and total bounds are enforced, and PDF formatting avoids losing precision through floating-point conversion.
Requests preserve the reviewed itinerary
An itinerary contains stay and activity snapshots, prices, timezone and explicit estimate assumptions. Request creation requires the current content digest and stores its own frozen snapshot. A later itinerary edit cannot silently change the dates, activities or estimate that the operator was asked to review.
Inventory and responses have explicit ownership
Image references must be owned image files with credits. Map coordinates are numeric values within zero and one. Workspace-scoped persistence and references separate each operator's data. Owner responses use allowed states, version checks and idempotent commands, so a retry records the same decision without duplicating its effects.
Operating the product
Keep the stay timezone and pricing units accurate before publishing real inventory. A per-guest activity price differs from a group price, and a nightly price must be reviewed alongside the selected number of nights and any exclusions.
Use image credits that explain the actual source and rights context. Generated fictional scenery should remain identified as such rather than imply that it depicts the listed real property or an experience a traveller will encounter.
When a schedule is rejected, inspect the activity's local time and full duration, including the end instant. A start that falls on a permitted date is insufficient if the activity ends beyond the stay or overlaps another entry.
When the working itinerary changes after a request, compare it with the request snapshot before responding. The original request deliberately retains its earlier dates and estimate; submit the revised version when that is the decision the operator should review.
Write operator notes that state what was actually checked and what remains outstanding. Arrange any real booking, payment or traveller communication through a verified process, and do not use the application's local status as evidence that those external actions occurred.
Independent by construction
Terra has its own application source, build configuration, local server, database, object store and session cookie. The fifteen applications reuse copies of a common foundation, but their operational data and credentials are independent. A shared dependency cache on this Mac saves disk space; each product includes a lockfile and a command to install its own dependencies.
Mutations validate the workspace and current record version. Approval binds the reviewed content digest; an idempotency key prevents an identical retry from becoming a second action. These controls are implemented in the server, alongside the product-specific rules described above.
A similar problem in your business?
Bring a real workflow, representative inputs and the result that needs to be reliable.
Shape a project brief