Skip to content

DreamLab-AI/eskdale-website

Repository files navigation

The Eskdale Art Show

https://eskdaleartshow.com

Website for the 31st Annual Eskdale Art Show, 23–25 May 2026, at St Bega's School, Eskdale Green, Cumbria.

Built as a static site with no framework dependencies. Content is managed through a web-based CMS. The site deploys automatically on every change.


For Content Editors (Art Show Committee)

You do not need any technical knowledge to update this website.

All content — event details, gallery images, descriptions — is edited through a simple web form at pagescms.org. No code, no downloads, no terminal.

Read the full guide: docs/cms-guide.md

Quick Start

  1. Go to pagescms.org
  2. Click Sign in with GitHub
  3. Select the eskdale-website repository
  4. Edit Event Details or Gallery using the form fields
  5. Click Save — the site updates automatically within 2 minutes

For Developers & Contributors

Repository Structure

eskdale-website/
├── src/                          Website (deployed to GitHub Pages)
│   ├── index.html                Main page
│   ├── CNAME                     Custom domain config
│   ├── css/style.css             Design system & all styles
│   ├── js/
│   │   ├── main.js               Data loading, carousel, gallery, countdown
│   │   └── wasm-fallback.js      JS brushstroke effect (fallback for WASM)
│   ├── data/
│   │   ├── event.json            Event details, venue, categories, contact
│   │   └── gallery.json          Gallery items (image, artist, medium)
│   ├── assets/
│   │   ├── images/
│   │   │   ├── gallery/          Gallery artwork images
│   │   │   ├── poster-*.webp     Event poster images (carousel)
│   │   │   └── og-card.svg       Social sharing card
│   │   └── icons/favicon.svg     Site favicon
│   └── wasm/pkg/                 Built WASM module (generated by CI)
├── wasm/                         Rust source for brushstroke effect
│   ├── Cargo.toml
│   ├── Cargo.lock
│   └── src/lib.rs                Particle system (~200 lines)
├── docs/                         Project documentation
│   ├── cms-guide.md              Content editor guide
│   ├── contributing.md           Developer contributor guide
│   ├── design-system.md          Colour palette, typography, components
│   ├── prd.md                    Product requirements
│   ├── ddd.md                    Domain model
│   └── adr/
│       └── 001-static-gh-pages-architecture.md
├── .github/workflows/deploy.yml  CI/CD pipeline
├── .pages.yml                    CMS schema configuration
└── .gitignore

How It Works

  1. Content lives in JSON files (src/data/*.json), edited via Pages CMS or directly
  2. index.html provides the page structure with placeholder elements
  3. main.js fetches the JSON at page load and renders content into the DOM
  4. style.css implements the full design system with CSS custom properties
  5. The WASM brushstroke effect renders floating painterly particles on the hero canvas
  6. GitHub Actions builds the WASM module and deploys src/ to GitHub Pages on every push

Local Development

# Serve the site locally
cd src && python3 -m http.server 8765
# Open http://localhost:8765

# Build the WASM module (requires Rust + wasm-pack)
cd wasm && wasm-pack build --target web --release --no-typescript --out-dir ../src/wasm/pkg

# The site works without the WASM build — it falls back to the JS implementation

Deployment

Every push to main triggers the GitHub Actions workflow which:

  1. Checks out the repository
  2. Installs the Rust toolchain with wasm32-unknown-unknown target
  3. Builds the WASM brushstroke module via wasm-pack
  4. Deploys the src/ directory to GitHub Pages

Deployment takes ~45 seconds. The site is served at https://eskdaleartshow.com.

Key Technical Decisions

Decision Rationale Details
No framework (vanilla HTML/CSS/JS) Contributors can edit without learning React/Vue/etc. ADR-001
WASM as discrete module Visual flair without maintenance burden on contributors ADR-002
Pages CMS for content Zero infrastructure, GitHub-native, form-based editing ADR-003
JSON data files Runtime rendering keeps HTML simple; CMS edits structured data DDD

Documentation

Document Audience Purpose
CMS Guide Art show committee Step-by-step content editing instructions
Contributing Developers How to set up, develop, and submit changes
Design System Developers & designers Colour palette, typography, components reference
PRD All Product requirements and scope
DDD Developers Domain model and bounded contexts
ADRs Developers Architecture decision records

Contact

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors