Skip to content

Repository files navigation

Cloud Native Peshawar — Official Website & Community Portal

Astro 5 CNCF Community GitHub Pages 100% Free CMS

The official website, speaker hub, sponsorship prospectus, and content management portal for Cloud Native Peshawar—the official Cloud Native Computing Foundation (CNCF) community group in Khyber Pakhtunkhwa, Pakistan.


🌟 Key Features

  • 100% Free & Zero Maintenance Cost: Hosted on GitHub Pages with automated CI/CD via GitHub Actions.
  • Modern-Minimal / Cobalt Design (/hallmark): Clean anti-AI-slop typography (Space Grotesk, Inter, JetBrains Mono), locked OKLCH color tokens, 8-state interactive components, and responsive mobile layout.
  • Git-Backed Headless CMS (/admin): Powered by Sveltia CMS—organizers can visually publish events, speaker profiles, partner logos, and blog recaps directly to GitHub.
  • Dedicated Sponsor Prospectus (/sponsors): Sponsorship tiers (Venue Host, Refreshment Partner, Swag Partner, Annual Ecosystem Partner) and sponsor ROI benefits.
  • Open Call for Proposals (/speak): Dedicated speaker hub supporting 15-min Lightning Talks, 40-min Deep Dives, and 90-min Hands-on Workshops.
  • Event Archives (/events): Complete archive with slides, YouTube recordings, and Open Community Groups RSVP links.
  • Automated OCG Event Synchronization: Daily bidirectional sync script and scheduled GitHub Actions workflow keeping community events up-to-date.

🛠️ Tech Stack

Component Technology Description
Framework Astro 5 Ultra-fast, zero-JS static HTML by default
Styling Vanilla CSS + OKLCH Tokens Strict 4-pt grid system, Hallmark design compliance
Content Schema Astro Content Collections (Zod) Strongly typed Markdown schemas for events, speakers, sponsors, team, and blog
Headless CMS Sveltia CMS Fast, zero-install SPA located at /admin
OAuth Proxy Cloudflare Workers (Free Tier) Zero-cost serverless GitHub OAuth proxy (oauth-worker/)
CI/CD & Hosting GitHub Pages + GitHub Actions Automated build & deploy on push to main

🚀 Quick Start (Local Development)

Prerequisites

  • Node.js v20+ or v22+
  • npm v10+

1. Clone the repository

git clone https://github.com/cncf-peshawar/cncf-peshawar.github.io.git
cd cncf-peshawar.github.io

2. Install dependencies

npm install

3. Start local development server

npm run dev

Open your browser at http://localhost:4321/.

4. Build static production bundle

npm run build

🧪 Testing & Quality Assurance

The repository includes a comprehensive testing and quality assurance pipeline enforcing strict type checking, end-to-end functionality, static build compilation, and link/asset integrity.

Test & Validation Commands

Command Script / Tool Purpose
npm test (or npm run test:all) node tests/e2e-runner.mjs Executes the 4-tier E2E test suite (Feature Coverage, Boundary & Corner Cases, Cross-Feature Integration, Real-World Scenarios).
npm run check astro check Validates TypeScript types and Astro content collection Zod schema constraints.
npm run build astro check && astro build Performs type check and builds optimized static HTML/CSS/JS artifacts into dist/.
npm run check:links node scripts/check-links.mjs Verifies static internal links, anchor hashes (#id), image/script assets, and directory routing in dist/.

Running the Full Quality Gate Locally

To execute the identical test matrix run by CI:

npm run check && npm test && npm run build && npm run check:links

E2E Test Suite Tiers

The master test runner (tests/e2e-runner.mjs) orchestrates 4 test tiers:

  • Tier 1: Feature Coverage: Validates individual components, content schemas, CMS configuration, and sync mechanisms.
  • Tier 2: Boundary & Corner Cases: Tests invalid frontmatter, edge timestamps, malformed HTML feeds, and boundary inputs.
  • Tier 3: Cross-Feature Integration: Evaluates interactions between OCG sync, schema validation, build output, and link integrity.
  • Tier 4: Real-World Scenarios: Simulates full community lifecycle workflows, talk submissions, event additions, and partner onboarding.

🔄 Open Community Groups (OCG) Event Synchronization

Cloud Native Peshawar events are hosted on the official CNCF Open Community Groups (OCG) platform. An automated sync pipeline keeps the static portal in sync with OCG event listings.

Local CLI Execution

Run the sync script manually using Node.js:

# Standard synchronization from live OCG portal
node scripts/sync-ocg-events.mjs

# Dry-run mode (simulates changes without modifying files on disk)
node scripts/sync-ocg-events.mjs --dry-run

# Custom source or custom destination directory
node scripts/sync-ocg-events.mjs --source https://ocgroups.dev/cncf/group/6vwk2n4 --events-dir src/content/events

CLI Options

Flag Shorthand Default Description
--source -s https://ocgroups.dev/cncf/group/6vwk2n4 Target OCG group URL, event detail URL, or local HTML fixture path.
--events-dir -d src/content/events Destination directory for event Markdown files.
--dry-run -n false Perform dry-run synchronization without modifying files on disk.
--help -h Display help message and CLI usage guide.

Non-Destructive Frontmatter Merge

The synchronization script safely merges remote OCG data with local Markdown files without overwriting manual enhancements:

  • Timezone Normalization: Automatically converts UTC ISO timestamps to Pakistan Standard Time (PKT, UTC+5 / Asia/Karachi).
  • Preserved Custom Fields: Preserves manual overrides for event titles, venues, cover images (coverImage), custom summaries, and existing Markdown body text.
  • Roster & Tag Union: Merges speakers and tags non-destructively, preventing duplicates while preserving manually added speakers.
  • Status Lifecycle: Automatically marks past events as completed while keeping future events as upcoming.

Scheduled GitHub Actions Workflow

The automated sync runs automatically via .github/workflows/event-sync.yml:

  • Schedule: Executes daily at 00:00 UTC (cron: '0 0 * * *').
  • Manual Trigger: Can be dispatched on demand via workflow_dispatch.
  • Git Commit: Declares contents: write permissions to commit updated event files directly to the repository with [skip ci] if changes are detected.

📝 Managing Content with the Headless CMS

You do not need to edit code to publish new events or blog posts:

  1. Open http://localhost:4321/admin/ (or the live URL /admin/).
  2. Log in:
    • Personal Access Token (Instant): Go to GitHub Settings -> Tokens, create a token with repo scope, and paste it into the Personal Access Token tab in the CMS login modal.
    • One-Click GitHub OAuth: If your team has deployed the Cloudflare OAuth worker, click Sign in with GitHub.
  3. Select a collection (Events & Meetups, Speakers & Mentors, Sponsors & Partners, Organizers & Team, Blog & Recaps).
  4. Create or edit an entry and click Save & Publish.
  5. The CMS commits the Markdown file directly to GitHub, triggering a fresh build on GitHub Pages in ~45 seconds.

🌐 Deploying to GitHub Pages

  1. Push your code to GitHub:
    git add .
    git commit -m "feat: complete Cloud Native Peshawar community portal"
    git push origin main
  2. Enable GitHub Pages:
    • In your repository on GitHub, navigate to Settings -> Pages.
    • Under Build and deployment -> Source, choose GitHub Actions.
  3. The workflow in .github/workflows/deploy.yml will automatically build and publish your website.

📜 Code of Conduct

Cloud Native Peshawar follows the official CNCF Community Code of Conduct. We are dedicated to providing a harassment-free and inclusive experience for everyone.


🤝 Get Involved

About

Official website and community portal for CNCF Chapter Peshawar

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages