Landing site
The product website is a static Astro application. Its Home, Getting started, How it works, Pricing and FAQ pages do not require the API, database, identity service or an account. The Open panel link still requires the panel and its normal authentication services.
Local preview
Section titled “Local preview”Use the repository’s pinned Node and pnpm versions. From the repository root:
pnpm install --frozen-lockfilepnpm dev:landingOpen http://127.0.0.1:4320. The panel uses port 3010 and documentation uses port 4321.
To inspect the actual static output instead of the development server:
pnpm build:landingpnpm preview:landingStop the development server before starting preview on the same port. The output is
apps/landing/dist. Build all files before replacing a running deployment; do not mix
HTML from one build with another build’s hashed assets. Roll back by serving the preceding
complete image or static output, with its original origin configuration.
Public configuration
Section titled “Public configuration”Pass these environment variables to the build process (export them in the shell or use
Docker build arguments). The application does not automatically load the root application’s
private .env file.
| Variable | Preview default | Behavior |
|---|---|---|
LANDING_ENV |
preview |
production enables indexing and requires explicit public HTTPS origins. |
LANDING_SITE_URL |
http://127.0.0.1:4320 |
Canonical URLs, sharing metadata and sitemap. |
LANDING_PANEL_URL |
http://127.0.0.1:3010 |
Open panel destination. |
LANDING_DOCS_URL |
http://127.0.0.1:4321 |
Documentation destinations. |
Origins must not contain credentials, paths, queries or fragments. HTTP is allowed only on
loopback in preview. A production build rejects missing or loopback origins. Changing these
settings requires rebuilding. Preview emits noindex, nofollow and disallows crawlers in
robots.txt. Do not use robots.txt as an access-control mechanism.
Pricing links to info@localisync.com through the visitor’s email application. The website
has no contact submission endpoint or checkout. Appearance storage requires Preferences
permission. Optional Google Analytics requires a reviewed deployment configuration and
Analytics permission. See Website privacy setup.
Container output
Section titled “Container output”Build the independent image from the repository root:
docker build -f apps/landing/Dockerfile -t localisync-landing:local .docker run --rm -p 127.0.0.1:4320:8080 localisync-landing:localThe image serves port 8080 as a non-root user. HTML is revalidated; hashed Astro assets are
immutable-cacheable. A reverse proxy, public DNS and production TLS must be configured and
validated separately. Pass the three public origins and LANDING_ENV=production as build
arguments only when the deployment’s actual addresses have been assigned.
Update content with each feature
Section titled “Update content with each feature”Every feature or behavior change includes a landing impact review. Update affected summaries, SDK publication status, starting steps, FAQ, pricing links and product screenshots together with the relevant guides. Detailed instructions stay in the documentation; landing pages summarize them and link here. If the change has no landing impact, record that in delivery notes.
Product screenshots are real interface captures with clearly labelled example content.
Maintainers regenerate them through the opt-in pnpm landing:capture command in the isolated
E2E environment, review both themes, and verify that no account identifiers or secrets appear.
This capture command is separate from ordinary static builds.
Verify and troubleshoot
Section titled “Verify and troubleshoot”pnpm landing:checkpnpm test:landingpnpm brand:check- Panel or docs links fail: start those services or correct their build-time origins.
- Missing CSS or images after updating: verify a complete build was deployed; reload HTML and check that its hashed assets exist. Do not delete customer browser storage.
- Production configuration rejected: supply all three non-loopback HTTPS origins.
- Theme preference is not retained: browser policy may block storage; theme switching remains available for the current page.
- Product images need updating: run the dedicated capture flow with isolated services, then review the images. Do not capture a real customer’s session.
Choose whether we remember appearance preferences and use Google Analytics on Localisync and its documentation. Optional storage stays off until you accept.
Read our cookie policy