Find Catholic Mass times, confession schedules, and adoration times for churches in Windsor-Essex County, Ontario.
🌐 Live Site: www.wedeanery.ca
- Interactive Map: View all churches on an interactive Leaflet map with detailed popups
- Filterable Tables: Browse mass times, daily masses, confession, and adoration schedules
- Smart Filtering: Filter by day, time range, and event type
- Responsive Design: Works seamlessly on desktop and mobile devices
- Accessibility: ARIA labels and keyboard navigation support
- Astro: Static site generator with partial hydration
- React: Component-based UI library
- TypeScript: Type-safe JavaScript
- Tailwind CSS: Utility-first CSS framework
- Leaflet + react-leaflet: Interactive maps
- Node.js 18+
- npm or pnpm
-
Clone the repository
git clone https://github.com/jere-mie/massfinder-we.git cd massfinder-we -
Install dependencies
npm install
-
Start the dev server
npm run dev
-
Open in browser
http://localhost:4321
npm run build
npm run preview # Preview the build locallyEdit public/churches.json and ensure the correct structure is followed.
Important conventions:
- All arrays are required (use empty
[]if none) - Times use 24-hour
HHMMformat (e.g.,"1830"for 6:30 PM) - Coordinates:
[latitude, longitude]order - Phone: Include
+1country code - Optional
notefield available for all time entries
Common utilities in src/utils/:
formatTime(time)- Convert"1830"→"6:30 PM"formatPhoneNumber(phone)- Format to"(519) 736-5418"formatUrl(url)- Strip protocol and trailing slashDAYS_OF_WEEK- Ordered array of day namesTIME_OPTIONS- Time select options
- Use Tailwind utility classes
- Custom styles in
src/styles/global.css - Responsive breakpoints:
sm:,md:,lg:,xl:
Church information should be updated regularly:
- Mass times: Verify at least annually or when notified of changes
- Websites/phones: Check for updates when adding new churches
- Coordinates: Ensure markers appear at correct building locations
See LICENSE file for details.
- Open an issue on GitHub
- Contact: Jeremie Bornais
- Church data sourced from parish websites and public listings
- Map tiles provided by OpenStreetMap
- Built with Astro, React, Tailwind CSS, and Leaflet