Bus.fyi active

led by Eric Mikkelsen · bus.fyi · github

Transit apps keep getting heavier while the underlying question stays small: when does the bus come? Bus.fyi answers it as a plain website — the schedule for every bus stop and train station in the Chicago CTA system, built from open GTFS transit data. No downloads, no cookies, no tracking; it loads fast on slow connections and works in older browsers.

The site is live at bus.fyi. Source spans the original GTFS app (2016) and the current rebuild.

Byline Extraction active

led by Jonathan Eyler-Werve · github

News aggregators routinely cite articles without crediting the people who wrote them. Byline Extraction is a small pipeline that fixes that: it watches configured pages for outbound article links, visits each linked article once, extracts the author's byline — and their email or social handles when the publication makes them public — and appends the result to a shared spreadsheet.

The scraping is deliberately polite: one request per published citation, limited retries, no user-agent spoofing. The output is a working dataset an aggregator can use to attribute the original reporting.

It runs as a TypeScript CLI feeding a Google Sheet through an authenticated Apps Script webhook, which keeps the collaboration surface as simple as a spreadsheet.

Colors.fyi active

led by Eric Mikkelsen · colors.fyi · github

Picking colors that stay readable is harder than it looks. Colors.fyi is a reference site built on a simple, strict criterion: every color it lists — over 292,000 of them — meets WCAG AA contrast against both black and white. Named colors get their own pages, a comparison tool puts candidates side by side, and generated palettes come with standardized relative luminance you can count on.

The site is live at colors.fyi. Source is split across the color data, the Eleventy site, and the app.

Case Overview Agent pilot

led by Jonathan Eyler-Werve · github

Benefits caseworkers juggle policy lookups, verification checks, document requests, and systems of record — each its own tool. Case Overview Agent is a prototype of a different shape: one assistant that sits across those tools and calls them on the caseworker's behalf, driven from the chat app they already work in with a small set of command verbs (AGENDA, BRIEFING, VERIFY, POLICY, REVIEW, SUBMIT).

The working demo runs a SNAP recertification end to end. The design point is the seams: the agent catches missing or expired data while the applicant is still in the room, then hands the assembled recertification to the caseworker for approval before anything is submitted. A human approves; the agent coordinates.

Everything in the prototype is synthetic — no real applicant data, and the integrations are stubbed so the orchestration is what's on display.

Emotional Metadata archived

led by Jonathan Eyler-Werve · github

Email strips away the context that keeps conversation humane. Emotional Metadata was an attempt to send some of it back: a Chrome extension for Gmail that let an author periodically self-assess — mental, physical, and emotional state — and share that with whitelisted contacts as an email footer, alongside passive context like time zone, travel, or "sent from the Chicago area."

The privacy posture was the point: everything defaulted to no sharing, nothing was stored in the cloud, and the footer was always visible and editable by the sender before sending.

Built in 2015 and no longer maintained; the repo is open for anyone who wants to fork it and take over.

Floodgate archived

led by Jonathan Eyler-Werve · github

Floodgate was a 2016 browser extension that let people set their own rules for what content appears in their browser — muting slurs, harassment, and personal trigger terms across Twitter, Facebook, Reddit, and news sites. Rules could tighten or loosen by context: remove a matching post silently, wrap it in a warning, or grey it out.

It was built with collaborators from the mental health and software engineering fields, for people dealing with background-noise hostility, trauma triggers, and pile-on harassment. The technical insight was that the browser assembles the page, so the user — not the platform — gets the final say over what is displayed.

Floodgate was Civic Workbench's first project, launched alongside the org itself in January 2016.

Nope Nope Nope archived

led by Jonathan Eyler-Werve · github

A small Chrome extension with one job: keeping social networks unreachable during sleep hours. Built in 2016, in the same harm-reduction spirit as Floodgate — the user sets the rule, the browser enforces it, and no platform's cooperation is required.

Pride, Prejudice, Dungeons & Dragons archived

led by Jonathan Eyler-Werve · github

A weekend project mixing text from different sources into generated sentences — most famously Jane Austen with the Monster Manual ("Anxiety on Jane's behalf was another prevailing concern; and Mr. Bennet and Mrs. Bennet more than savage beasts, a ghast is cunning and reason…").

Under the joke was a study exercise: a Ruby re-implementation of a Python Markov generator, built while learning natural language processing, with added experiments in weighting sources. That exploration fed directly into Floodgate's simple natural-language approach to mitigating online harassment, and later into newsfeed-quality data science work that shipped commercially in 2017.

Forked from "Pride, Prejudice, Dungeons, and Dragons" by LindseyB.