The official website for Ramper, a Spanish slowcore / post-rock project.
Built entirely independently by the band.
- Framework: Astro (Static mode for maximum performance)
- Design: Figma (For the UI design)
- CMS: Keystatic (Local mode/Git-backed CMS)
- Styling: Tailwind CSS v4 (Utility-first CSS via Vite plugin)
- Infrastructure: Docker & Docker Compose
- Quality Assurance: Playwright (E2E Testing) & Lighthouse (Performance & Accessibility Audits)
- Static Analysis: SonarQube Cloud (Code quality, bugs, duplication)
- Security: Trivy vulnerability scanning on final Docker images.
- Versioning: Automated SemVer with GitHub Releases and synchronized
package.json. - Dependency Management: Renovate (Automated dependency updates)
- CI/CD: GitHub Actions (Containerized build, test, and publish to GHCR)
The entire local development environment is containerized. You do not need Node.js mounted locally, just Docker and make.
- Clone the repository.
- Copy the
.env.examplefile to create your local.env.versions(this defines node and caddy image versions).cp .env.example .env.versions
- Start the development environment:
make dev-up
Once running:
- The website is mapped to
http://localhost:4321 - The Keystatic Admin panel is at
http://localhost:4321/keystatic - The local filesystem is bind-mounted, so edits in VS Code instantly trigger a browser hot-reload.
The project includes an automated test suite matching the GitHub Actions pipeline.
- E2E Tests: Run the Playwright suite inside a dedicated container:
make test - Lighthouse Audit: Run a strict Lighthouse test against a production-like build (thresholds at 85-95%):
make audit
make dev-logs— Tail the logs from the running Astro containermake dev-shell— Open an interactive terminal (sh) inside the containermake dev-down— Stop the development containers gracefullymake dev-reset-deps— Stop containers, remove the cachednode_modulesvolume, and rebuild
src/— Astro source code (pages, components, layouts)src/content/— Where Keystatic saves your CMS data locally in.mdoc(Markdoc) format.
docker/— Dockerfiles and Compose configurations fordevandprodstagestests/— Playwright E2E smoke testsscripts/— Node.js utility scripts (like the Lighthouse auditor).github/workflows/— CI/CD Pipeline definition.github/actions/— Shared composite actions for DRY CI execution
The project uses GitHub Actions for a robust Smart Pipeline:
- Validates the build.
- Runs four parallel validation jobs:
- Playwright E2E tests (Chromium in CI for speed; run all three browsers—Chromium, Firefox, WebKit—locally via
make test) - Lighthouse audits with strict performance/accessibility thresholds
- SonarQube Cloud static analysis for bugs, smells and duplication
- Trivy security scan for CVEs in the production Docker image
- Playwright E2E tests (Chromium in CI for speed; run all three browsers—Chromium, Firefox, WebKit—locally via
- Automatically pushes the signed Docker image to GHCR upon success.
- Renovate bot monitors dependencies (npm, Docker, GitHub Actions) and opens grouped PRs.
The project is container-ready, thoroughly tested, and pushes its artifacts to GHCR. Real-world continuous deployment to a VPS will be added in a future phase.
To run the full pipeline, including security scans and automated releases, the following GitHub Secrets are required:
SONAR_TOKEN: Authentication token for SonarQube Cloud.GH_PAT: Personal Access Token withContents: Read & Writepermissions (used to bypass branch protection for automated versioning).