Willkommen! We're happy about every contribution, no matter how small.
git clone https://github.com/bmmmm/bitcircus101.git
cd bitcircus101That's it for most changes. This is a static site — just open the HTML files in your browser.
Use a feature branch for every change — do not push commits directly to main.
- Update
mainlocally, then branch:git checkout main git pull git checkout -b feat/short-description
- Commit on your branch and open a pull request into
main(push the branch, then create the PR on GitHub.) - After the PR is merged, delete the feature branch (GitHub offers “Delete branch” on the merged PR, or prune locally with
git fetch --prune).
Short-lived feat/… branches keep history clear; main stays the integration line that CI deploys from.
If you want to run the quick checks before submitting:
npm install
npm run test:quick # ~100ms, no browser neededThat runs unit tests and matches what PR CI enforces (plus a layout sync check — see below).
Header and footer live in includes/site-header.html and includes/site-footer.html. A small Node script copies them into the layout HTML files — no bundler or framework.
After you change those files:
npm run build:layoutCommit includes/ and the updated *.html files together. PR checks fail if partials and pages drift apart. See CLAUDE.md for details.
If you only edit a page body, you do not need build:layout.
- Install Playwright or any browsers
- Run the full test suite (
npm test) - Set up Node.js (unless you want to run unit tests)
CI handles the heavy testing automatically.
- CI runs unit tests and checks layout HTML — fast, automatic, done in seconds (no Playwright)
- A maintainer reviews your PR
- On merge to main — the full E2E test suite runs automatically (Playwright, 2 browsers)
- If all tests pass — your changes go live at bitcircus101.de
Nothing reaches production without passing all tests. But that's CI's job, not yours.
- Fix a typo or improve text
- Improve accessibility (aria labels, alt texts)
- Add or update content
- CSS tweaks and improvements
- Add a calendar source to
calendars.json
- Keep it simple — this is a static site, no frameworks
- German UI text, English code/comments
- No Google Fonts (privacy)
- No inline styles — use
style.css - Terminal aesthetic: dark bg, green accents, monospace
Open an issue or reach out at the space. Freitags ab 20:00 sind wir da.