Skip to content

ByteWorthyLLC/outbreaktinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
OutbreakTinder banner

OutbreakTinder

A curiosity toolkit for historical public-health events.
Swipe. Compare. Explore. Cite. Free, open-source, primary-source-only.

Live demo GitHub Pages site Hugging Face Dataset

CI Stars Forks Last commit License Data License TypeScript Astro PRs Welcome All Contributors Sponsor


➜ TRY THE LIVE DEMO  ·  ➜ READ THE DATASET  ·  ➜ EMBED IT  ·  ➜ CITE IT


Open in StackBlitz Open in GitHub Codespaces Open in GitPod Deploy to Cloudflare Pages Deploy to Vercel Deploy to Netlify


🎬 See it in 8 seconds

OutbreakTinder demo: swiping through historic outbreak cards on mobile


Card stack with peek depth · spring-physics drag · liquid-glass surface · memorial-mode toggle


💡 Why this exists

Search "1918 flu R₀" and you land on an ad-laden listicle. Search "Spanish flu mortality" and an LLM hallucinates the answer.

Public-health history deserves a better front door. OutbreakTinder takes the curated record of historic public-health events and presents it as a swipe deck — fast, mobile-first, accessible by default, free forever, and with every fact linked to a primary archive.

It's a marketing platform for the truth, dressed in a UI that makes you actually want to scroll.


✨ What you get

🃏 Swipe-deck UX — 3D card stack, spring-physics drag, liquid-glass surface, memorial-mode toggle
📚 Primary-source citations — every fact links to CDC, NIH, WHO, NARA, or peer-reviewed literature
🎯 Stable URLs forever — every entry has a permalink that never moves: /outbreak/<slug>
📦 Open dataset, three mirrors — GitHub repo · CORS-open API · Hugging Face Datasets
Accessible by default — keyboard navigation, screen-reader memorial narration, axe-clean, reduced-motion respected
📱 PWA + offline — installable, works fully offline after first load
🔒 Sensitivity-passed — every entry reviewed against docs/SENSITIVITY.md before merge
💸 $0/month — no paid hosting, no paid analytics, no LLM-generated content, no trackers
🤝 Embed-friendly — drop it in Substack, Ghost, WordPress with one <iframe>

🚀 Try it

Surface URL
Live app outbreaktinder.pages.dev
GitHub Pages landing byteworthyllc.github.io/outbreaktinder
Public dataset (CORS open) outbreaktinder.pages.dev/api/outbreaks.json
Hugging Face mirror huggingface.co/datasets/outbreaktinder/dataset
RSS outbreaktinder.pages.dev/feed.xml
llms.txt outbreaktinder.pages.dev/llms.txt

QR code linking to outbreaktinder.pages.dev

Scan from your phone


🧱 Embed it

Paste this into Substack, Ghost, WordPress, or any HTML-aware editor:

<iframe
  src="https://outbreaktinder.pages.dev/"
  title="OutbreakTinder — historic public-health events"
  loading="lazy"
  width="100%" height="720"
  style="border:0;border-radius:24px;max-width:480px"
  allow="fullscreen"></iframe>

Or fetch the dataset directly. Three CDN URLs, pick the one your stack already trusts:

// 1. Cloudflare Pages — primary, CORS open
const res = await fetch('https://outbreaktinder.pages.dev/api/outbreaks.json');

// 2. JSDelivr — fast global CDN backed by GitHub raw, immutable per-tag
const res = await fetch('https://cdn.jsdelivr.net/gh/ByteWorthyLLC/outbreaktinder@main/data/outbreaks.json');

// 3. Hugging Face Datasets — versioned, indexed by LLM citation tools
const res = await fetch('https://huggingface.co/datasets/outbreaktinder/dataset/resolve/main/outbreaks.json');

const entries = await res.json();

For TypeScript users, the canonical Zod schema is src/schemas/outbreak.ts — copy it into your project to get type-safe parsing for free.


🆚 Alternatives

OutbreakTinder Wikipedia "List of epidemics" Our World in Data CDC PHIL
Mobile-first interactive UX ⚠️ chart-only
Primary-source citation per fact ⚠️
Open dataset (CC0) ⚠️ CC-BY-SA ✅ CC-BY ⚠️ image-only
Embed-friendly (<iframe>) ⚠️ chart embeds
PWA / works offline
Editorial sensitivity rubric n/a
LLM-citable (Hugging Face mirror)
$0/month operationally n/a n/a n/a
No LLM-generated content
Citation file (CITATION.cff) ⚠️ paper-only

