GAMstack is a simple tool that lets you build and publish a website using only Markdown files and GitHub. You write your content in Markdown, save it to your GitHub repository, and GitHub Actions will turn it into a website for you. Your site will be hosted for free with GitHub Pages, so anyone can see it online
No coding skills needed. No complicated setup. Just write, push, and publish! S π¦ Core Stack
- π A GitHub Repository with your Markdown files
- βοΈ GitHub Actions to build and publish your site
- π GitHub Pages to host your website
π₯ Who is GAMstack for?
| β΅ Creators | π» Developers |
|---|---|
| π§ Lifehackers & tool-switchers β jumping between Notion, Obsidian, Apple Notes, Ulysses but still searching for that perfect flow | π€ AI vibe coders, indie devs & no-code hackers β perfect for automating your project's website or content site |
| βοΈ Bloggers & writers β focused on flow, not config | π οΈ Developers & DevOps β need zero-maintenance, Git-powered release notes & documentation |
| π± Social media users β want to go beyond FITstack (Facebook, Instagram, TikTok) and own a personal site like in the 90s | π§ CTOs, PMs, TPOs β clean and secure static sties for your product documentation |
| π Want to learn more? π‘ Why Use GAMstack? - β΅ For Creators | π Want to learn more? π‘ Why Use GAMstack? - π» For Developers |
| π Ready to start? π Setup Using the GitHub Website | π Ready to start? π Setup Using Visual Studio Code |
- π GAMstack: GitHub Actions + Markdown for easy publishing
- π Table of Contents
A few principles we believe in β for both creators and developers:
- β As simple as possible β design, structure, workflow. Less is more.
- π½ You control your files β keep them on your own drive, your repo, your rules.
- π₯οΈ Every device, every OS β works on Mac, Windows, Linux, even mobile.
- π§ Markdown-first mindset β plain text, clear thinking.
- π¨ Instant publish β write β push β live.
- ποΈ Versioned, trackable, transparent β powered by Git.
- ποΈ Minimal setup, maximal freedom.
ποΈ Build Logic & Structure
Our build process follows these core principles:
-
π Build Process & GitHub Actions
- Automated build triggered on every push
- Build steps:
steps: 1. Checkout repository 2. Copy input/ β output/ # Mirror directory structure 3. Process Markdown files # Convert .md to .html 4. Generate section pages # Create indexes 5. Build navigation # From directory structure 6. Assemble final pages # Combine with templates 7. Deploy to GitHub Pages # Make site live
- Error handling and notifications
- Build status in GitHub Actions tab
-
π Directory Mirroring & File Processing
- Input directory structure is exactly mirrored in output
- Everything from
/input/is copied 1:1 to/output/ - All
.mdfiles are converted to.html - Example structure:
input/ output/ βββ homepage.md β βββ index.html βββ blog/ β βββ blog/ β βββ blog.md β β βββ index.html β βββ post1.md β β βββ post1.html β βββ post2.md β β βββ post2.html βββ projects/ β βββ projects/ β βββ projects.md β β βββ index.html β βββ proj1.md β β βββ proj1.html βββ about-me/ β βββ about-me/ βββ about.md β βββ index.html
-
π― Section Pages & Auto-indexing
- Each folder can have its main content file
- Naming convention:
folder/folder.mdβfolder/index.html - Section pages automatically include:
# Blog <!-- From blog.md --> Welcome to my blog! <!-- Main content from blog.md --> ## Latest Posts <!-- Auto-generated section --> - [Post 2](post2.html) <!-- Links generated automatically --> - [Post 1](post1.html) <!-- In directory order -->
- Files are listed in directory order by default
- Customizable via front matter:
--- title: My Blog layout: blog sort: date-desc exclude: ["draft-post.md"] ---
-
π Homepage & Template Assembly
- Homepage built from modular components:
templates/ Final index.html βββ header.html β <!DOCTYPE html> β βββ meta, title <html> βββ menu.html β <nav>Menu items</nav> β βββ auto-generated <main> βββ content.html β Homepage content β βββ from homepage.md </main> βββ footer.html β <footer>Site info</footer> </html> - Clean, semantic HTML output
- Consistent layout across all pages
- SEO-friendly structure
- Automatic meta tags:
<meta name="description" content="..."> <meta name="keywords" content="..."> <meta property="og:title" content="...">
- Homepage built from modular components:
-
π Menu & Navigation
- Automatic menu generation from directory structure
- Configurable via
config.json:{ "menu": { "order": ["blog", "projects", "about-me"], "titles": { "blog": "My Blog", "projects": "Portfolio", "about-me": "About" }, "hide": ["private", "drafts"], "home": { "title": "Home", "show": true } }, "site": { "title": "My GAMstack Site", "description": "Personal website built with GAMstack", "author": "Your Name", "social": { "twitter": "@username", "github": "username" } }, "build": { "exclude_patterns": ["*.draft.md", "README.md"], "copy_files": ["CNAME", "robots.txt"], "minify": true } } - Responsive navigation for mobile devices
- Active page highlighting
- Breadcrumb navigation (optional)
-
π¨ Templates & Component System
- Core templates in
/templates/:templates/ βββ base/ β βββ header.html β Site header, meta tags β βββ footer.html β Site footer β βββ menu.html β Navigation menu βββ layouts/ β βββ default.html β Default page layout β βββ section.html β Section page layout β βββ post.html β Individual post layout βββ partials/ β βββ analytics.html β Optional analytics β βββ social.html β Social media links βββ styles/ βββ main.css β Core styles βββ custom.css β Your customizations - Consistent styling across all pages
- Easy to customize and extend
- Mobile-first responsive design
- Dark mode support (optional)
- Core templates in
- βοΈ Write your content in Markdown, like a normal doc or note.
- π‘ No distractions β no logins, no popups, no notifications.
- π§ββοΈ Zen flow β write once, publish instantly.
- π Your content becomes a real website people can visit.
- π§³ Ideal if you've bounced between Notion, Obsidian, Ulysses, Apple Notes, etc.
- βοΈ Automate content builds using GitHub Actions.
- π Use CI/CD for changelogs, release notes, documentation.
- π§ Follow GitOps principles β Git is your single source of truth.
- π§© Configure structure via YAML files β infrastructure as content.
- π¬ Integrate into existing Git workflows β no extra hosting required.
- π§° Great for internal docs, team microsites, project landing pages.
- π°οΈ Zero-runtime, serverless by default β no Node, no Docker, no servers.
GAMstack is the next step after these old stacks:
- JAMstack (JavaScript, APIs, and Markup) β because JavaScript is bloated and Markdown was doing just fine.
- MACH (Microservices, API-first, Cloud-native, and Headless) β because microservices are just meetings in disguise.
- LAMP (Linux, Apache, MySQL, PHP/Perl/Python) β because it's not 2002 and we're done FTPing PHP files at midnight.
- LEMP (Linux, Nginx, MySQL, PHP) β because Nginx is still just Apache in hard mode.
- WAMP (Windows, Apache, MySQL, PHP) β because deploying to Windows is like watering your plants with Coca-Cola.
- XAMPP (Cross-platform, Apache, MySQL, PHP, Perl) β because nothing says "developer experience" like running a local Perl server in 2025.
- MEAN (MongoDB, Express.js, Angular, Node.js) β because Angular made you question your career.
- MERN (MongoDB, Express.js, React, Node.js) β because React turned your blog into a distributed system.
- MEVN (MongoDB, Express.js, Vue, Node.js) β because Vue is cute but you still needed Node, Babel, and 19 plugins.
- PERN (PostgreSQL, Express.js, React, Node.js) β because PostgreSQL is great, but now your front-end has 300 dependencies to render a button.
- Django Stack (Python, Django, PostgreSQL) β because the ORM is magic... until it isn't, and therapy all start with "T."
- Firebase Stack (Firestore, Functions, Auth, Hosting) β because Google wants your soul and your billing info.
- SST (Serverless Stack) (CDK, Lambda, API Gateway, DynamoDB) β because debugging cold starts at 3AM builds character.
- AWS CDK Stack (AWS Cloud Development Kit + TypeScript) β because writing TypeScript to generate YAML that generates JSON to deploy infra is totally sane.
- Kubernetes-native (Helm, Kustomize, ArgoCD, YAML) β because containers in containers in YAML in clusters is totally not overcomplicated.
- RAPID Stack (React, API-first, Platform Independent, DevOps-ready) β because fast acronyms make fast apps. Maybe not overcomplicated.
- Vite Stack β because Webpack broke your spirit in 2021.
- Docs-as-Code β because your documentation deserves more care than your production code.
- Zettelkasten Stack β because you treat your second brain better than your first.
- Go to the GAMstack Repository.
- Click Fork in the top right corner.
- Click Create fork.
- This is where you put your website files.
- Write your files in Markdown format (
.md). - If you need help with Markdown, see this cheat sheet.
- Write your first note or edit an existing
.mdfile. - Save the file.
Example:
# Hello World
This is my first post using GAMstack.- Find the file you changed or added.
- Click Commit changes to save.
- The
.github/workflow/gamstack.ymlscript will turn.mdfiles in/input/into.htmlfiles in/output/. - It will also update the
index.htmlfile for your website.
-
Check if GitHub Actions successfully built your site:
- Go to the Actions tab in your GitHub repository.
- Look for the latest workflow run. It should show a green checkmark if it succeeded.
- If it failed, click on the workflow run to see the logs and troubleshoot the issue.
-
Alternatively, you can preview the generated files locally in VS Code:
- Open the
/output/folder in your repository. - Use a Markdown preview extension or a local server to view the generated
.htmlfiles.
- Open the
- Edit any file in
/input/and save/commit. - After a few minutes, your site will be live at
https://YOUR_GITHUB_USERNAME.github.io/.
- Open a terminal in VS Code or your computer.
- Run:
git clone https://github.com/roktiw/gamstack.git cd gamstack
- Open the
/input/folder in VS Code. - Write your files in Markdown format (
.md).
Example:
# Hello World
This is my first post using GAMstack.- Use the Source Control tab or run:
git add . git commit -m "Add my first post" git push
- GitHub Actions will build and publish your changes.
-
Check if GitHub Actions successfully built your site:
- Go to the Actions tab in your GitHub repository.
- Look for the latest workflow run. It should show a green checkmark if it succeeded.
- If it failed, click on the workflow run to see the logs and troubleshoot the issue.
-
Alternatively, you can preview the generated files locally in VS Code:
- Open the
/output/folder in your repository. - Use a Markdown preview extension or a local server to view the generated
.htmlfiles.
- Open the
- Edit any file in
/input/and save/commit. - After a few minutes, your site will be live at
https://YOUR_GITHUB_USERNAME.github.io/.
- β GitHub Repositories: Work with GitHub without cloning.
- β GitLens: See Git history and changes.
- β Prettier β Code Formatter: Auto-format Markdown and code.
- β Code Spell Checker: Check spelling in Markdown.
- β GitHub Actions: Manage GitHub Actions in VS Code.
- β Act: Run GitHub Actions locally for testing.
- β Markdown All in One: Enhance your Markdown editing experience with shortcuts, previews, and more.
Simple steps, big results. Just write, push, and your site is live!
Pull requests are welcomeβif they make things simpler.
GAMstack is a Markdown-driven Headless CMS and Static Site Generator. It uses a GitHub Repository as a single source of truth for your content. You write in Markdown, push to GitHub, and your site is built and deployed by GitHub Actions and GitHub Pages. No-Code, Low-Code, CI/CD, GitOps, IaC, Serverless, AI-ready. Pure gold! β¨
Β© Wiktor ΕwiΔ tkowski 2025 - GAMstack Made in Warsaw, Poland with love, focus, music, and a dislike for complicated tech. Happy hacking! π»β¨