Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Prague grows together. A living map of community gardens.
Translation pending
LifestyleJavaScript · TypeScriptGitHub @usnea-communitasOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
Zahrady Prahy — Gardens of Prague: an illustrated interactive atlas of 13 Prague community gardens with sourced visiting information. English and Czech. By Usnea communitas, z. s.
Taken from the repository README
Loading the full README.
Read the full README ↗A living, illustrated map of Prague's community gardens.
Live: https://zahrady-prahy.vercel.app
Zahrady Prahy ("Gardens of Prague") is a storybook-style illustrated map of Prague with thirteen community gardens drawn on it. Click a garden and you get its illustration, a short description, practical visiting information where every fact carries its source and the date it was checked, and a link to the real location on a geographic map. The interface is in English by default and fully available in Czech.
?zahrada=liboza opens a garden directly (?garden=
is accepted as an alias); search, category and filters round-trip through
the URL too.+/-/0, panels return focus to where you came from, and status changes
(sound, full screen, copied link) are announced through aria-live
regions.People who want to explore Prague's community gardens and urban nature on their own, at their own pace. It is a project of Usnea communitas, z. s., a Czech nonprofit association focused on education, community and permaculture.
node:test runner, browser tests with
Playwright and axe, linting with
oxlint, formatting with oxfmtVERCEL=1 npm run build:vercel)No database, no backend, no third-party scripts at runtime. Fonts are downloaded at build time and self-hosted.
Requires Node.js 22.13 or newer.
npm ci # install exactly the locked dependencies
npm run dev # start the development server
npm test # run the unit tests (node --test)
npm run lint # oxlint, including type errors
npm run typecheck # tsc --noEmit
VERCEL=1 npm run build:vercel # production build as deployed on Vercel
npm run test:e2e # browser tests against that build
The browser tests need Chromium once: npx playwright install chromium.
npm run build and npm start produce and serve the Cloudflare Workers
variant of the build (the project scaffold's original target); the live site
uses the Vercel build.
app/
layout.tsx Metadata (English by default) and the locale provider
page.tsx The whole atlas: map, header, filters, details, dialogs
globals.css Base styles and atlas chrome
atlas.css, gallery.css, mobile.css
Structural, theme and phone-layout overrides
components/
i18n/ LocaleProvider (locale state, useT hook) and LanguageSwitcher
map/ MapViewport (pan/zoom, keyboard) and MapMotionLayer (boats, birds)
ui/ shadcn/Base UI primitives
lib/
i18n.ts Interface dictionary (en, cs), locale helpers, date formatting
gardens.ts The garden catalogue, categories, tags, filters and search
garden-visits.ts Visiting facts with sources and check dates, per garden
atlas-navigation.ts URL state: ?q, ?zahrada (alias ?garden), ?typ, ?filtry
webmcp.ts Optional read-only catalogue search for browsers with WebMCP
map/ Viewport maths, projection and river geometry
public/
map/, gardens/, audio/ Illustrations, sprites and the soundscape (see LICENSE-ASSETS.md)
tests/ Unit tests: catalogue, i18n, navigation, viewport
tests/e2e/ Browser tests (Playwright): smoke, layout, accessibility
docs/ Rebuild notes and media provenance (prompts and tools)
design/ Design tokens and theme reference
scripts/ One-off asset build scripts (sprites, map reference)
PRODUCT.md Product principles the project is held to
The catalogue is plain TypeScript, so a correction is a small pull request.
lib/gardens.ts. Every reader-facing text
is written in both languages ({ cs, en }). Names, neighbourhoods and street
addresses are proper nouns and stay in Czech; add an English gloss for the
name where it helps.lib/garden-visits.ts.
Each fact has a text in both languages, a state (published,
not-found or not-checked), one or more sources (URL and label) and
inherits the check date. Keep access, opening hours, entrance and
participation as separate facts; do not present the opening hours of a
wider site as the garden's own.GARDEN_VISIT_CHECKED_AT is the day all sources
were last verified. Update it only after re-checking every source; for a
single correction, mention the date you checked in the pull request.public/gardens/ (then run
node scripts/build-thumbnails.mjs for its list thumbnail), an entry in
artPositions (its editorial place on the drawing; the tests check that
west-bank gardens stay west of the river) and real lat/lon for the
map link.Contributions of verified data are very welcome, including corrections of hours that have changed. Please include the source URL and the date you checked it; the garden data issue template asks for exactly that if you would rather report than edit.
The interface has a small, dependency-free localisation layer:
lib/i18n.ts holds the typed dictionary. English defines
the shape; the Czech object must provide every key (TypeScript and a test
enforce this). Strings that depend on a number are functions, so Czech can
use its three plural forms.components/i18n/LocaleProvider.tsx
keeps the current language. The server always renders English; in the
browser a stored preference (localStorage key zahrady.lang) is applied
after hydration and <html lang> follows it. useT() returns the
dictionary for the current language, useLocale() also returns the locale
and the setter.aria-pressed buttons and
announces the change politely in the language just chosen.Localized fields in
lib/gardens.ts and lib/garden-visits.ts) and resolved with the locale.To add a string, add it to the en object in lib/i18n.ts; the compiler
will tell you where the Czech version is missing. To add a third language,
extend locales, add a dictionary and a translation for every Localized
content field.
What is live today:
Deliberate gaps and what comes next:
There are no usage statistics, testimonials or visitor numbers to report, and none are invented.
Bug reports, data corrections and pull requests are welcome. Please read
CONTRIBUTING.md for the workflow and the principles the
project is held to (truthfulness over completeness, nothing autoplays,
nothing collects data, accessibility is preserved), and the
Code of Conduct. Security concerns go to the address in
SECURITY.md.
Before opening a pull request, run npm test, npm run lint,
npm run typecheck, VERCEL=1 npm run build:vercel and npm run test:e2e.
public/:
CC BY-NC-SA 4.0, copyright (c) 2026 Martin Pazderník.
Their provenance, including the tools and prompts used, is documented in
docs/visual-generation-prompts.md.Usnea communitas, z. s. is a Czech nonprofit association (registered in Prague in 2026) devoted to education, communities, nature and permaculture. Zahrady Prahy is one of its open projects; the source lives in the usnea-communitas organisation on GitHub. Contact: [email protected].