Documenting how dependency changes — API shutdowns, plugin end-of-lifes, browser removals — break digital artworks.
Live site: extinction.zkm.de
npm install
npm run dev # http://localhost:4321
npm run build # Static output in dist/
npm run preview # Preview production build- Framework: Astro (static site generation)
- Visualization: D3.js (client-side SVG timeline)
- Content: Markdown files with validated frontmatter (Astro Content Collections)
- Hosting: Docker (nginx) behind Traefik, deployed via GitHub Actions to Harbor
src/
content/
events/ # Extinction event entries (Markdown + frontmatter)
artworks/ # Artwork entries (Markdown + frontmatter)
components/
timeline/ # D3 timeline visualization
ui/ # Shared UI components (badges, cards, header, footer)
layouts/ # Base HTML layout
lib/ # Utilities (date parsing)
pages/ # Astro page routes
styles/ # Global CSS + timeline styles
Events document a specific dependency change (e.g., "Flash Player blocked"). Each event references zero or more artworks that were affected, with per-artwork severity and status.
Artworks are canonical records of digital works (title, artist, year, URL, medium).
On push to main, GitHub Actions builds a Docker image and pushes it to harbor.zkm.de/mutech/extinction-timeline. Portainer auto-deploys the new image. Traefik handles SSL.
Required secrets: HARBOR_USERNAME, HARBOR_PASSWORD.
See CONTRIBUTING.md for how to add events and artworks.
Content: CC BY 4.0. Code: MIT.
Maintained by Marc Schütze at ZKM | Center for Art and Media Karlsruhe.