Heritage Trail Guide

The Heritage Trail Guide · Chapter 5

Publishing your trail

Your trail is built — now you need to put it on the internet so people can use it. This chapter walks you through the whole process, step by step, using a free service called GitHub Pages. No technical experience required.

5
of 7 chapters

Publishing a trail means putting your files on the internet so that anyone with a smartphone and a web address can open it. The method we recommend — GitHub Pages — is completely free, handles any amount of visitors, and gives your trail a permanent web address that won't disappear. This chapter walks through every step. Allow about 30 minutes the first time.

Before you start

Read this chapter through once before doing anything — it's quicker to understand the whole process first than to follow steps blindly and get confused halfway through. Then come back to the top and work through it step by step.

You'll need the following things ready before you begin:

💡
Already have web hosting? If your society already has a website with a hosting package, you can upload the trail files to a folder on that server instead, using an FTP program such as FileZilla. Your web host or IT volunteer can help with this. The trail will work exactly the same way — you just need the files in a publicly accessible folder. Skip to the Your trail URL section if this applies to you.

What is GitHub Pages?

GitHub is a website used by software developers to store and share code. It is owned by Microsoft and used by millions of organisations worldwide, including the BBC, the NHS, and most major technology companies. It is not going anywhere.

GitHub Pages is a feature of GitHub that turns a folder of files into a live website — for free, with no monthly fees, no adverts, and no limit on how many people visit. The Heritage Trail app is a set of files (HTML, JavaScript, images, audio) that work perfectly as a GitHub Pages site.

Your trail will get a permanent web address in the format:

Your trail URL https://your-group-name.github.io/your-trail-name/

For example, a group called Olney Heritage Society publishing a trail called the Cowper Walk might have the address olneyheritage.github.io/cowper-walk/. That address is permanent — it won't change unless you delete the repository.

ℹ️
What about a custom domain? If your society has its own domain name — such as olneyheritage.org.uk — you can point it at your GitHub Pages site so the trail appears at something like trail.olneyheritage.org.uk. This is an optional extra step that requires access to your domain's DNS settings. Contact MKHA if you'd like help with this once your trail is live.

Getting your files ready

Before uploading, make sure your trail folder is complete and correctly structured. GitHub is not forgiving of missing files or incorrect paths — if a file is in the wrong place, images won't load and audio won't play.

Your trail folder should look like this:

your-trail-name/ index.html ← the trail app (from the toolkit) config.js ← from the config editor trail.geojson ← from the map editor manifest.json ← part of the trail app sw.js ← part of the trail app images/ splash.jpg ← your splash screen photo stop-01.jpg ← photo for stop 1 stop-02.jpg ← photo for stop 2 audio/ stop-01.mp3 ← audio for stop 1 (if used) stop-02.mp3 ← audio for stop 2 (if used)

The yellow files are required — the trail will not work without them. The blue files are optional — only include them if your trail uses images or audio at each stop.

⚠️
Check your filenames before uploading Filenames on GitHub are case-sensitive. Splash.jpg and splash.jpg are treated as different files. If your config.js or GeoJSON refers to images/splash.jpg but the file is named Splash.jpg, the image won't appear. Use lowercase throughout — it avoids all of these problems.

Step 1 · Create a GitHub account

If you already have a GitHub account, skip to Step 2.

a
Go to github.com

Open github.com in your browser and click the Sign up button.

b
Enter your details

You'll need an email address, a username, and a password. The username becomes part of your trail URL, so choose something that represents your group: olneyheritage, stonyhistory, mkcanalsociety. No spaces are allowed — use hyphens if needed.

c
Verify your email

GitHub sends a verification email. Click the link in it to confirm your account before continuing.

d
Choose the Free plan

When asked to choose a plan, select Free. You don't need any paid features. Everything in this guide works on the free plan.

💡
Use a shared group email address Register with your society's shared email address (info@, secretary@, or similar) rather than a personal one. That way, if the person who set up the account leaves the group, someone else can still access it. Write the username and password down somewhere safe and share it with your committee.

Step 2 · Create a repository

