Logo Lanfrica

zaiky09/playable-network

Record type:

software
Creator:
zai
Host:
PlayAble Network — youth development through sport, mentorship, and community engagement in Kenya # PlayAble Network Marketing site for **PlayAble Network** — a Kenyan NGO doing youth development through football in Turkana County. Tagline: _Built through play, driven by purpose._ Astro 6 + Tailwind 4, multilingual (EN / SW / FR / AR / ES), content via Sanity, contact form posts to Airtable + email notification via Resend. ## Stack - **Astro 6** with built-in i18n routing (5 locales, Arabic RTL) - **Tailwind 4** with CSS-based `@theme` configuration (Noto Sans / Noto Sans Arabic) - **Sanity** headless CMS (schemas in `/sanity/schemas`, studio in `/studio`) - **Airtable** for inquiry records, **Resend** for email notifications - **Vercel** hosting ## Local setup ```bash npm install cp .env.example .env # fill in real values (see Integrations below) npm run dev # site at localhost ``` The site auto-redirects `/` to `/en/`. Site works without any env vars — Sanity content falls back to static placeholders, and the contact form will render but fail to submit until Airtable + Resend keys are set. ## Project layout ``` src/ components/ Reusable Astro components (Header, Footer, ContactForm, LatestGrid, LanguageSwitcher) i18n/ Locale config + translation JSON files (5 locales) layouts/ BaseLayout handles + RTL font swap lib/sanity.ts Sanity client + query helpers (returns null when no project ID) pages/ index.astro redirects to /en/ [locale]/ one file per page, generates 5 locale variants each api/contact.ts form handler -> Airtable + Resend styles/global.css Tailwind import + @theme tokens sanity/ schemas/ Schema-as-code (siteSettings, page, program, partner, latestPost) studio/ Sanity Studio (separate package — see "Sanity setup") ``` ## Integrations ### Sanity (CMS) The studio is a separate npm package in `/studio` that imports schemas from `/sanity/schemas`. One-time setup: ```bash cd studio npm install npx sanity login …

Languages