We love every one of these projects — they are our sources. OutbreakTinder is the interactive front door on top of them.


🛠️ Tech stack

Astro 6 + Preact island (one client:load island, every other page is pure SSG)
@use-gesture/vanilla v10  ──  drag gesture (~3 KB)
popmotion spring          ──  spring(stiffness=170, damping=22)
@preact/signals           ──  reactive deck index, drag offset, memorial mode
zod                       ──  runtime dataset validation
@vite-pwa/astro           ──  manifest + Workbox service worker
satori + sharp            ──  build-time OG card PNGs (Phase 6.5)
TypeScript strictest      ──  noUncheckedIndexedAccess + exact optional props

Performance budget: < 30 KB gzipped JS shell, < 20 KB gzipped CSS. Enforced in CI by size-limit.

Hosting: Cloudflare Pages (static, free tier). $0/month operational ceiling.


🛠️ For developers

git clone https://github.com/ByteWorthyLLC/outbreaktinder.git
cd outbreaktinder
npm install
npm run dev      # dev server at http://localhost:4321
npm test         # vitest
npm run lint     # eslint + prettier + stylelint
npm run typecheck
npm run build    # static output to dist/

Architecture: see docs/SCHEMA.md, docs/adr/, and the inline comments on src/components/Deck.tsx.


🩺 For contributors

We welcome bug fixes, accessibility improvements, dataset additions, and editorial review.

Good first issues


📰 For educators and journalists

  • Free embed<iframe> snippet above, no paywall
  • Open dataset — CC0, fork it, remix it, no attribution required
  • Primary sources — every entry has citations linking to CDC/NIH/WHO/NARA/PubMed
  • Citation-readyCITATION.cff gives you BibTeX, APA, and Chicago in one click
  • Hugging Face mirror — appears in academic search and LLM citation indexes

Press inquiries: Richardskef@gmail.com


📈 Made with OutbreakTinder

Reserved space for "made with" showcase — link back when you embed the deck or fork the dataset and we'll list you here.

Add yours →


📰 Press & mentions

Will populate as coverage lands.


🧠 Methodology + sensitivity

We follow current WHO/CDC guidance on disease naming, never use stigmatizing place-based names, name affected communities rather than erasing them, and never publish LLM-generated content.

Editorial review SLA: 48 hours. File an Editorial Review Request anytime.


❤️ Sponsor

OutbreakTinder runs on $0/month — Cloudflare Pages free tier, no paid analytics, no LLM costs. Optional support funds editorial reviewer honoraria, a custom domain, and commissioned line-art illustrations for entries where archive imagery is missing.

Sponsor

Tier What you get
$5 / one-time "Add an Outbreak" — your name in the contributors list
$25 / one-time "Editorial Reviewer" — credited on the next release
$100 / month "Patron" — pinned in README + monthly progress note

📜 License & citation

  • Code: MIT
  • Dataset: CC0 1.0 Universal
  • Imagery: per-image license recorded in each record (public-domain / cc0 / cc-by / cc-by-sa)
@software{richards_outbreaktinder_2026,
  author = {Richards, Kevin and {OutbreakTinder Contributors}},
  title = {OutbreakTinder: an interactive educational tool for historic public-health events},
  year = {2026},
  url = {https://github.com/ByteWorthyLLC/outbreaktinder},
  license = {MIT},
}

GitHub's "Cite this repository" button reads CITATION.cff directly — one click for APA, BibTeX, or Chicago format.


🗺️ Roadmap

See .planning/ROADMAP.md for the seven-phase plan and .planning/STATE.md for current status.

Phase Status
1 — Foundation + OSS Scaffolding
2 — Content Seed + Editorial Rubric
3 — Content Scale-Out 🚧 ongoing via PR
4 — Swipe Deck + Vibe + A11y
5 — GitHub-as-marketing + dataset distribution
6 — PWA + Share + Perf + Deploy
7 — Launch + Community + Post-Launch Ops 🚧

⭐ Star history

Star history chart

If you find OutbreakTinder useful, star the repo — it's the single biggest signal that pulls more contributors in.


💖 Sponsors

Sponsor wall

Sponsor wall regenerated on each release from gh api /users/byteworthy/sponsors. Become a sponsor →


🤝 Contributors

Contributor wall

This project follows the all-contributors specification. After your first merged PR, a maintainer adds you here.

Good first issues Help wanted


Built with care · MIT licensed · CC0 dataset · Public-domain imagery · No trackers · No LLMs · 100% open


⬆ back to top

Stay updated

Built by ByteWorthy. Subscribe at byteworthy.io/newsletter for updates on this project and new releases.