The official marketing and documentation website for Parallax, built with Next.js.
- Framework: Next.js 15 (App Router, Turbopack)
- UI: React 19, Tailwind CSS v4, Radix UI, shadcn/ui primitives
- Animation & 3D: Framer Motion, Three.js
- Data viz: Recharts, d3-geo, world-atlas
- i18n: next-intl
- Package manager: pnpm
Install dependencies and start the dev server:
pnpm install
pnpm devOpen http://localhost:3000 to view the site. Pages live under app/[locale]/ and hot-reload as you edit.
| Command | Description |
|---|---|
pnpm dev |
Start the Next.js dev server with Turbopack |
pnpm build |
Create a production build |
pnpm start |
Run the production build locally |
pnpm lint |
Run ESLint |
app/
[locale]/ Localized routes (home, introduction, wallets, exchanges, faq, ...)
api/ Route handlers (e.g. node discovery)
components/ Reusable React components
i18n/ next-intl routing, request, and navigation config
messages/ Translation JSON files, one per locale
public/ Static assets
The site is localized with next-intl. Translations live in messages/<locale>.json, and the list of enabled locales is declared in i18n/routing.ts.
- Edit the relevant
messages/<locale>.jsonfile (e.g.messages/fr.json). - Keep the key structure identical to
messages/en.json— English is the source of truth. - Run
pnpm devand switch locales via the language selector to verify your changes. - Open a pull request.
- Add the locale code to the
localesarray ini18n/routing.ts. - Add a display name for it in the
localeNamesmap in the same file. - Create
messages/<code>.jsonby copyingmessages/en.jsonand translating the values (leave keys untouched). - Verify the new locale renders correctly in development, then open a pull request.
Please keep ICU placeholders (e.g. {count}), HTML tags, and punctuation intact, and avoid translating brand names like "Parallax".
Issues and pull requests are welcome. For non-trivial changes, please open an issue first to discuss the approach.
See LICENSE if present, or contact the maintainers.