About this app

This site generates a random “nope” reason and a matching face. Here's what powers it behind the scenes.

Open source

The full source code is available on GitHub.

View repository

Internal API: /api/no

The app calls /api/no to fetch a fresh reason. The route disables caching (no-store) and responds with JSON like { reason: string }.

If the upstream service fails, the route returns a clear error status (typically 502 for upstream issues, 500 for fetch failures).

Upstream reasons: No as a Service

Reasons come from the “No as a Service” endpoint https://naas.isalman.dev/no which returns application/json containing a reason.

The site uses a server-side proxy so the browser doesn't need to call the upstream API directly.

Avatar generator: DiceBear (notionists-neutral)

A random seed is generated for each pull, and the avatar SVG is fetched from DiceBear. The avatar is preloaded before revealing the reason, so the “face + text” appears together.

URL pattern: api.dicebear.com/9.x/notionists-neutral/svg?seed=...

Designed and developed by Thilina R.