Trail Blogger

Trail Blogger

Location Selection

Trail List

Statistics

Total Trails: 0
Hiked: 0
Total Miles: 0

Trail Details

Difficulty Length Status

Select a trail to view its details and photos.

Photos

Trail Details

×
Maximum 10 images • 10MB per image • Images stored on server Images are automatically compressed and optimized

Import GeoJSON Trail

×

Welcome to Trail Blogger!

×

About This Project

Hello! My name is Nathaniel. Trail Blogger is a personal hiking journal I built to document my trail adventures and preserve memories from the places I explore. I wanted a simple, ad-free platform where I could store GPS tracks, photos, and hiking notes without relying on third-party services or dealing with subscription fees.

Washing my dog after a hike

I built this because I kept forgetting which trails I'd done and which ones I wanted to try. I'd come back from a hike and think "this was great, I should remember this," but a few months later I couldn't recall the details. Writing down where, when, and what I thought about helps me actually remember these places.

Having GPS tracks means I can see exactly where I went, and the photos help me remember what the trail actually looked like—not just what I think I remember.

The statistics and maps give me a sense of what I've accomplished, which is nice motivation to get out there and explore more.

This site serves as both a personal archive and a technical demonstration of how to build a lightweight trail tracking system using open-source tools. All trail data is stored in GeoJSON format, images are managed locally, and the entire system deploys to GitHub Pages for free hosting.

If you're interested in building a similar system for your own hiking adventures, the complete source code and documentation are available below.

How It Works

This site is read-only. You're viewing a static GitHub Pages site that displays my trail data. All trail information, GPS coordinates, descriptions, and images are stored in a GeoJSON file and deployed from my local development environment.

  • Viewing: Browse trails, see photos, read descriptions, and explore the interactive map
  • Editing: All changes are made on a local Flask server, then deployed here
  • Data Storage: Trail data is stored in data/trails.geojson with images in data/trail_images/

Creating Your Own Trail Journal

Want to track your own hiking adventures? Here's how to set up your own instance:

1. Get the Code

git clone https://github.com/RealCaddish/trailBlogger.git
cd trailBlogger

2. Install Dependencies

pip install -r requirements.txt

3. Start the Flask Server (for editing)

python server.py

Then open http://localhost:5000 in your browser.

4. Add Your Trails

  • Click "Add Trail" to create new trails
  • Upload photos (automatically compressed)
  • Add descriptions, dates, and trail details
  • Import GPS tracks from your hiking app
  • All changes save automatically to data/trails.geojson

5. Deploy to GitHub Pages

python deploy.py

This validates your data, commits changes, and pushes to GitHub. Your site will update in ~2 minutes!

Two-Environment System

Localhost:5000 (Editing)

  • Add, edit, and delete trails
  • Upload and manage images
  • Change trail status (hiked/unhiked)
  • Create backups
  • Changes saved to local files

GitHub Pages (Public Display)

  • Read-only static site
  • Fast, reliable hosting
  • Share with anyone
  • No server needed
  • Updates via git push

Key Features

  • Interactive Maps: Leaflet.js with trail GPS overlays
  • Image Management: Automatic compression and optimization
  • GeoJSON Storage: Portable, standard format for trail data
  • Backup System: Create and restore complete backups with complete_backup.py
  • Deployment Tool: One-command deployment with validation
  • Mobile-Friendly: Responsive design for viewing on any device

Technologies Used

  • Frontend: HTML5, CSS3, JavaScript (vanilla)
  • Maps: Leaflet.js with OpenStreetMap tiles
  • Backend: Flask (Python) for local editing
  • Storage: GeoJSON files + file system for images
  • Hosting: GitHub Pages (free static hosting)
  • Deployment: Custom Python scripts with git automation

Repository & Documentation

Full source code, setup guides, and workflow documentation available at:

github.com/RealCaddish/trailBlogger

Helpful Docs:

  • EDITING_WORKFLOW.md - Complete editing and deployment guide
  • BACKUP_RESTORE_GUIDE.md - Backup and restore instructions
  • QUICK_DEPLOY.md - Quick reference for deployments

Contact | Portfolio | GitHub

Contact

×
Nathaniel Deaton

Get In Touch

I'm always open to discussing new projects, creative ideas, or opportunities to be part of your vision.

Professional Inquiries

nathanielmakesmaps@gmail.com

Portfolio | GitHub