Marketing-site monorepo for Rubrion — IT consulting for SMBs. Whitelabel products (EdgePress newsletter, Rubrion Store marketplace) and bespoke software. Sister org Mondesa handles IoT for energy systems.
| Folder | Stack | Domain |
|---|---|---|
rubrion-landing/ |
Astro 6 SSG + React islands + Tailwind v4 | rubrion.ai (English) |
rubrion-landing-pt/ |
identical clone, translated copy | rubrion.com.br (Portuguese — BR) |
Both projects use the @astrojs/cloudflare adapter targeting output: 'static',
share the same Turnstile site key, and post to the same support-email-worker
(lives in a sibling repo at ../support-email-worker/).
A small navbar widget on each site links to its counterpart so visitors can toggle locales (EN ↔ PT). The selection is persistent only by URL — no geo-redirect, no cookies.
cd rubrion-landing && npm install && npm run dev # :4321
cd rubrion-landing-pt && npm install && npm run dev # :4321 (run separately)cd rubrion-landing && npm run deploy # → rubrion-landing worker
cd rubrion-landing-pt && npm run deploy # → rubrion-landing-pt workerBoth worker bindings carry the same vars in wrangler.jsonc (Turnstile site
key + VITE_SUPPORT_WORKER_URL). Cloudflare custom domains attach to the
respective workers in the dashboard.
Hard fork. The two trees share no code at runtime — every translatable string
lives in either src/data/*.ts or in the .astro / .tsx files of each
project, and the translations are hand-tuned. When the EN copy changes, port
the structural delta to PT manually. See EMAIL_INTEGRATION.md for the
infrastructure side (DNS, MailChannels, Turnstile allow-list).
See EMAIL_INTEGRATION.md. The Cloudflare Worker
that processes contact-form submissions is in ../support-email-worker/.