O'Crystal — brand website and pro area
Bilingual website for a Senegalese natural mineral water brand: range, the Niague spring, a map of points of sale, news and a professional area for distributors.

O'Crystal is a natural mineral water drawn at Niague. The brand wants a premium bilingual showcase and a dedicated channel for professionals and prospective distributors.
Deliver a fast, polished brand site that can be managed without a developer, with a professional area, forms and transactional e-mails.
Full-stack design and development
Technologies- Next.js
- React
- TypeScript
- Payload CMS
- PostgreSQL
- Tailwind CSS
- Three.js
- MapLibre
- next-intl
- Docker
Technical implementation
Framework
Next.js (server rendering) with an embedded Payload CMS: manageable pages, products and news, versioning and scheduled publishing.
Data and media
PostgreSQL through the Payload adapter; files on S3-compatible storage (Cloudflare R2).
Internationalisation and SEO
French and English with next-intl, sitemap, robots and per-page metadata, PWA (manifest and service worker).
Experience
Animations (Motion), 3D scenes (react-three-fiber), MapLibre interactive map, search.
Pro area and security
Professional accounts, TOTP 2FA for administration, rate limiting and captcha on forms, e-mails via Resend and React Email.
Quality and deployment
Vitest and Playwright tests (including accessibility with axe-core), Sentry; Docker Compose + Caddy on a VPS, or a Node service on Render behind Cloudflare.
- I designed the architecture: Next.js with an embedded Payload CMS and PostgreSQL.
- I built the site, the pro area and the transactional e-mails.
- I set up the tests (unit, E2E, accessibility) and error monitoring.
- I prepared and documented deployment (VPS with Docker Compose, or Render).
- Product range with interactive visuals
- Map of points of sale
- News and search
- Pro area: accounts and orders
- Contact and distributor-application forms
- Bilingual FR / EN site
- FR / ENbilingual site
- administration protected (TOTP)
- automated accessibility tests (axe-core)
- Navigateur · PWA → Next.js · Payload CMS
- Next.js · Payload CMS → PostgreSQL
- Next.js · Payload CMS → Cloudflare R2
- Next.js · Payload CMS → Resend (e-mails)
- Docker · Linux → Next.js · Payload CMS