A repository is GitHub's name for a folder. Each trail gets its own repository. The repository name becomes part of your trail's URL, so choose something short and descriptive.

a
Click the + button

When logged in to GitHub, look for a + icon near the top-right of the page. Click it and choose New repository from the menu.

b
Name the repository

This name appears in your trail URL. Keep it short, lowercase, and use hyphens instead of spaces: village-trail, cowper-walk, canal-history. Avoid anything too generic — if you plan multiple trails, you'll want names that distinguish them.

c
Set visibility to Public

Make sure the repository is set to Public. This is required for the free GitHub Pages hosting. It means the files in your repository are visible to anyone who looks — which is fine, since the trail itself is intended to be public.

d
Click Create repository

Leave all other settings as they are — do not tick "Add a README file" or anything else. Click the green Create repository button.

Step 3 · Upload your files

Now you'll upload your trail files. GitHub lets you do this directly in the browser — no software to install.

a
Click "uploading an existing file"

On the empty repository page, you'll see some introductory text. Look for the link that says uploading an existing file and click it. This opens the upload page.

b
Open your trail folder on your computer

Open File Explorer (Windows) or Finder (Mac) and navigate to your trail folder. You want to see the contents of the folder — the files and subfolders inside it — not the folder itself.

c
Select everything and drag it into GitHub

Select all files and folders inside your trail folder (Ctrl+A on Windows, Cmd+A on Mac), then drag them into the large upload area on the GitHub page. Wait for all items to appear in the list below the upload box — this can take a minute if you have many photos.

If dragging doesn't work, click the choose your files link instead and select them manually. Note that some browsers handle folder uploads differently — Chrome and Edge work most reliably.

d
Commit the files

Scroll down past the file list. You'll see a section called Commit changes. You can leave the message box as it is — GitHub fills in a default. Click the green Commit changes button.

GitHub saves all your files. This may take a minute or two if you have many images or audio files.

ℹ️
Uploading folders with images and audio GitHub's drag-and-drop uploader handles folders well in Chrome and Edge. If you have difficulty uploading the images/ or audio/ subfolders, try a different approach: upload the main files first, then use the Add file → Upload files button within the repository to upload the subfolder contents separately. You can create the folder structure by typing the folder name followed by a forward slash at the start of the filename — for example, typing images/ before a filename tells GitHub to put it in an images subfolder.

Step 4 · Turn on GitHub Pages

This single step is what turns your repository from a folder of files into a live website.

a
Go to Settings

Near the top of your repository page, click the Settings tab. It has a cog icon and is near the right-hand end of the tab row.

b
Find Pages in the left menu

In the left-hand settings menu, scroll down until you see Pages under the "Code and automation" section. Click it.

c
Set the source to "Deploy from a branch"

Under the Source heading, click the dropdown and select Deploy from a branch.

d
Select main branch and root folder

Two further dropdowns appear. Set the first to main and the second to / (root). Then click Save.

e
Wait for the site to build

GitHub now builds your site. This takes between one and three minutes. You can move on to the next step while it works — the URL will be ready by the time you need it.

Step 5 · Find your trail URL

Once GitHub has built your site, your trail is live. The address follows this pattern:

Your trail address https://your-username.github.io/your-repository-name/

So if your GitHub username is olneyheritage and your repository is called cowper-walk, your trail address is https://olneyheritage.github.io/cowper-walk/

a
Find the URL on the Pages settings page

Go back to Settings → Pages. Once the site is built, a blue banner appears saying "Your site is live at…" with a Visit site button. Click it to confirm it works.

b
Test the trail on your phone

Open the URL on a smartphone — not a desktop browser. GPS and geolocation only work on phones, and auto-play audio behaviour differs between desktop and mobile. Walk to the start of your trail and confirm that the splash screen loads, the map shows the correct location, and the first stop triggers when you approach it.

c
Note the URL somewhere safe

Write down or copy the full URL. You'll need it for the QR poster, your society's website, and any printed materials. The URL is permanent — it won't change as long as the repository exists.

