Atlas-Flora is a plant atlas — a reference portal with species cards, gardening guides and a disease encyclopedia, engineered from the ground up for search engines (Google, Bing) and generative search (ChatGPT Search, Perplexity, Gemini), in three languages.
The challenge
Build a service that scales to thousands of species cards while maintaining editorial quality and a full set of structured data on every single one — in three languages, with user accounts and cross-device sync, at near-zero infrastructure cost.
Tech stack
The core is Astro with Content Collections and Zod schema validation — species data lives as files in the repository and is checked on every build. The whole thing runs on Cloudflare Pages in hybrid mode: 700+ content pages are served statically from the edge, and server code handles only the accounts API. User data lives in Cloudflare D1 (SQLite) in the EU region. Search (Pagefind) builds its index from the finished HTML — no search server required.
What sets it apart
- Data in the repository instead of a database — a Zod schema breaks the build on a typo in a species name or a broken reference, and every editorial fix goes through review like a pull request.
- Three languages without content triplication — the canonical Polish card is the single source of data, and translations are overlays that override only the prose, field by field. URL segments are translated too (
/roslina/,/de/pflanze/,/en/plant/), tied together with full hreflang. - Accounts without an auth library — custom OAuth (Authorization Code + PKCE) and JWT: access token kept only in browser tab memory, a rotating refresh token in an HttpOnly cookie, stored in the database only as a hash.
- Complete SEO and GEO — Schema.org (Article, Dataset, FAQPage, HowTo, BreadcrumbList), sitemap, hreflang, and
llms.txtin three languages for citability by language models.
Result
169 species cards, 70 botanical families and 12 guides — every element in three languages, 711 static pages and 324 original photos in total. Lighthouse: SEO 100/100. Infrastructure cost stays within Cloudflare's free tier — even after adding accounts and a database.
See it live: atlas-flora.com
Tech stack: Astro · TypeScript · Zod · Cloudflare Pages · Cloudflare D1 · Pagefind · generative AI.