How to put your trail on the internet for free, using GitHub Pages — no technical experience needed.
GitHub is a free website where you can store files and make them available on the internet. Millions of people use it — including organisations like the BBC and the NHS — to publish websites and apps.
The part we're using is called GitHub Pages. It lets you turn a folder of files into a live website, for free, with no limits on how many people visit it. There's no monthly fee, no adverts, and no catch.
You don't need to understand how it works to use it. This guide will walk you through every click.
Gather these files first. You'll upload them all to GitHub in one go.
The green files are required. The blue files are optional — only include them if your trail uses photos or audio.
splash-photo.jpg not splash photo.jpg. GitHub is fussy about this.If you already have a GitHub account, skip to Step 2.
Open github.com in your browser and click the big Sign up button.
You'll need an email address, a username, and a password. The username will appear in your trail URL — something like deanshangerheritage works well (no spaces).
GitHub will send you a verification email. Click the link in it to confirm your account.
When asked about a plan, choose Free. You don't need any paid features.
A repository (or "repo") is just a folder on GitHub. Each trail gets its own repository.
When logged in, look for a + icon in the top-right corner of the page. Click it and choose New repository.
This name becomes part of your trail URL. Keep it short and use hyphens: village-trail or deanshanger-history-walk. No spaces.
Make sure the repository is set to Public — this is required for the free GitHub Pages hosting. Your trail content will be publicly viewable, which is what we want.
Leave all other settings as they are and click the green Create repository button at the bottom.
Now you'll upload your trail files into the repository. GitHub lets you do this directly in the browser — no software to install.
On the empty repository page you'll see some text. Look for the link that says uploading an existing file and click it.
Open your trail folder on your computer. Select all the files and folders inside it, then drag them into the big upload box on the GitHub page. Wait for them all to appear in the list.
images and audio subfolders separately using the Add file → Create new file option.Scroll down below the file list. You'll see a box saying Commit changes. You can leave the description blank. Click the green Commit changes button.
GitHub will now save all your files. This may take a minute if you have lots of photos.
This is the step that turns your repository into a live website.
Near the top of your repository page, click the Settings tab (it has a cog icon).
In the left-hand menu, scroll down to find Pages and click it.
Under Source, choose Deploy from a branch from the dropdown.
Set the branch to main and the folder to / (root). Then click Save.
Once GitHub has finished building, your trail will be live at a web address like this:
For example, if your username is deanshangerheritage and your repository is called village-trail, your URL will be:
Go back to Settings → Pages. Once the site is built, you'll see a blue banner saying "Your site is live at…" with the URL. Click it to check it works.
Open the URL on your phone's browser. If GPS doesn't work on a desktop browser, don't worry — that's normal. It will work on your phone when you're outside.
Use the QR code generator to turn this URL into a printable poster, ready for your noticeboard or village hall.
When you want to add a new stop, fix a description, or change a photo, you update the relevant file and upload the new version to GitHub.
Edit your trail.geojson in the map editor, or update config.js in the config editor. Save the new file to your computer.
Go to your repository on GitHub. Click on the file you want to replace, then click the pencil edit icon, then choose Upload file — or simply drag the new version onto the repository page and commit it.
GitHub will rebuild the site automatically. The live trail will update on its own — you don't need to do anything else.
| Problem | What to try |
|---|---|
| The site shows a 404 error | Wait 3–5 minutes — GitHub Pages can take a few minutes to go live for the first time. Also check that index.html is in the root of the repository, not inside a subfolder. |
| Photos aren't loading | Check that the filenames in your GeoJSON exactly match the filenames you uploaded — including upper/lowercase letters. Splash.jpg and splash.jpg are different files. |
| GPS doesn't work in the browser | GPS and geolocation only work on phones and tablets, and only when outside. Testing on a desktop computer won't trigger points of interest — that's expected. |
| Audio doesn't play automatically | Many phone browsers block auto-play until the visitor has interacted with the page. A play button will appear instead. This is a browser security feature, not a bug. |
| The map shows the wrong location | Check the centerLat and centerLng values in your config.js. Latitude and longitude may be swapped — in the UK, latitude is around 51–53 and longitude is around -5 to +2. |
| Changes aren't appearing live | Try a hard refresh (Ctrl+Shift+R on Windows, Cmd+Shift+R on Mac). GitHub Pages can take a few minutes to update after you commit a change. |
Share the URL with your group and test it on a walk. When you're ready, generate a QR code poster and put it up around the village.
Generate a QR code poster → · Back to the map editor → · Read the trail-building guide →