Build Blog With Jekyll, GitHub, OrbStack, VS Code And Cloudflare
Want to build a blog that actually looks good, runs locally, and updates itself online?
This guide walks you through a clean, modern workflow combining:
- Jekyll + al-folio — the best pair for static blogs and academic sites
- GitHub Pages / Cloudflare Pages — two effortless deployment options
- OrbStack — a lightweight container engine for macOS
- VS Code — the perfect tool for Markdown and YAML editing
1. Create Blog Repository
-
Open the template project: al-folio GitHub repo:
https://github.com/alshedivat/al-folio
-
Click Use this template → Create a new repository Name it
yourname.github.io
(or anything) -
Enable Actions permissions: Settings → Actions → General → Check Read and write permissions
-
Edit
_config.yml
:url: "https://yourname.github.io" baseurl: ""
-
If using GitHub Pages deployment:
- Go to Settings → Pages
- Source: Deploy from a branch
- Branch:
gh-pages
- Folder:
/ (root)
- Wait a few minutes and visit
https://yourname.github.io
2. Install OrbStack
OrbStack is a macOS-native virtualization and container platform that includes a Docker engine. It’s lighter, faster, and more power-efficient than traditional Docker Desktop. It can run Jekyll containers directly—no need for complex VM setups or dependency juggling.
Official site: https://orbstack.dev
.
3. Install VS Code
VS Code is ideal for writing and previewing Markdown and editing _config.yml
.
Official site: https://code.visualstudio.com/
4. Set Up and Test Local Development Environment
1. Clone the Repository
Using GitHub Desktop:
- Open GitHub Desktop → File → Clone repository…
- Select repo (e.g.
yourname.github.io
) - Save it at
~/Projects/GitHub/yourname.github.io
2. Start the OrbStack Container Service
docker compose pull
docker compose up
Then visit http://localhost:8080
in browser.
3. Test the Local Environment
In VS Code, open the _posts
directory, create a new Markdown file, and save it.
The Jekyll container running in OrbStack will detect the change in seconds, and the page at http://localhost:8080
will auto-refresh.
That’s full local edit-and-preview loop in action.
5. Online Deployment Options
1. GitHub Pages
Best for quick, no-setup deployment.
If repo is named yourname.github.io
, it’ll auto-deploy. Custom domains are supported.
2. Cloudflare Pages
For users who want custom domains or performance boosts.
- Sign in to Cloudflare Pages:
https://dash.cloudflare.com/
- Create Project → Link GitHub repo
-
Use these build settings:
Build command: bundle exec jekyll build Build output directory: _site
Once deployed, site will be available via the custom domain or the default *.pages.dev
address.