Odel
negirau

negirau

Local
@sincekmoriTypeScriptAGPL-3.0Updated 1w ago

Read-only, anonymous access to the Negirau public API: subjects and their reaction counts.

Negirau

CI License npm negirau npm negirau-mcp PyPI negirau Negirau

日頃の担い手に、ねぎらいを。 Negirau (negirau.com) lets anyone send a one-tap, login-free appreciation to the people behind everyday work — fire stations, event crews, online services, open-source maintainers.

  • No accounts, no user-generated text, no visitor data stored.
  • Counts are shown exactly up to 100 and as "100+" beyond — by design, this service cannot become a ranking.
  • Runs entirely on Cloudflare Workers + D1 within the free tier.

Development

Prerequisites: bun (plus pnpm for packages/client-ts and packages/mcp-server, and uv for packages/client-py).

bun install
cp .dev.vars.example .dev.vars
bun run db:migrate && bun run db:seed
bun run dev

See AGENTS.md for the full check list, architecture invariants, and gotchas.

Repository layout

PathWhatLicense
/ (server + web app)React Router 7 app on Cloudflare WorkersAGPL-3.0-only
packages/client-tsTypeScript API client (npm), hand-written + spec contract testsApache-2.0
packages/client-pyPython API client (PyPI), hand-written + spec contract testsApache-2.0
packages/mcp-serverMCP server (npm), registers tools dynamically from the live specApache-2.0
skills/negirauAgent Skill (SKILL.md), generated from the route manifestApache-2.0

Everything under packages/ is held to the OpenAPI spec: both clients run spec-driven contract tests, mcp-server reads the live spec at startup, and SKILL.md is generated with a CI drift gate.

Public API

Read-only, anonymous, CORS-open, based at https://api.negirau.com/v1. The spec is served at /v1/openapi.json and generated from the zod schemas at build time — it cannot drift from the implementation. There are no bulk dumps and no ranking endpoints, on purpose: the lookup path is server-side search (q= on /v1/subjects) and bounded nearby search.

License

Copyright (C) 2026 Shinsuke Mori.

The server and web app are licensed under AGPL-3.0-only. Client packages under packages/ are licensed under Apache-2.0 (see each package's LICENSE). The "Negirau" name and the heart-pin logo are not covered by these licenses.

Attribution