This repository contains my website at bcm.works, related assets, tooling and documentation.
Note that I use this repository to learn new skills and to demonstrate my knowledge, and that it is over-engineered compared to the technical requirements of a similar real-world project.
- .github - GitHub config, templates and workflows.
- .prototypes - Ideas and half-built prototypes.
- .zed - Customised Zed Editor project configuration.
- app/backend - Backend Deno file server, API and utilities.
- app/backend/infra.railway.ts - Infra as Code, refer to docs/INFRA.md.
- app/frontend - Frontend templates, components and styles.
- app/frontend/styles/theme.css - Frontend design colour scheme and theme setup.
- app/frontend/manifest.json - Frontend Progressive Web App configuration.
- content - Website page content in Markdown files.
- cli - Project helper tool written in Go.
- 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.
- docs/DESIGN.md - Frontend website design and CSS theming rules.
- docs/INFRA.md - Infrastructure and deployment documentation.
- .editorconfig - Sets code style rules for supported editors via EditorConfig.
- Dockerfile - Docker build for the static site and backend API.
- deno.json - Deno imports, tasks and configuration.
- opencode.json - AI config for OpenCode.
- Railway - Infrastructure and deployment.
- GitHub Actions - Test workflow, PR template and Dependabot config.
- PostHog - Site analytics and visitor usage insights.
- Go - Tasks CLI.
- Deno and TypeScript - Backend, Frontend, and Unit Tests.
- Lume - Builds the frontend and content in to static HTML files.
- Vue - Interactive frontend components.
- Fonts by Mass-Driver - I have purchased licenses for use here.
- Font Awesome free icon pack - Used for icons on various pages and layouts.
- Emblem - Used to create the site logo and favicon images.
- Deno (
latest stable) - Consider installing via my Deno setup script. - Go (
1.27) - Consider installing via my Go setup script.
- GitHub CLI - Consider installing via my GitHub setup script.
- AI tools - Consider installing via my Dotfiles AI directory.
A task binary is included to make it easier to run local dev tasks. The source code for this is in cli. To rebuild the task binary, run deno task cli:build.
Run the setup task to setup your local environment:
./task setupTo list all of the available tasks:
./task listBuild the Docker Image:
./task docker-buildStart the Docker Container using the Docker Image:
./task docker-startStop the Docker Container:
./task docker-stopRefer to docs/INFRA.md.