WallpaperMachine
The wallpapers you love. A new home on your Mac.
What’s on for families, week by week: playgroups, baby groups, rhymetime and family events, checked by the people who go.
LifestyleTypeScript · CSSGitHub @John-DennehyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗What's on for families, week by week. Compass is a local guide to playgroups, baby groups, rhymetime, classes and one-off family events, kept up to date by the people who go.
It starts in Spelthorne (Staines, Ashford, Stanwell, Sunbury, Shepperton and Laleham) with the council's playgroups leaflet, and is built to grow into other areas and other kinds of event.
| App | TanStack Start (React 19, server functions, SSR so shared links preview properly) |
| Data | Neon Postgres through Drizzle, or an in-memory store when there's no database |
| Rules | A pure TypeScript core in src/core, shared by the browser and the server |
| Checks | zod schemas for every listing, on both sides |
| Styling | Tailwind 4, colours checked for WCAG AA contrast in light and dark |
| Tests | Vitest for the core, the server rules and real Postgres (PGlite); Playwright on desktop and mobile |
src/core Listing schema, dates, term times, the week, filters, freshness, trust, changes
src/data The launch data (from src/data/sources) and Surrey term dates
src/server Storage, sign-in, the service rules, and the server functions pages call
src/routes Pages: the week, coming up, search, a listing, add, change, moderate
The design notes are in CONTEXT.md and docs/adr.
pnpm install
pnpm dev # http://localhost:3000, with in-memory data
pnpm test # unit and Postgres tests
pnpm test:e2e # browser tests (builds first)
pnpm lint && pnpm typecheck
Locally there's no email, so the sign-in page shows the link instead. To moderate, put your
email in MODERATOR_EMAILS. See .env.example for every setting.
DATABASE_URL). Migrations run on each deploy, and an empty database fills itself with the
launch listings on first use.SESSION_SECRET (32+ random characters), MODERATOR_EMAILS, RESEND_API_KEY,
EMAIL_FROM and SITE_URL.VITE_GOOGLE_MAPS_API_KEY.
Restrict it: in Google Cloud, limit it to HTTP referrers https://your-domain/* and to the
Maps JavaScript API only, and set a budget alert. The key is visible in the browser, so the
restriction is what keeps it safe. Without a key the site works; the map just isn't shown.The launch listings come from Spelthorne's playgroups leaflet (September 2025), kept unchanged in src/data/sources. Term dates come from Surrey County Council.