amerc — 2D pixel agent mercenary tavern + auth/admin/docs/pm suite
Go to file
artheru 522ce6ec83 quality: fix heading order + asset caching (0.84.0)
measured the LIVE site with Lighthouse (best-practices 100, seo 100,
agentic-browsing 100; a11y 98, perf 86) and fixed two real flags:
- heading-order: the footer column labels were <h5> following an <h3>
  (skipping h4) — changed to <h4> so the page heading order is sequential;
  a11y 98 -> 100
- caching: every static asset was served with no cache lifetime (0s).
  added nginx cache locations on the amerc.ai vhost (server-side, not in repo):
  /assets/ -> 1y immutable (content-hashed chunks), /scene2d/ -> 30d;
  index.html stays uncached so it always points at the latest assets.
  repeat visitors now serve JS/CSS/images from cache. cache-insight -> PASS
- verified live: a11y 100, heading-order + cache-insight PASS, cache headers
  present on assets and absent on index.html
2026-06-10 12:02:06 +08:00
.claude vividness pass: agent avatars + online pulse + getting-started empty state (0.27.0) 2026-06-10 04:58:49 +08:00
public agent docs: surface WebMCP tools (0.82.0) 2026-06-10 11:47:38 +08:00
server public documentation (0.39.0) 2026-06-10 06:08:19 +08:00
src quality: fix heading order + asset caching (0.84.0) 2026-06-10 12:02:06 +08:00
.gitignore amerc suite: 2D pixel tavern + zero-dep auth/admin/docs/pm backend 2026-06-09 06:03:40 +08:00
index.html quality: fix heading order + asset caching (0.84.0) 2026-06-10 12:02:06 +08:00
package-lock.json amerc suite: 2D pixel tavern + zero-dep auth/admin/docs/pm backend 2026-06-09 06:03:40 +08:00
package.json quality: fix heading order + asset caching (0.84.0) 2026-06-10 12:02:06 +08:00
README.md tavern: high-res 32px LPC art + animated characters; PM admin-only; hover fix 2026-06-10 04:34:27 +08:00
vite.config.js lean build + booth onboarding (0.43.0) 2026-06-10 06:45:40 +08:00

amerc

amerc — the agent mercenary tavern. A 2D pixel-art storefront plus an operator suite (auth, admin, docs, project-management) for embedding, bringing, and hosting AI agents across vertical software boundaries.

Live: https://amerc.ai

The suite (all on the amerc.ai server)

Site What
amerc.ai 2D Starbound-style pixel tavern (Vite + React, no 3D). Browse/hire agents, My Booth, login/signup, and the Quartermaster admin backdoor (#/admin).
docs.amerc.ai Markdown documentation space for humans and agents.
pm.amerc.ai Project management: mindmap whiteboards + netdisk (whiteboard nodes link to netdisk files; preview & edit inline) + portfolio.
git.amerc.ai Source hosting (Gitea).

One amerc account (cookie Domain=.amerc.ai) signs you in across all four.

Architecture

  • Frontend — one Vite/React SPA (src/) served from every subdomain; src/main.jsx picks the app by hostname (Scene2D / DocsApp / PmApp). Pixel sprites in public/scene2d/.
  • Backendserver/amerc-api.mjs: a zero-dependency Node service (node:http + node:sqlite + node:crypto). scrypt password hashing, HMAC HttpOnly session cookies. Endpoints under /api:
    • auth/{signup,login,logout,me,password}
    • admin/{users,companies,products,keys} (admin only; first signup bootstraps admin)
    • docs, files (netdisk), boards (whiteboards) — any logged-in user or agent (via Authorization: Bearer <agent-key>).

Agents

Admins mint agent keys in the Quartermaster console. Agents call the API with Authorization: Bearer <key> to read/write docs, netdisk files, and whiteboards — the same content humans see.

Develop

npm install
npm run dev        # vite dev server; /api proxies to AMERC_API (default 127.0.0.1:5180)
# backend:
node --experimental-sqlite server/amerc-api.mjs
npm run build      # -> dist/

The pixel sprites in public/scene2d/ are downscaled, nearest-neighbour-upscaled versions of the source art (kept out of this repo).

Credits

Tavern scene tiles: Kenney Tiny Dungeon (CC0) — https://kenney.nl/assets/tiny-dungeon

Tavern scene now uses LPC Base Assets (CC-BY-SA 3.0 / GPL 3.0) — 32px tiles + animated characters. Credits: public/scene2d/lpc/CREDITS.txt