A modern podcast platform built with Astro, featuring multi-language support and automated content synchronization from NocoDB.
- Multi-language Support: Full internationalization with content available in English, Dutch, German, and Spanish
- Automated Content Sync: Robust GitHub Actions workflow with real-time synchronization from NocoDB
- Episode Management: Rich episode pages with transcripts, show notes, and metadata
- Guest & Host Profiles: Detailed participant pages with social media integration
- Platform Integration: Comprehensive podcast platform support with automated linking
- Content Validation: Zod schema validation ensuring data integrity
- Responsive Design: Mobile-first, accessible design with modern UI components
- SEO Optimized: Built-in meta tags, structured data, and search engine optimization
- WCAG 2.2 Compliant: Comprehensive accessibility testing ensuring Level AA compliance
src/
├── content/ # Content collections (episodes, guests, hosts, platforms)
├── components/ # Reusable UI components
├── layouts/ # Page layouts
├── pages/ # Route pages
├── lib/ # Utilities and services
│ ├── engines/ # Content generation engines
│ └── services/ # External service integrations
└── types/ # TypeScript type definitions
Content is automatically synchronized from NocoDB using GitHub Actions. The workflow runs:
- Every 6 hours (scheduled)
- On manual trigger
- When sync-related files are updated
- Fetches data from NocoDB tables (Episodes, Guests, Hosts, Platforms)
- Generates MDX/JSON files in the appropriate content directories
- Commits and pushes changes to the repository
- Validates content and builds the site
All core functionality is operational:
- Complete CRUD Sync: Full create, read, update, and delete synchronization
- Real-time Content Updates: Content changes reflect immediately
- Robust Error Handling: Comprehensive error handling and logging
- Data Integrity: Validated content with proper schema enforcement
- Node.js 20+
- pnpm 8+
# Install dependencies
pnpm install
# Run development server
pnpm dev
# Build for production
pnpm build
# Run accessibility tests
pnpm test:a11y
# Run all tests
pnpm test:allA test script is available for validating the NocoDB sync:
# Test CRUD operations
node scripts/test-nocodb-crud.js create Episodes
node scripts/test-nocodb-crud.js update Episodes <id>
node scripts/test-nocodb-crud.js delete Episodes <id>Content types are validated using Zod schemas defined in src/content/config.ts:
- Episodes: Multi-language podcast episodes with metadata
- Guests: Podcast guest profiles with social links
- Hosts: Podcast host information
- Platforms: Podcast platform configurations
- Content Schema - Content type definitions and validation
- Project Architecture - Codebase structure and organization
- Development Guide - Development workflows and best practices
- WCAG Testing Strategy - Comprehensive accessibility testing approach
- Accessibility Testing Quick Start - Quick guide for developers
- Clone the repository
- Install dependencies with
pnpm install - Run the development server with
pnpm dev - Visit
http://localhost:4321to view the site
The custom code and content in this project are proprietary and all rights reserved by CRO.CAFE.
This project builds upon various open-source technologies, each governed by their respective licenses:
- Astro - MIT License
- And other dependencies as listed in package.json
For third-party components, please refer to their individual licenses in the respective node_modules directories or their source repositories.