Kāeo community resources map — MapLibre GL fork of regencommunity.shakespeare.wtf with self-hosted backend
  • TypeScript 97.6%
  • CSS 1.3%
  • Dockerfile 0.8%
  • HTML 0.3%
Find a file
Jeff Emmett 5c83190bc1 Fix blank map canvas and duplicate attribution badge
- MapLibre 5 auto-adds an AttributionControl by default. The explicit
  one we added produced a second 'OpenFreeMap © OpenMapTiles' badge.
  Pass attributionControl options to the Map constructor instead.
- Force map.resize() once the style loads, and observe the container
  with ResizeObserver. Fixes the empty-canvas case where the WebGL
  context initialises before layout settles (Radix Tabs / flex parents
  can leave the container 0×0 on first paint).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 23:02:08 -04:00
.gitea/workflows Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
public Add favicon — sprouting seedling in regen gradient 2026-04-30 22:35:11 -04:00
server Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
src Fix blank map canvas and duplicate attribution badge 2026-04-30 23:02:08 -04:00
.dockerignore Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
.gitignore Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
docker-compose.yml Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
Dockerfile Copy public/ into build stage so Vite ships favicon 2026-04-30 22:36:52 -04:00
index.html Add favicon — sprouting seedling in regen gradient 2026-04-30 22:35:11 -04:00
LICENSE-FORK.md Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
package-lock.json Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
package.json Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
postcss.config.js Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
README.md Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
tailwind.config.ts Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
tsconfig.app.json Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
tsconfig.json Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
tsconfig.server.json Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00
vite.config.ts Initial regencommunity staging fork 2026-04-30 22:10:07 -04:00

regencommunity-staging

Staging fork of regencommunity.shakespeare.wtf by regencomm (Regenerate Community Kāeo Whangaroa, Aotearoa).

Recovered from the upstream production sourcemap, then upgraded with:

  • Real OpenStreetMap (MapLibre GL + OpenFreeMap vector tiles by default)
  • Native clustering at low zoom
  • "Near me" geolocation
  • Persistent backend (Hono + better-sqlite3) replacing the unfinished Workers stub
  • Docker + Traefik deployment on the standard Netcup stack

The original SVG Graph view is preserved as an alternate visualisation alongside the new Map view.

Local dev

npm install --legacy-peer-deps
npm run dev:server   # backend on :3000
npm run dev          # vite on :5173, proxies /api → :3000

Production build

npm run build        # vite build → dist/, tsc → dist-server/
npm start            # serves dist/ + API on :3000

Configuration

Vite env vars (build-time, prefix VITE_):

Var Default Purpose
VITE_API_BASE_URL /api Override if API is on a different origin.
VITE_MAP_STYLE_URL https://tiles.openfreemap.org/styles/liberty MapLibre style URL.
VITE_MAPTILER_KEY (unset) If set, overrides style with MapTiler streets-v2.

Server env vars:

Var Default Purpose
PORT 3000 HTTP listen port.
DB_PATH ./data/regen.db SQLite file location.
STATIC_ROOT ./dist Where the Vite build is served.

Attribution

  • Original code by regencomm on shakespeare.diy. No upstream LICENSE was published.
  • Upstream attribution preserved in the footer ("Vibed with Shakespeare").
  • This fork is for staging / experimentation; please contact the original author before publishing as a competing instance.