- JavaScript 97.7%
- CSS 2%
- SCSS 0.1%
30DayMapChallenge
About
This repository contains my submissions for the #30DayMapChallenge, a community-driven data visualization challenge that runs every November. Participants create one map per day based on a set of prompts organized into different categories.
Website
The maps are published as a Quarto website using Codeberg Pages. You can view the website here.
Structure
2025/: Individual Quarto documents for each day's mapdata/: Datasets used for visualisations (not committed)images/: Static images and resources.forgejo/workflows/: Forgejo Actions workflow for automatic deployment to Codeberg Pages
Local Development (Fedora 42 distrobox)
The recommended local setup uses a distrobox container based on Fedora 42.
One-time container setup
# Create the container
distrobox-assemble distrobox.ini
# Enter it and run the setup script
# (installs rig, R, rv, uv, Quarto, fish, pre-commit hook + syncs packages)
distrobox enter 30daymapchallenge -- bash setup-dev.sh
Daily workflow
# Enter the container (opens fish shell)
distrobox enter 30daymapchallenge
# Preview the site
quarto preview
What gets installed in the container
| Tool | Purpose |
|---|---|
| rig | Installs R 4.6.0 |
| rv | R package management (rproject.toml) |
| uv | Python package management (pyproject.toml) |
| Quarto | Site rendering (pinned to 1.9.38) |
| fish | Default shell in the container |
Without distrobox
If you already have R, Python/uv, and Quarto installed locally, you don't need the container:
rv sync
uv sync
quarto preview
Deployment
The site is automatically built and deployed to Codeberg Pages on every push to main via the Forgejo Actions workflow in .forgejo/workflows/deploy.yml. Since posts are rendered locally with freeze: true and the _freeze/ cache is committed, CI only needs Quarto — no R or Python setup required.
License
The code in this repository is available under the MIT License.