A Schengen 90/180 day accountant that names the exact day you went over — and admits when it doesn't know.
Ninety is a day accountant for the Schengen 90-in-any-180 rule, vibe-coded by kiter in about a day with OpenCode (documented in a dev.to post on 2026-10-04). Every Schengen calculator tells you *how many* days you've used. Ninety tells you *which day* you crossed the line, *why* that day counted, and *what to change*: "73 of 90 days used — on 26 October the window reaches 91 days. It is Barcelona — booked that puts you over. Leave on the 26th, not the 27th."
Three things make it different from a calculator. First, it names the day, not just the number — an attribution algorithm finds the rolling window and maps the breach back to the trips that caused it. Second, it classifies instead of adding: three weeks in the Canary Islands is 0 days, a month in Dublin is 0, a week in Reykjavík is 0 (Iceland is EEA, not Schengen), an airside transit is 0 — and the same trip into Sofia counts overland but not by air in February 2025, because Bulgaria's land borders opened months before its air borders did. Third, and most important, it refuses visibly: hand it a passport it doesn't know and you get "Ninety declined to answer" instead of a confident wrong number. "A confident wrong number here costs someone money."
The technical thesis is worth stealing: the verdict engine is pure TypeScript with no model and no network calls — the agent may retrieve, classify and explain, but it may never produce a number. The build log is unusually honest: the author's own evaluation caught six of his hand-written expectations being wrong (the engine was right every time), plus a real corpus bug where Iceland was modeled as a full Schengen member. 56 tests, all committed. For anyone who's ever squinted at a Schengen calculator before a Europe trip, this is the one that respects you enough to say "I don't know."
Note: This project is curated by the VibeFix editors from public sources. All rights belong to the original creator.