<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><script src="https://www.rss.style/js/atom-style.js" xmlns="http://www.w3.org/1999/xhtml"/><title>Tower of Kubes</title><link rel="self" type="application/atom+xml" hreflang="en" href="https://www.towerofkubes.com/tags/website/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://www.towerofkubes.com/tags/website/"/><link rel="alternate" type="application/rss+xml" hreflang="en" href="https://www.towerofkubes.com/tags/website/index.xml"/><id>/</id><updated>2025-11-13T00:00:00Z</updated><author><name>Ro'i Bandel</name></author><generator>Hugo 0.157.0</generator><entry><title>Grebedoc</title><link rel="alternate" type="text/html" hreflang="en" href="https://www.towerofkubes.com/articles/grebedoc/"/><id>https://www.towerofkubes.com/articles/grebedoc/</id><updated>2025-11-13T00:00:00Z</updated><summary type="html">Today I learned about Grebedoc — static site hosting for git forges.</summary><content type="html"><![CDATA[<p>Today I learned about <a href="https://grebedoc.dev/"  target="_blank" rel="noreferrer">Grebedoc — static site hosting for git forges</a>.</p>

    <div class="admonition note">
      <div class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"/></svg>
        <span>Note</span>
      </div>
      <div class="admonition-content">
        <p>Grebedoc is Codeberg spelled backwards. I find this name very clever, especially since it has “doc” in it (static site hosting can be used for Markdown Documentation|documentation).</p>
      </div>
    </div><p>This is a new option for Static Website Hosting, which can serve as an alternative to GitHub Pages. Codeberg already a similar solution called <a href="https://docs.codeberg.org/codeberg-pages/"  target="_blank" rel="noreferrer">Codeberg Pages</a>, though Codeberg Pages had a big scary warning that says it is in <a href="https://codeberg.org/Codeberg/pages-server/issues/399"  target="_blank" rel="noreferrer">maintenance mode</a>. Grebedoc is using new software, <a href="https://codeberg.org/git-pages/git-pages"  target="_blank" rel="noreferrer">git-pages</a>, so does not rely on <a href="https://codeberg.org/Codeberg"  target="_blank" rel="noreferrer">Codeberg</a>/<a href="https://codeberg.org/Codeberg/pages-server"  target="_blank" rel="noreferrer">pages-server</a> (which is the part of the Codeberg Pages stack that is in maintenance mode).</p>

<h2 class="relative group">Origin Story
    <div id="origin-story" class="anchor"></div>
    
</h2>

    <div class="admonition quote">
      <div class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"/></svg>
        <span>Quote</span>
      </div>
      <div class="admonition-content">
        <p>One of Grebedoc maintainers here! I came up with the idea for Grebedoc (and its underlying software, git-pages) when I realized that I have an extreme degree of dependency on GitHub Pages from many years of using GitHub, but it also seemed pretty likely that sooner or later, GitHub will stop subsidizing my efforts one way or another, and I need a backup plan.</p>
<p>I originally wanted to just use Codeberg Pages, but it had some significant scaling and uptime issues (that I don’t want to rehash here). I ended up concluding that the reasonable way forward is a redesign, which is what I’ve built and deployed with a small team of other volunteers. It took about a month of work and the whole thing, anycast and all, costs about 35€/mo to run. Also, Codeberg Pages is currently trialing the use of git-pages as the new pages backend, and you should be able to use it on the *.codeberg.page domain already (it responds to the same POST/PUT requests as Grebedoc)/</p>
      </div>
    </div><ul>
<li><a href="https://lobste.rs/~whitequark"  target="_blank" rel="noreferrer">whitequark</a>’s comment on <a href="https://lobste.rs/c/wmoqsn"  target="_blank" rel="noreferrer">Grebedoc — static site hosting for git forges | Lobsters</a></li>
</ul>
<p>The fact that the entire global stack “costs about 35€/mo to run” is impressive. Though, I wonder what the increase in cost will be when more people start using Grebedoc.</p>

