Frederick Beer Trail is a small, independent guide to breweries currently operating in Frederick County, Maryland. Visitors can mark breweries as visited, follow their progress, browse a schematic trail, and use a geographic map. It is a Mudhop project, not an official Frederick County tourism program.
The site is static and client-side only: semantic HTML, CSS, small JavaScript modules, and one JSON data file. There is no backend, database, account system, authentication, analytics, or scraping. Leaflet powers the geographic map; map tiles and geographic data come from OpenStreetMap.
Visited state is stored in the browser under frederick-beer-trail:v1 with this shape:
{
"visited": {
"attaboy": true
}
}Invalid storage is ignored, removed brewery IDs are discarded, and the checklist still works for the current session if local storage is unavailable.
data/breweries.json is the only brewery data source. Its records generate
the total, progress, filters, cards, schematic stops, and geographic markers.
To maintain the directory:
- Add, remove, or edit a brewery in
data/breweries.json. - Keep
idstable after publication; it is the identity used for saved progress. - Verify that the business is operating as a brewery at a physical Frederick County location.
- Confirm the address, official HTTPS website, directions URL, and coordinates.
- Give the stop a legible
trailposition in the SVG's1000 × 560coordinate space. - Update the top-level
lastVerifieddate after reviewing the full list. - Run
npm run checkand preview the result at phone and desktop widths.
Do not add hours, tap lists, ratings, events, or other frequently changing details. Short visit notes are appropriate only when they prevent confusion, such as an event-oriented operation.
The project has no package dependencies. Node.js 24 is used for validation and the production copy; any local static server can serve the source directly.
npm run check
npm run startOpen http://localhost:8000/. Opening index.html directly will not work because browsers block
the JSON request from file: URLs.
Create the exact production artifact with:
npm run buildThe generated site is written to ignored dist/.
.github/workflows/pages.yml validates, builds, and deploys dist/ on pushes to main. In the
repository settings, set Pages → Build and deployment → Source to GitHub Actions. The current
canonical URL is https://derailable.github.io/frederick-draft/; update the canonical and Open Graph
URLs in index.html if a custom domain is configured later. No CNAME is currently configured.
The map uses Leaflet and OpenStreetMap. OpenStreetMap data is available under the ODbL; Leaflet is BSD-2-Clause licensed. Project code is available under the repository's MIT License.