My new website will be https://topposts.net, which will be (for now) for me to post on and you to read/follow via RSS/JSON. My hope is to support guest posts at some point in the future, but I have a lot more to build first.

the main "feed" of my 11ty blog, with all posts shown having been written in the octobug editor

I wrote a little CMS that sits on top of Eleventy, providing web-based posting so I don't have to think about creating the right little file with the right little metadata and making a git commit and so on. It's called octobug because it's obviously taking a lot of inspiration from cohost in terms of ergonomics but the way it operates is with one platform running the whole thing: GitHub.

the basic prototype of the octobug posting interface. it, uh, might look familiar

There are lots of reasons to dislike GitHub and I totally understand why some people would consider this a dealbreaker but after messing around with at least a dozen options in the last 10 days I landed on this as a starting point:

  1. I like the output that 11ty produces, it's got a good ecosystem and what seems like a decent maintainer
  2. using GitHub means that the "posting API" (GitHub's REST API), the source file storage (a GitHub git repo), the processing (GitHub Actions), and the hosting (GitHub Pages) all happen in one place, with one account. The entire website is static, the only “compute” required happens either in your browser (a small amount of JS to send your posts to GitHub via their API) or inside docker containers running on GitHub Actions using two pre-defined actions with zero config required. Because I leave the github repo public it all costs $0 to operate, I only have to pay for the domain name.
  3. in theory I can use some mechanisms of GitHub's API auth + git's concept of a "committer" to support guest posts in the future. This one is a bit more handwavey but I'm focusing on other features first like drafts and media attachments and so forth.
  4. if there's something I really want to do before I build support for it in the web interface, I can always just edit the git repo itself and let 11ty build it. There's no interface for editing or deleting posts in the octobug web admin yet. But I can do that via GitHub. There's no way to upload images to posts. But 11ty supports it just fine if I use the git repo.
  5. this could (maybe, someday) be something that other people could use. I've tried to document the full setup process, though I have now spent a significant portion of the last 24 hours customizing my fork of the base software project / 11ty template to make my website look nicer.

It's fun to build scrappy software and start testing it out and thinking about what to do next. I'm glad I ended up building something new, even if it's mostly leveraging already existing things. It's fun to just freely copy details from cohost, because I don't know much about the "design" part of web design, and I feel okay about it because I'm just making a thing for myself. And I REALLY love seeing all the other things so many other people I follow are building and making notes in my TODO.md about their ideas that I want to steal!


You must log in to comment.

in reply to @topghost's post:

I've got what I hope to be the template-ready repo here and then my fork of it for the actual website is here. They're both very rough right now, but I tried documenting the setup steps in the README so it is hopefully at least partially reproducible. I need to backport at least some of the styling to the original repo, I've just been working in my blog's fork so that I have content to verify it with.

There's also a TODO.md in the octobug repo that hopefully gives some idea of my priorities/next steps!

oh wow, this is all still static. that hadn't even occurred to me, I was fully planning on making a tiny little server thing that ran on Netlify and just used the Git CLI. fascinating concept

yeah, I started from a place of “I’ll probably have to use a Serverless Function” and then I looked at the GH API and realized I had all the tools already. The whole thing with not using a shared GitHub App and having to write allll the credentials is the sacrifice but as you pointed out in the repo we can definitely fix that!

nice! I started it out as a thing that expects you to be standing up a fresh eleventy install because the posting interface needs to know what metadata fields your site’s “posts” expect, but I’d love to make that more configurable so you can instead just tell it what fields you need and you maybe do a little bit of extra styling to make the posting interface handle those fields properly.