⚠️
HTTPS is essential for GPS The trail's geolocation features require a secure (HTTPS) connection to work on modern phones. GitHub Pages always uses HTTPS automatically, so this is handled for you. If you ever move to different hosting, make sure it also uses HTTPS — a web host or IT volunteer can confirm this.

Step 6 · Make a QR code poster

Now that you have a URL, you can generate a QR code poster — the physical sign that directs visitors to the trail. The Heritage Trail QR poster maker creates a print-ready poster with your trail name, a description, and a large QR code that visitors scan to open the trail on their phone.

a
Open the QR poster maker

Go to toolkit.heritagetrail.org.uk/qr-poster.

b
Paste in your trail URL

Enter the full GitHub Pages URL in the trail address field. The QR code generates automatically. Check that it scans correctly by pointing your phone's camera at the screen.

c
Fill in the trail details

Add your trail name, the name of your group, and a one or two sentence description. Choose a poster style that suits your trail's character.

d
Download and print

Click Download poster (PNG) to save a print-ready file. Print on A4 paper at 100% scale. For outdoor use, laminate the poster after printing — a standard A4 laminating pouch costs around £1 and makes the poster weatherproof. Put it up at your trail's starting point.

💡
Where to display your poster The starting point of the trail is the obvious location. Other good places: village notice boards, the local pub or café, the church porch, the village hall, the library, and the tourist information point if your area has one. The more places you put it, the more people will discover the trail.

Using your own hosting

If your society already has a website with a web hosting package, you can host the trail on that server instead of using GitHub Pages. This gives you more control over the URL and keeps everything under your existing hosting account. You'll need to be comfortable using an FTP or SFTP program — or have a volunteer who is.

What you'll need

Getting the trail app files

Download the Heritage Trail starter pack — a ZIP file containing the trail app (index.html, sw.js, manifest.json) along with a placeholder config.js and an empty trail folder structure. The download link is on the toolkit homepage.

Unzip the starter pack on your computer. You'll see a folder containing the app files. Add your own files into the correct places:

your-trail-name/ index.html ← from the starter pack — do not edit sw.js ← from the starter pack — do not edit manifest.json ← from the starter pack — do not edit config.js ← your file from the config editor trail.geojson ← your file from the map editor images/ splash.jpg ← your splash screen photo stop-01.jpg ← your stop photos audio/ stop-01.mp3 ← your audio files (if used)

Replace the placeholder config.js with your own from the config editor. Add your trail.geojson from the map editor. Put your images in the images/ folder and your audio files (if any) in the audio/ folder.

Uploading with FileZilla

1
Open FileZilla and connect to your server

In FileZilla, go to File → Site Manager and click New site. Enter your hosting provider's FTP hostname (something like ftp.yourdomain.org.uk), your FTP username, and your FTP password. Set the protocol to SFTP if your host supports it, otherwise use FTP. Click Connect.

2
Navigate to the public web folder on the server

The right-hand panel in FileZilla shows your server's files. Navigate to the folder that is publicly accessible on the web — this is usually called public_html, www, or htdocs. If you're not sure which folder to use, ask your web host.

3
Create a folder for your trail

Right-click in the right-hand panel and choose Create directory. Name it the same as your trail — for example cowper-walk. Lowercase, no spaces. This folder name becomes part of your trail's URL: yourdomain.org.uk/cowper-walk/

4
Upload your trail files

In the left-hand panel (your computer), navigate to your trail folder. Select everything inside it — all files and the images/ and audio/ subfolders. Drag them into the new folder on the right-hand panel (your server). FileZilla uploads everything, including the subfolders.

With many photos or audio files this may take a few minutes. The status bar at the bottom shows progress.

5
Test the trail in a browser

Open a browser and go to your trail's URL — for example https://yourdomain.org.uk/cowper-walk/. The trail splash screen should load. If you see a blank page or an error, check that index.html is in the folder (not inside a subfolder of it) and that HTTPS is working.

