This repository contains the public website at bcm.works, along with related assets and documentation.
- .claude - Project specific config for Claude Code.
- .mise - Project specific config and commands using Mise.
- .zed - Customised Zed Editor project configuration.
- 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 - Frontend Lume templates and backend Deno static file server.
- src/styles/theme.css - Frontend design colour scheme and theme setup.
- src/pwa-manifest.json - Progressive Web App configuration.
- .aspens.json - Project config for Aspens
- .editorconfig - Sets basic code style rules via EditorConfig
- deno.jsonc - Deno imports, tasks and configuration.
- Dockerfile - Docker container image used for deployments.
- 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 systems in this repository assume that your local machine:
- Has an up-to-date version of Mise installed and ready
- Has an up-to-date version of Homebrew installed and ready
- Has an up-to-date version of Docker CLI installed and ready
Note that my dotfiles repository contains install scripts for most of the above items.
Run the Mise setup task to setup your local environment:
mise run setupThis repository uses Mise to apply config and run commands from the .mise directory.
Some command aliases are set in .mise/config.toml that are available in terminal sessions in this directory after running the setup-tools command above.
To list all of the available Mise tasks, run the alias command:
tasksSetup 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, which will then automatically trigger a deployment via Railway.