A weekend hackathon at Prishtina Hackerspace, May 9-10, 2026. We're not going to fix Pristina's trash system. We're going to model it.
Background + framing: quarterly.systems/trash (the opening presentation)
Pristina's waste system is a multi-layer system: city operations, recycling streams, informal scavengers, EU compliance reporting. Every layer thinks it's the main story. None of them are. The whole thing is the story.
Complex systems are easier to play than read. So this weekend we built tools to understand how Pristina's trash actually works β from three angles at once: research the system, give citizens a way to report what's broken in it, and watch it from space.
This project exists alongside other civic-tech work β see civic-tech-precedents.md for the broader landscape.
Five project surfaces, attacking the same problem from different angles:
π¬ dossier/ β the research package
A structured, cross-linked research package on how Pristina's waste system actually operates. AI-assisted, source-cited, openly draft.
how-trash-works-pristina.mdβ the foundational dossier (operational + political layer; the 2024-2025 Pastrimi-Komuna dispute, named actors, citizen quotes)timeline.mdβ master chronology 2010-2027 (~95 dated events across 8 periods)numbers.mdβ canonical numbers reference (115 data points, 4 chart-ready time series)law-diff.mdβ old Law 04/L-060 vs the upcoming new Law on Integrated Waste Management (13 dimensions diffed)system-map.json+system-map.mdβ graph data model (60 nodes, 90 edges; current state + post-new-law 2027 state)sim-cards.mdβ 21 policy levers as a card deck for the simulation (15 INDEP/KAS + 6 DYVΓ)tensions.mdβ cross-source reconciliation (where the dossier and enrichment disagree β and where they don't, despite appearances)acronyms.mdβ glossary (~50 entries; resolves the KAS collision between Kosovo Statistics and Konrad-Adenauer-Stiftung)- 5 enrichment summaries (INDEP/KAS Apr 2026, GIZ MPG-CE, DYVΓ 2023 plastic research, Mazreku/MMPHI new-law deck, DYVΓ survey instrument)
Source materials in enrichment/ β 5 documents (Albanian + English) contributed by Barlli at the start of the hackathon. Field imagery in prishtina-trash-images/ β photographs from Sunny Hill and UΓK Street by Bleron.
π± hackthetrash/ β the citizen reporting platform
End-to-end MVP for citizens reporting illegal dumps with photo + GPS. Production-grade infrastructure, built end-to-end during the weekend by sami and contributors.
| Public map | Photo-first /report | Authority Dashboard |
|---|---|---|
![]() |
![]() |
![]() |
- Web app (Next.js 14 + TypeScript + TailwindCSS + Leaflet): landing,
/report,/map(auto-refreshing public map),/dashboard,/adminpanel - Mobile app (React Native + Expo): native camera + GPS, OpenStreetMap layer in WebView, push notifications, offline submission queue
- Backend (Node.js + Express + PostgreSQL + PostGIS): full REST API, Sentinel-grade auth (bcrypt + JWT + brute-force protection + CORS allowlist + hardening headers)
- Admin panel with 4-action moderation, audit trail, AI image classifier (mock + HuggingFace pluggable)
- i18n: English + Albanian (Shqip), 111 translation keys, full UTF-8 diacritics
- Pristina-only scope: default centre 42.6629, 21.1655; demo seeds use Skanderbeg Square + Sunny Hill + UΓK Street; Komuna e PrishtinΓ«s as authority user
See hackthetrash/CHANGELOG.md for the full v0.1.0 release notes.
π° TrashFromSpace/ β the satellite monitoring pipeline
A free-Sentinel-2 pipeline for monitoring waste accumulations across Kosovo. 10m resolution, 5-day revisit, $0 imagery cost.
README.mdβ full pipeline spec with honest framing on what 10m resolution can/cannot detectPHASES.mdβ 6-phase project roadmap (known sites first, then candidates, then validation against AMMK)known-sites.geojsonβ 14 Kosovo waste sites (7 sanitary landfills + 4 non-sanitary + 3 recycling/processing facilities)docs/PHASE1-PLAN.mdβ step-by-step Phase 1 build plan- Google Earth aerial views: Landfill in LandovicΓ« Β· Mirash
Mirash deep-dive β landfill-timelapse/ (Barlli β depth-first, merged via PR #46)
Mirash 2017 β April 2026, monthly Sentinel-2 composites. The mound visibly grows north + east; the new groundwater pit appears NW from ~2020.
Two iterations shipped, with substantive findings:
- Iter 01 β 14 frames over 2017-2026, 2km AOI, true-colour + NDVI animations
- Iter 02 β 35 frames, 800m muni-only AOI, true-colour + NDVI + BSI animations, full quantification
landfill-timelapse/REPORT.mdβ 213-line analysis with these headline findings:- NDVI inside the 400m ROI fell 77% between 2017 and April 2026 (+0.258 β +0.060)
- Bare-ground area grew 72% (87,400 mΒ² β 150,300 mΒ²) before the ROI saturated
- Step-change identified across 2021 β vegetation index falls off a cliff over a single year, calling for ground-truth on the cause (KLMC contract change? scavenger eviction? state-of-emergency expansion?)
- Water-vs-waste discrimination working via BSI β a new groundwater-filled pit appeared NW of the muni pin from ~2020 onwards
- Tooling note: pure stdlib + numpy + Pillow + matplotlib. No GDAL, no API key. Data via Microsoft Planetary Computer STAC. ~90s per run.
The Vite + React actor-map UI lives on main as two parallel implementations with different design choices. Both share the same underlying actor-and-edge data but diverge in architecture and feature surface.
| Graph view (both variations) | Matrix view (trash-map/ only) |
|---|---|
![]() |
![]() |
The matrix view in trash-map/ makes the underlying RACI data browsable β actors as columns, activities grouped by lifecycle phase (Source separation / Collection / Sorting / Recovery / etc.) as rows, RACI letters in colored cells. Filters at the top toggle between current 2024-2026 and post-new-law 2027+ horizons, plus lenses for Operational / Policy / Enforcement and a "phantom A only" mode that surfaces accountability-without-execution cells. (This view is the answer to the morning feedback that the markdown RACI matrices were hard for humans to interpret β interactive UI was the second solution we shipped, alongside dossier/sim-cards.md.)
| Variation | Path | Architecture | Built by |
|---|---|---|---|
| Matrix-focused | trash-map/ |
Single dossier.json ingested by app; adds matrix view + cell detail panel on top of the graph |
Barlli + Aldikrasniqi (merged via PR #46) |
| Modular-data graph | interactive-map/ |
Seven separate JS modules (acronyms.js, edges.js, levers.js, nodes.js, numbers.js, recommendations.js, tensions.js); graph view only |
Aldikrasniqi (pulled from feat/interactive-map; latest data refactor 2026-05-10) |
Both share:
- Node types: Operational / Municipal / National / Citizens / Informal / External / Physical / Blocked
- Edge types: Money flow / Authority / Political / Oversight / Operational
- Scenarios panel ("KLMC raises landfill fees 30%", "Municipality regains billing authority")
- Motion library for transitions (not plain CSS)
- Same Vite tooling, same component shell
Why both: Aldikrasniqi's modular-data approach kept evolving (most recent commit added 185 lines to nodes.js with disambiguation entries) after Barlli forked off and normalized to dossier.json. The two designs aren't mergeable cleanly without picking one architecture and porting the other's content. Keeping both lets future contributors choose their starting point and pick the design choice that fits.
π
dossier/timeline-app/ β the interactive crisis timeline
A scrollable D3.js timeline of the December 2024 β June 2025 Pastrimi-Komuna regulation crisis. 11 curated events, color-coded by type (regulation / operational / political / court), click any dot for the full account.
Live app: vibes.diy/vibe/bestboy/pristina-waste-crisis
Built with Vibes DIY. Source archived at dossier/timeline-app/App.jsx for forking. Companion to dossier/timeline.md, focused specifically on the regulation-crisis arc.
For researchers and policy folks β start at dossier/how-trash-works-pristina.md β then dossier/timeline.md β then the enrichment summaries.
For app developers β start at hackthetrash/README.md β then hackthetrash/docs/api/API.md and hackthetrash/docs/architecture/ARCHITECTURE.md.
For Sim builders β start at dossier/sim-cards.md β then dossier/system-map.json (the data model the Sim reads directly) β then dossier/law-diff.md (every diff is a player-action card).
For satellite-imagery folks β start at TrashFromSpace/README.md β then read Barlli's landfill-timelapse/REPORT.md (Mirash NDVI -77% over 9 years, with a step-change in 2021).
A handful of open issues track factual questions that need primary-source verification before we can publish numbers as canon:
- #4 β Did the Deposit Refund System (DRS) actually launch January 2025?
- #5 β TrepΓ§a lead battery recycling β current operating status?
- #6 β UjΓ« Miros bottle reuse β actual scale or marketing claim?
- #14 β Strategy 2024-2030 vs 2024-2035 β which dating is current?
- #15 β Status of the new Law on Integrated Waste Management
- #18 β Primary source library accessibility audit (10 sources, 6 confirmed accessible)
Contributions welcome on any of these β see issue thread for what to verify and where.
Saturday, May 9, 2026 β kickoff at Prishtina Hackerspace + remote on Mattermost. Tokens for the weekend were sponsored by Vibes DIY. Initial team breaks: research, app build, data extraction. By end of day: HackTheTrash MVP shipping; Barlli's enrichment material extracted into 5 structured summaries; original dossier landed.
Sunday, May 10, 2026 β integration day. HackTheTrash hardens auth + admin panel + i18n + photo-first /report UX with EXIF auto-population. TrashFromSpace scaffolds; Barlli runs Phase 1 depth-first on Mirash and produces the NDVI -77% finding + 213-line analysis report. Aldikrasniqi continues evolving the modular-data trash-map; Barlli forks to a matrix-focused variant. Both land on main as siblings (interactive-map/ and trash-map/). Dossier package matures to 14 cross-linked files. Verification issues opened. RACI matrices distilled into a Sim card deck for readability.
End of weekend β all feature work merged to main. 48 PRs merged, 6 verification issues open, 3 stale branches deleted. The repo is a clean snapshot of the weekend's output.
| Contributor | What they shipped |
|---|---|
| sami (samikciku) | Built HackTheTrash end-to-end: web + mobile + backend + admin + i18n |
| kmikeym | Dossier package, RACI/Sim cards, TrashFromSpace scaffold, project framing |
| Barlli | Enrichment source documents (5 Albanian + English policy docs), Mirash satellite time-lapse pipeline (landfill-timelapse/ β NDVI -77% finding, 2021 step-change identified, 213-line REPORT.md), matrix-view variant of the trash-map UI |
| Aldikrasniqi | Built interactive-map/ Vite app: data layer (acronyms / edges / levers / nodes / numbers / recommendations / tensions modules), graph rendering, motion library. Key collaborator on trash-map/ matrix variant |
| Bleron Limani (bleroni) | Field photographs of trash containers (Sunny Hill, UΓK Street) |
| Ari Karakushi | Geolocation prompt for the web app |
- The dossier is AI-assisted at multiple layers. Verify any factual claim against the cited primary source before publication.
- Several numbers are flagged as β (in active tension between sources) or ? (pending verification). See
dossier/tensions.md. - Future-dated events (post-May 2026) are planned/announced. Verification status varies β see open issues.
MIT. The hackathon was hosted by FLOSSK β Free Libre Open Source Software Kosova.
Last updated: 2026-05-10 (Sunday afternoon of the hackathon weekend). The README will continue to drift as the work continues; this is a snapshot, not a contract.