⚠️
HTTPS is not optional If you open the trail over a plain HTTP connection (the address bar shows "Not secure"), the GPS will not work — phones refuse to share location data with insecure pages. Your hosting provider can enable a free SSL certificate through Let's Encrypt. In cPanel hosting (the most common type), look for SSL/TLS or Let's Encrypt in the control panel. If you're unsure, contact your host and ask them to enable HTTPS for your domain.

Updating on your own server

To update the trail, edit the relevant file on your computer, then reconnect in FileZilla and drag the new version into the same folder on the server. FileZilla will ask whether to overwrite the existing file — click Overwrite. Updates appear immediately, with no rebuild delay.

💡
Keep a local copy of everything Always keep the complete trail folder on your computer, not just the files you've changed. That way you can always re-upload everything from scratch if something goes wrong on the server, and you have a backup if the server has a problem.

Updating your trail

Once the trail is live, you can update it at any time — to correct a mistake, add a new stop, change a photograph, or update a description. The process is simple: change the relevant file on your computer, then upload the new version to GitHub.

1
Make the change on your computer

Edit your trail.geojson in the map editor, update config.js in the config editor, or replace an image file. Save the updated file to your computer.

2
Upload the new version to GitHub

Go to your repository on GitHub. If it's a single file (like trail.geojson), click on the filename, then click the pencil edit icon, then look for the option to upload a replacement. Alternatively, drag the new file onto the repository's main page and commit it — GitHub will replace the old file automatically if it has the same name.

3
Wait one to two minutes

GitHub rebuilds the site automatically. The live trail updates on its own — you don't need to do anything else. Check the live trail on your phone after a minute or two to confirm the update has appeared.

ℹ️
Cached versions Visitors who have already opened the trail may see a temporarily cached old version. A hard refresh — pulling down on the page on a phone, or pressing Ctrl+Shift+R on a desktop — always loads the latest version. The trail's offline cache (which makes it work without signal) updates automatically in the background over the next day or so.

Troubleshooting

Here are the most common problems groups encounter when publishing for the first time, and what to do about them.

Problem What to check
The site shows a 404 error Wait five minutes — GitHub Pages can take a few minutes to go live the very first time. Also check that index.html is in the root of the repository, not inside a subfolder. If you see a list of files rather than the trail app, the index.html is in the wrong place.
Photos aren't loading Check that the filenames in your GeoJSON exactly match the filenames you uploaded — including uppercase and lowercase letters. Also check that the path in the GeoJSON starts with images/ and matches the folder name exactly.
The map shows the wrong location Check the centerLat and centerLng values in your config.js. In the UK, latitude is a number around 51–53 and longitude is a number between roughly -5 and +2. They may have been accidentally swapped. Use the config editor to regenerate the file.
GPS doesn't trigger stops GPS only works on phones, not desktop computers. Test outside on an actual phone. If stops still don't trigger, check the defaultRadius in config.js — it may be set too small. Try increasing it to 20 or 30 metres.
Audio doesn't play automatically Many phone browsers block auto-play until the visitor has tapped somewhere on the page first. A play button appears instead. This is a browser security feature, not a fault in the trail. Most visitors understand what a play button is.
Changes aren't appearing after an update GitHub Pages can take one to two minutes to rebuild after a commit. Wait a moment, then do a hard refresh on your phone (pull the page down firmly to force a reload). If changes still don't appear after five minutes, check that you committed the changes — look in the repository to confirm the file was updated.
The trail works on wifi but not mobile data This usually means one or more files are large — typically a high-resolution image. Check that all images are under 200KB. Use Squoosh to compress any that are over this size.
📋
Still stuck? Contact MKHA at info@mkheritage.org.uk and describe what you see on screen and what you've already tried. Screenshots are very helpful — most phones can take one by pressing the volume-down and power buttons together. If another member of your group is more comfortable with computers, asking them to sit alongside you for the upload steps often resolves issues quickly.

Publishing checklist

Work through this before telling anyone the trail is live.

💡
A soft launch is fine You don't need everything to be perfect before going live. A trail with ten solid stops, good descriptions, and working GPS is far more valuable to visitors than one that stays on a hard drive waiting to be finished. Tell a small group first, gather their feedback, then announce it more widely once you're confident it works well.