Logo Lanfrica

kaosi-anikwe/ncheta

Type de record:

media
Créateur:
kao
Hôte:
An independent African art and culture media company dedicated to documenting, preserving, and amplifying the stories of artists, cultural practitioners, and creative movements across Africa and the global African diaspora. # Ncheta Magazine An independent African art and culture media company dedicated to documenting, preserving, and amplifying the stories of artists, cultural practitioners, and creative movements across Africa and the global African diaspora. --- ## 🛠️ Technology Stack - **Framework**: Astro v5 - **CMS**: Sanity Studio v3 (`@sanity/client`) - **Styling**: Vanilla CSS & TailwindCSS v4 - **Hosting & Deployment**: Cloudflare Pages & Cloudflare Functions - **Search**: Pagefind - **OG Image Generation**: Sharp & SVG Vector Templates - **Newsletter**: Kit (formerly ConvertKit) API integration via Cloudflare Pages Function --- ## 📁 Project Structure ```text ncheta/ ├── functions/ # Cloudflare Pages Functions │ └── api/ │ ├── newsletter.ts # Kit newsletter subscriber integration │ └── inbound.ts # Contact form webhook handling ├── scripts/ │ ├── generate-og-images.js# Pre-bakes 1200x630 OG social cards with absolute URLs │ └── seed-sanity.js # Seeds categories, nested navigation, & sample editorials ├── src/ │ ├── components/ # Astro UI & navigation components │ │ ├── cards/ # Article card variants (hero, medium, small, text) │ │ └── navigation/ # Header (nested dropdowns) & Footer │ ├── pages/ # Astro routes │ │ ├── index.astro # Homepage (Latest section + category sections with subcat chips) │ │ └── magazine/ # Dynamic category & article detail routes │ └── sanity/ │ ├── client.ts # Sanity client configuration │ ├── queries.ts # GROQ query methods │ └── types.ts # TypeScript interfaces (Category, Article, Navigation) ├── studio/ # Sanity Studio CMS project │ └── schemaTypes/ # Category, Editorial, Author, NavigationSettings schemas ├── docs/ │ └── HYBRID_SSR_GUIDE.md # Detailed Hybrid SSR & Cloudflare deployment guide └── wrangler.jsonc # Cloudflare Pages configuration `` …