Jake is a free, open-source GitHub Pages template that turns a data.toml configuration file into a self-deploying one-link website.
What is Jake?
Jake is a website generator template for creating a single one-link page and deploying it automatically to GitHub Pages. It takes a data.toml file as input and outputs a static HTML website that lists your links, projects, and social profiles. Jake is maintained by GitHub user thevahidal and is licensed under the MIT License. The repository is configured as a GitHub template, so you fork it to start.
Key Features
- TOML-driven configuration — Edit
data.tomlto set your name, bio, keywords, avatar image, theme (dark or light), primary color, text alignment, Google Analytics tracking ID, and base URL; no code changes required. - Automatic GitHub Pages deployment — Select GitHub Actions as your Pages source, and the included "Deploy Jake Website to GitHub Pages" workflow builds and publishes the site on every push.
- Multi-section link layout — Define multiple sections (like Projects, Social, Merch) each with a title, description, direction (row or column), item style (outline or filled), and an arbitrary number of items, each with title, description, and URL.
- SEO and analytics support — The config accepts a keywords meta tag and an avatar image placed in
dist/img/, plus a Google Analytics 4 measurement ID through thegtag_idfield. - Custom domain and base URL handling — Set a custom domain from the repository Pages settings, and use the
base_urlfield to deploy to any repository name path, such asusername.github.io/repo-name/. - Local development pipeline — Requires Python 3.11+ and Poetry; run
poetry run python script.pyto regenerate HTML intodist/, and serve it locally withpython -m http.server --directory dist 8000. Alocal_run.shscript provides one-command builds and a--watchflag for hot reload. - Template update workflow — Add the upstream repository as a remote, fetch, and merge to pull the latest Jake changes into your fork while preserving your custom
data.toml.
Who should use Jake?
- Creators and influencers who want a free, self-hosted link-in-bio page without paying for hosted services like Linktree.
- Developers who want a personal landing page that showcases their GitHub projects and social links, and who are comfortable forking a repository and editing a TOML file.
- Freelancers and small businesses that need a minimal page aggregating contact, portfolio, and social links, hosted free under their GitHub account.
- GitHub users who prefer open-source tools and want full control over their site's code and data, with the ability to extend the template.
What can you do with Jake?
- Personal one-link page — Put your name, bio, and a single page of links to all your profiles, using sections for each category.
- Portfolio of projects — Use sections to list side projects, each with a title, description, and GitHub URL.
- Storefront or merch links — Add a section for merch or product links, with items styled as outline or filled buttons.
- Analytics tracking — Include your Google Analytics ID in
data.tomlto measure traffic on your deployed page.
How does Jake work?
- Fork the template repository and name it
username.github.ioor any other name to deploy tousername.github.io/repo-name/. - In the Settings > Pages section, choose GitHub Actions as the source.
- Edit
data.tomlwith your information and push the changes. - The GitHub Action workflow builds the site and deploys it to GitHub Pages. You can watch progress in the Actions tab.
Pricing
Jake is free to use and distributed under the MIT License. Hosting is provided by GitHub Pages, which is free for public repositories, so the template itself has no associated cost.
Alternatives
Linktree is the most direct alternative; unlike Jake, Linktree is a hosted service where the page and data live on Linktree's platform, whereas Jake deploys a static site to your own GitHub Pages.
FAQ
How do I set up a custom domain with Jake?
Go to your repository's Settings, select Pages in the sidebar, enter your domain under the Custom domain section, and click Save. GitHub Pages will then serve your site from that domain; more details are in GitHub's official docs.
Can I manually trigger the deployment workflow?
Yes. Open the Actions tab in your repository, select the "Deploy Jake Website to GitHub Pages" workflow, and click the Run Workflow button. This is useful when you want to redeploy without pushing a new commit.
How do I update my forked repository with the latest Jake changes?
First back up your data.toml. Then add the original repository as an upstream remote with git remote add upstream https://github.com/thevahidal/jake.git, fetch upstream, and merge upstream/main. Resolve any conflicts (mainly in data.toml), push, and redeploy.
Does Jake support analytics?
Yes. The data.toml file includes a gtag_id field where you can paste your Google Analytics tracking ID (for example, G-33WB8LVHR6), and the generated site will include it.
What are the requirements for local development?
You need Python 3.11 or higher and Poetry. After cloning, run poetry install --no-root, then poetry run python script.py to generate HTML files in the dist/ directory.