<h2 class="relative group">Can I use Grebedoc for my personal projects?
    <div id="can-i-use-grebedoc-for-my-personal-projects" class="anchor"></div>
    
</h2>
<p>One of my concerns was that Grebedoc sites would <em>have</em> to use a Codeberg repository. Codeberg looks good, though it is more limiting than GitHub or GitLab since <a href="https://docs.codeberg.org/getting-started/faq/#can-i-host-content-without-a-free-and-open-source-license%3F"  target="_blank" rel="noreferrer">they require every repo to use an open source license</a>. This also raises concerns when creating a website/blog of my own, will any content hosted on a Codeberg repo also have to be licensed for the public domain?</p>
<p>However, based on <a href="https://grebedoc.dev/"  target="_blank" rel="noreferrer">grebedoc.dev</a>, using Codeberg is <strong>not</strong> mandatory. There is a small learning curve to understanding how to host a site on Grebedoc, but the main page explains different scenarios clearly. There is a size limitation:</p>

    <div class="admonition quote">
      <div class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"/></svg>
        <span>Quote</span>
      </div>
      <div class="admonition-content">
        <p>The size of a website is currently limited to <strong>1 GiB</strong>. We are aiming to eventually raise this to 10 GiB.</p>
      </div>
    </div><hr>

    <div class="admonition note">
      <div class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"/></svg>
        <span>Note</span>
      </div>
      <div class="admonition-content">
        <p><strong>UPDATE:</strong> Originally, the size limit was 768 MiB, but this has recently been raised to 1 GiB.</p>
      </div>
    </div><p>Based on all of that, it looks like I should be able to host small websites (up to 1 GiB) on Grebedoc, no matter which Git forge I choose to use and the repo can also remain private. I can use my own domains if I want, though Grebedoc also allows using <code>*.grebedoc.dev</code> or <code>*.codeberg.page</code> subdomains. All of this is <strong>free</strong>, as far as I can tell there is no paid-tier (Codeberg is a non-profit, they can be <a href="https://join.codeberg.org/"  target="_blank" rel="noreferrer">supported</a>, but this is not required for using anything they offer).</p>

<h2 class="relative group">Resources
    <div id="resources" class="anchor"></div>
    
</h2>
<ul>
<li><a href="https://grebedoc.dev/"  target="_blank" rel="noreferrer">Grebedoc — static site hosting for git forges</a></li>
<li><a href="https://news.ycombinator.com/item?id=45888143"  target="_blank" rel="noreferrer">Grebedoc – static site hosting for Git forges | Hacker News</a></li>
<li><a href="https://lobste.rs/s/btdj9j/grebedoc_static_site_hosting_for_git"  target="_blank" rel="noreferrer">Grebedoc — static site hosting for git forges | Lobsters</a></li>
<li><a href="https://unterwaditzer.net/2025/codeberg.html"  target="_blank" rel="noreferrer">Moving from GitHub to Codeberg, for lazy people - Markus Unterwaditzer</a></li>
</ul>
<hr>
<p><em>Featured image by <a href="https://unsplash.com/@trolf?utm_source=hugo&utm_medium=referral"  target="_blank" rel="noreferrer">Tina Rolf</a> on <a href="https://unsplash.com/?utm_source=hugo&utm_medium=referral"  target="_blank" rel="noreferrer">Unsplash</a>.</em></p>
]]></content><author><name>Ro'i Bandel</name></author><category term="til" label="Til" scheme="https://www.towerofkubes.com/tags/til/"/><category term="web" label="Web" scheme="https://www.towerofkubes.com/tags/web/"/><category term="website" label="Website" scheme="https://www.towerofkubes.com/tags/website/"/><category term="git" label="Git" scheme="https://www.towerofkubes.com/tags/git/"/><published>2025-11-13T00:00:00Z</published></entry></feed>