SnarkAPI
A tiny web service with exactly one job: hand you a freshly-crafted, professionally-unhelpful remark whenever you ask. No auth, no onboarding call, no feelings taken into account.
Rude but well-engineered
It is a joke service that takes its craft seriously. A proper service layer on the inside, gentle character assassination on the outside.
One honest file
A single GET returns every slight at once, as JSON. No keys, no quotas, no "let's hop on a quick call to discuss your needs".
A deep well of slights
The live site draws at random from several hundred hand-written lines of condescension, so it stays fresh long after your self-esteem has not.
Rain is included
The live site types its verdict at you, slowly, over a moody blue downpour. The drama is not a bug. It is the whole point.
Built by FastAPI, served as files
The pages are rendered by a FastAPI app at build time and published as static files, so there is no server left to fall over. Even the sarcasm respects the dependency direction.
Tested to the last branch
Coverage is gated at 100% with branch coverage on; the gate lives in the config rather than a command line, so it cannot be forgotten. The insults are frivolous; the build is not.
It degrades, it does not die
If the quote list fails to load, the page keeps typing the line it already has rather than going blank. A joke site showing an error is worse than one repeating itself.
One request away from being told off
Fetch the list once and pick your own line. Anything that speaks HTTP and JSON can do it.
# ask nicely; get told the truth $ curl -s https://www.snarkapi.com/quotes.json | jq -r '.[]' | shuf -n 1 You’ve achieved the rare feat of being wrong in several dimensions.
File: GET /quotes.json on
https://www.snarkapi.com, a JSON list of strings. Or just
open the live site and let it type
at you. The old /api/v1/sarcasm/ endpoint is retired: the
site is now static files, which cannot pick a line per request.