# SXCHNGE Astro public website for a crypto-to-fiat exchange. English and Russian, responsive layouts, an illustrative exchange calculator, and explicit company / policy placeholders. ## Development Node >=22.12.0 (Node >=22.18 for the native TypeScript test runner), npm. ```sh npm ci npm run dev -- --background --host 127.0.0.1 npm run test npm run build ``` Use `npm exec astro dev stop` to stop the background preview. Static output is `dist/`. `/` redirects to `/en/`; localized content lives at `/en/` and `/ru/`. Legal placeholders have separate localized routes. ## Content and launch configuration - Translation source: `src/i18n/copy.ts`. - Brand reference: `design/tokens.json`, documented in `design/README.md`. - Optional Flutter palette reference: `flutter/brand_palette.dart`. Compatibility does not require identical application styling. - Full account URLs: set `PUBLIC_FLUTTER_REGISTER_URL` and `PUBLIC_FLUTTER_LOGIN_URL` at build time, as shown in `.env.example`. Locale is appended as `lang`. Until configured, actions open a clear preview dialog; no credentials are collected. - Quote fixtures: `src/lib/quote.ts`. Demo only; no rates are fetched, orders placed, or funds handled. - Replace all company placeholders, supply approved legal policies, and confirm supported assets, payout methods, countries, fees and timelines before launch. - The preview explicitly uses `noindex,nofollow`. Remove only when launch content is complete, and set the real domain in `astro.config.mjs`. Fonts are self-hosted with their license. No analytics, third-party trackers, client storage, or authentication backend is included. The website uses Astro's own TypeScript script support; React is unnecessary for the current interactions.