This repository contains the public website at bcm.works, along with related assets and documentation.
- .claude - Project specific config for Claude Code.
- .zed - Customised Zed Editor project configuration.
- config - Config and env files.
- content - Website page content in Markdown files.
- design - Page layout and icon design files.
- docs - Documentation and contextual information.
- docs/adrs - Architecture decision records in Markdown files.
- docs/AI-USE.md - Policy for use of AI Code Generation tools.
- infra - Infrastructure as Code for Railway.
- prototypes - Ideas and half-built prototypes.
- src/backend - Backend Deno file server and API.
- src/frontend - Frontend Lume templates and styles.
- src/frontend/styles/theme.css - Frontend design colour scheme and theme setup.
- src/frontend/manifest.json - Progressive Web App configuration.
- src/tasks - Helper scripts.
- src/Site.Dockerfile - Docker container image used for deployments.
- .editorconfig - Sets basic code style rules via EditorConfig
- deno.jsonc - Deno imports, tasks and configuration.
- Railway - Infrastructure host, managed as code in infra.
- PostHog - Site analytics and visitor usage insights.
- Docker - Local and deployed containers.
- Deno - TypeScript, Deno Tests, Deno Tasks.
- Lume - Static site generator for Deno.
- Fonts by Mass-Driver - I have purchased licenses for use here.
- Font Awesome free icon pack - Used for icons on various pages and layouts.
The following tools will need to be manually installed:
Run the setup tool to setup your local environment:
deno task setupList all of the available Deno tasks:
deno taskSetup GitHub Actions and Railway by completing the Initial Setup section from infra/README.md.
Following this, new releases can be manually triggered from GitHub Actions via release.yml.
This includes building and pushing a new Docker Image to GitHub Packages, and then deploying the Railway service.