The official website for the Better Conversations Foundation (BCF), built with Astro and focused on promoting improved professional and personal communication through Better Conversations methodology.
npm install # Install dependencies
npm run dev # Start dev server at localhost:4321
npm run build # Build production site to ./dist/
npm run preview # Preview production build locally
npx astro check # Check for TypeScript errors/
βββ docs/ # Complete development documentation
β βββ README.md # Documentation overview
β βββ development.md # Project structure, commands, build
β βββ typescript.md # TypeScript rules and patterns
β βββ styling.md # Tailwind, section backgrounds, WaveSeparator
β βββ alpine.md # Alpine.js and progressive enhancement
β βββ content.md # Content collections, image utilities
β βββ design-system.md # Visual philosophy, brand, typography
β βββ design-components.md # Buttons, cards, forms, responsive
β βββ accessibility.md # ARIA, landmarks, keyboard navigation
β βββ accessibility-testing.md # Screen readers, contrast, forms, testing
β βββ content-guidelines.md # Writing style, tone, UK English
β βββ content-metadata.md # Metadata, SEO, blog posts, images
βββ public/ # Static assets (favicon, robots.txt)
βββ scripts/ # Build automation scripts
βββ src/
β βββ assets/ # Optimized images (processed by Astro)
β βββ components/ # Reusable Astro components
β βββ content/ # Content collections (blog, _whitepapers)
β βββ data/ # Image imports, metadata, data utilities
β βββ layouts/ # Page wrapper components (Layout.astro)
β βββ pages/ # File-based routing
β βββ scripts/ # Client-side JavaScript
β βββ styles/ # Global CSS with .bcf-* classes
β βββ utils/ # Helper functions and utilities
βββ AGENTS.md # Quick reference for AI assistants
βββ PLAN.md # Project roadmap and task tracking
- Astro v5.15.6 - Static site generator (fully static build, no SSR)
- Tailwind CSS v3.4.17 - Utility-first CSS framework with global
.bcf-*component classes - TypeScript v5.9.2 - Type-safe JavaScript with strict configuration
- Alpine.js v3.14.9 - Lightweight framework for progressive enhancement
Primary Documentation: /docs/ folder contains comprehensive guides:
- Design System β Visual philosophy, brand colours, heading/button conventions, typography
- Design Components β Buttons, cards, forms, spacing, responsive patterns
- Accessibility β WCAG 2.1 Level AA, ARIA patterns, keyboard navigation
- Accessibility Testing β Screen readers, colour contrast, forms, testing checklist
- Development β Project structure, commands, build process
- TypeScript β Script rules, component patterns, import paths
- Styling β Tailwind approach, section background rhythm, WaveSeparator
- Alpine.js β Interactive components, progressive enhancement
- Content Guidelines β UK English, writing style, tone
- Content & Metadata β Metadata, SEO, blog posts, images
Start with /docs/README.md for an overview and common tasks.
- AGENTS.md - Critical rules and quick reference (useful for AI assistants and humans)
- PLAN.md - Project roadmap, current status, and task tracking
- Brand Colors: Primary teal (
#54C4B6) and secondary green (#A8D381) - Consistent Gradients:
from-[#54C4B6] to-[#A8D381]pattern throughout - Global CSS Classes:
.bcf-*prefix for consistent components (seesrc/styles/global.css) - Responsive Design: Mobile-first approach with generous spacing
- Typography: Sentence case for headings, title case for buttons
See docs/design-system.md for complete specifications.
Create markdown files in src/content/blog/ with required frontmatter:
---
title: "Your Post Title"
pubDate: 2024-01-15
author: "Author Name"
tags: ["tag1", "tag2"]
excerpt: "Brief description for cards and listings"
---- Blog hero images: Place in
/src/assets/images/blog/as[slug]-hero.{ext}(auto-optimized) - Author photos: Place in
/src/assets/images/authors/as[firstname-lastname].{ext} - General images: Place in
/src/assets/images/for automatic optimization
See docs/content-guidelines.md for complete guidelines.
- Content Collections: Blog posts managed through Astro's content collections with schema validation
- File-based Routing: Automatic route generation from the
src/pages/directory - Client-Side Search: Fast, interactive search with advanced filtering (Typesense-powered)
- SEO Optimized: Sitemap generation, robots.txt, structured data (JSON-LD), OpenGraph tags
- Progressive Enhancement: Server-rendered content enhanced with Alpine.js for interactivity
- Accessibility: WCAG 2.1 Level AA compliant with keyboard navigation and screen reader support
- β Blog: Live and active with 8+ posts
- β Static Pages: All main navigation pages complete
β οΈ Whitepapers: Currently hidden (directories prefixed with_whitepapers)β οΈ Search: Functional but has 2 TODOs (API key and collection name - see SearchTypesense.astro)
When making changes:
- Check documentation first - See /docs/ for comprehensive guidelines
- Run
npx astro checkafter TypeScript/Astro file changes (must pass) - Use UK English spelling in all content (organisation, colour, centre)
- Check global
.bcf-*classes before creating custom styles - Test responsive design on mobile, tablet, and desktop viewports
- Test accessibility with keyboard navigation and screen readers
- TypeScript: Scripts with
define:varsmust useis:inlineand plain JavaScript only - Accessibility: All interactive elements must be keyboard accessible
- Mobile-first: Always start with mobile styles, enhance for larger screens
- UK English: Content only (never change code syntax like CSS properties)
See AGENTS.md for quick reference or docs/development.md for details.
-
npx astro checkpasses with 0 errors - All navigation links work
- Images load with proper alt text
- Forms submit correctly
- Keyboard navigation works (Tab, Enter, Escape)
- Mobile responsive (320px - 1920px)
- No console errors in browser
- Search functionality works
- Astro Documentation: https://docs.astro.build
- Tailwind CSS: https://tailwindcss.com/docs
- BCF Website: https://betterconversations.foundation
About BCF: The Better Conversations Foundation promotes improved communication through evidence-based methodologies. This is not a sales siteβwe emphasize partnership, collaboration, and open resources.
Learn more at betterconversations.foundation