$ show geeksblabla/geeksblabla.community
GeeksBlabla is a Moroccan tech community podcast website built with Astro. It serves as a content hub for podcast episodes (200+ episodes in Darija), blog articles, community projects (BlablaConf, State of Dev, Awesome Morocco), and a team page. The site features a chatbot (BlaBlator) powered by RAG over podcast transcripts using ChromaDB and OpenAI, an episode creation workflow integrated with Notion as a CMS, and YouTube API for metadata. The frontend uses Astro with React interactive islands, Tailwind CSS, and Rive animations for engaging visuals. The architecture is a hybrid of static site generation (Astro static output) with dynamic server actions and API routes deployed to Cloudflare Workers. It includes CI/CD workflows for episode validation, Spotify upload, and YouTube description syncing. While well-structured and feature-rich, it relies on many external services (Notion, OpenAI, ChromaDB, YouTube, Cloudinary, Supadata) and has some code duplication (two identical server action files).
The LLM identified 4 files worth highlighting for reuse:
A reusable library for managing ChromaDB collections and creating embeddings from text. It wraps OpenAI embedding API and ChromaDB client, providing a clean interface for adding documents and performing semantic searches. This module could be extracted to power RAG systems in other projects with minimal adaptation, requiring only environment variable configuration.
A well-crafted React button component supporting multiple visual variants (primary, secondary, outline, ghost, icon) using Class Variance Authority and tailwind-merge. Includes proper TypeScript typing and forward refs. Demonstrates a robust pattern for building a reusable design system component that can be extracted into any project using Tailwind CSS.
A chatbot UI component that streams responses from the server-side RAG API. Handles message history, loading states, and error handling. The streaming pattern using the AI SDK is clean and could be adapted for any conversational AI interface. It is self-contained and demonstrates good state management for chat interactions.
A pure function that extracts URLs from a text string using regex. Simple but well-tested pattern for link parsing. Can be reused in any project needing to parse markdown or plain text for hyperlinks without external dependencies.