Host your Jekyll site at your own address

Run jekyll build, drag the _site folder in, and your blog is live over HTTPS in seconds. No repository, no Actions workflow, no deploy step.

You can host:
index.html/assetsfolder.zip

Free to use, live at your-name.99helpers.site in about ten seconds.

Why publishing is the slow part

Jekyll is still the quickest way to turn a folder of Markdown into a blog, and almost every tutorial ends the same way: push it to GitHub Pages. That's fine until you want a site that isn't tied to a repository, or you're publishing something that has nothing to do with code, or you'd rather not wait on a build queue to see a typo fix go live.

What a Jekyll build gives you

  • A _site folder of finished HTML, CSS, JavaScript and images
  • Pretty URLs as folders: /about/index.html, /2026/01/post/index.html
  • A 404.html page if your theme includes one
  • Feeds and sitemaps from the usual plugins, already rendered to files

Build it, then upload it

Build command
bundle exec jekyll build
Folder to upload
_site/
Check baseurl in _config.yml
Your site sits at the root of its own address here, so leave baseurl empty (baseurl: ""). A leftover project path from GitHub Pages is what breaks the CSS.

GitHub Pages wants a repository

A personal blog, a client's site or a one-off project page all need a repo, a branch and a workflow before anyone can read a word of it.

baseurl breaks everything

The project-site setup asks for a baseurl, and that one line follows the build around. Upload it anywhere else and every stylesheet 404s.

A typo fix takes ten minutes

Commit, push, wait for the build, wait for the CDN. For a site you are still writing, that loop is longer than the writing.

Publishing a Jekyll site

  1. 1

    Build the site locally

    Run bundle exec jekyll build. Jekyll writes the finished site to _site, which is the only folder that matters from here on.

  2. 2

    Check baseurl is empty

    In _config.yml, set baseurl: "" before you build. Your site is served from the root of its own address, so a project path from GitHub Pages would break every link to your CSS and images.

  3. 3

    Drop _site in and pick an address

    Drag the _site folder (or a zip of its contents) into the box above and choose a name. index.html has to sit at the top level, which is exactly where Jekyll puts it.

  4. 4

    Share the link

    It's live over HTTPS straight away. Republish to the same address whenever you write a new post, and the link you've shared keeps working.

Worth knowing

  • Pretty URLs work: /about/ is served from /about/index.html, and /about without the slash redirects to it so relative assets still resolve.
  • A 404.html at the top level of the build is used automatically for pages that don't exist.
  • Set url in _config.yml to your published address so the sitemap and feed plugins write absolute links that resolve.
  • Sites are capped at 500 files and 100 MB, so a photo-heavy blog with hundreds of posts may need its images slimming down first.
  • Jekyll plugins run at build time on your machine, so anything jekyll build can render works here, whether GitHub Pages allows the plugin or not.

Questions

Do you run jekyll build for me?
No. You build locally, or in whatever CI you already use, and upload the result. That's what keeps publishing instant: there's no queue, because there's nothing to compile on our side.
Will my permalinks work?
Yes. Jekyll writes each page as its own index.html inside a folder, and that's exactly how the site is served: /2026/03/my-post/ loads the page, with or without the trailing slash.
What should baseurl be?
Empty. Your site gets the root of its own address, so baseurl: "" is right. The GitHub Pages project setting, baseurl: "/my-repo", would prefix every asset path with a folder that does not exist here.
Can I use a custom domain?
Not today. Every site gets its own address on 99helpers.site, which you choose when you publish and which stays yours until you delete it.
How do I publish a new post?
Rebuild and publish the new _site to the same address. The URL doesn't change, and earlier versions are kept, so you can roll back if a build goes wrong.
Is it free?
Yes. You create an account at the moment you publish, and hosting the site costs nothing.

Publish the Jekyll build you already have

Drop the folder in at the top of this page and see the link for yourself. You only make an account once it's ready to go live.

Every site gets its own address on 99helpers.site — see static site hosting for every generator, how website hosting works here or free file hosting for any file type.