
This workshop is designed to help you create and publish a modern portfolio website. We will start with a ready-to-use portfolio website template for geospatial professionals and learn how to edit and setup your GitHub repository to publish your website. At the end of the workshop, you will have a beautiful and customized website with your portfolio that is hosted for free on GitHub Pages and ready to be shared with your network.
We will use the MkDocs static site generator with Material theme that creates modern responsive website from Markdown-formatted content.
This workshop will cover the following topics:
Before you start building the portfolio, it will be helpful to have the following items saved to a local directory on your computer.
profile.png. Preferably 300px x 300px
in size.about.png. Maximum 500px width.[YOUR NAME]-CV.pdf. If you name is John, the
file would be John-CV.pdf.Make sure you are logged-in to your GitHub account before trying the following steps.

Repository name. To
use GitHub Pages for free at https://your-username.github.io, name the repository
exactly as your-username.github.io (replace your-username
with your actual GitHub username). For example, if the github username
is spatialthoughts, the repository name should be
spatialthoughts.github.io. This is a special repository
naming pattern that GitHub uses to publish the site at the root of your
GitHub pages . Optionally, you may use any other name and the the site
will be published at https://your-username.github.io/your-repository-name.
Leave all other options as-is and click Create Repository.
gh-pages and enable Github Pages. Wait for a minute for
these tasks to finish and then go to Settings → Pages.
It will show the URL of the portfolio website. Click on it to open the
website in a new tab. It is not yet setup with the correct content.
gh-pages as the branch. Click Save. This will now
take the HTML files generated by MkDocs and publish it on the Github
Pages site.

MkDocs uses a central configuration file named
mkdocs.yml. This file is in the YAML format
(.yml). You can learn about all available settings at MkDocs
Configuration page. We will edit this file with the main
configuration settings now.
mkdocs.yml
file. Click on the filename to view it.

site_name,
site_description, site_author and
site_url values. Once done, click Commit changes….
You will be shown a confirmation dialog, click Comment changes
button again to save the changes.
Next, we will now start modifying the content pages of the website.
All the content pages as in the Markdown format (.md). Each time you
update the markdown file, MkDocs will build and create a new HTML file
from that content. We will now update the homepage of the site which is
built from the index.md file.
index.md file in the docs/
folder. Click to open it and click “Edit this file* button.
[YOUR NAME], [YOUR JOB TITLE],
[YOUR TAGLINE] with your information. In the About
Me section, replace the paragraph with your bio.

docs/assets/images/ folder and click the … menu to
locate the Upload files button.
profile.png (case sensitive) and is no larger than 300px
wide. Wait for the file to be uploaded and click Commit
changes. Similarly, upload your about me picture named
about.png. This photo can be any of dimensions, but to
ensure the homepage loads fast, ensure it is not bigger than 700px
wide.
docs/assets/ folder and click on the Upload files
button.
<your name>-CV.pdf (If
your name is John, name the file John-CV.pdf).
index.md file. If the images do not appear,
ensure they are uploaded in the correct folder and the names match as
specified in the index.md file.
This workshop material is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0). You are free to re-use and adapt the material but are required to give appropriate credit to the original author as below:
Building Your Geospatial Portfolio Website by Ujaval Gandhi www.spatialthoughts.com
© 2026 Spatial Thoughts www.spatialthoughts.com
If you want to report any issues with this page, please comment below.