Orthodox Pilgrimage is a modern, community-driven web application designed to help the faithful locate and venerate the sacred relics of Orthodox Saints across North America. It provides an interactive, mobile-friendly map to discover holy sites, monasteries, and cathedrals that house these sacred treasures.
- Interactive Map: Powered by OpenLayers, providing a fluid experience for discovering churches.
- Deep Linking: Every church and saint has its own URL, making it easy to share specific locations.
- Mobile First: Optimized for use on the go with a "bottom sheet" interface for church details.
- Fast & Efficient: Built with Go and HTMX for a snappy, "Single Page App" feel without the heavy JavaScript overhead.
- Backend: Go (standard library
net/http) - Database: SQLite with sqlc for type-safe queries.
- Frontend: HTML Templates, HTMX, OpenLayers (Maps), and Vanilla CSS.
- Caching: Strategy optimized for Cloudflare Edge Caching.
- Go 1.22+
makesqlc(for regenerating database code)make install/tools
-
Clone the repository:
git clone https://github.com/edwlarkey/orthodoxpilgrimage.git cd orthodoxpilgrimage -
Build the application:
make build
-
Run the server:
./bin/orthodoxpilgrimage
The server will start on
:8080. The database (orthodox_pilgrimage.db) is automatically created and migrated on startup. Use the--seedflag to populate it fromdata.json.
We welcome contributions of all kinds, from bug fixes and feature requests to data updates.
The "Source of Truth" for the application's data is a single JSON file. You don't need to know how to code to help us keep the map accurate!
File Location: internal/app/data/data.json
To add a new church or saint:
- Locate
internal/app/data/data.json. - Add a new entry to the
saintsarray orchurchesarray. - Ensure
saint_slugin the church'srelicslist matches theslugdefined in thesaintssection. - Submit a Pull Request with your changes.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Styling Note: We prefer Vanilla CSS for all styling. Please avoid adding large CSS frameworks.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
Help us keep this map accurate. If you have corrections or new information, reach out at info@orthodoxpilgrimage.com.
