Tinyfetcher is a template for minimalist and simple static sites for plaintext short "posts" using parts of the existing ATProtocol ecosystem as a headless Content Management System (CMS).
It fetches Leaflet posts from a specified publication and presents them in tagged cards.
This means that you can...
- create, edit, tag and delete content from Leaflet
- have said content live on your Personal Data Server (PDS) of choice
- and have it presented it your site built from this template!
There's no need for an extra server as in the case of a conventional CMS, and no need to have your content tied to the source code as in the case of a conventional static site.
Pretty simple!
- Fork this repository
- Tweak
index.htmlandstyle.cssto your liking. - Replace the
DIDfield inconfig.jswith your ATProtocol DID. This is the immutable identifier associated with your account. - Replace the
PUBLICATION_RKEYfield inconfig.jswith your publication'srkey. This represents the record for your publication.
That's all you need to do to make Tinyfetcher your own!
If you don't know how to get your DID, simply go to pdsls, search your username, and you'll find your DID in the gibberish-seeming text within the parentheses as seen here. If you hover over it, a "Copy DID" button will appear.
If you don't know how to get your publication's rkey, first ensure that you do have a publication. Then go to pdsls and search yourself. In the "Collections" tab, you will see a link with text site.standard.publication.
This will open a list under a tab named "Records". You can check each of the records to see which has the name or url field matching your desired publication. From there, you can copy the rkey as highlighted here.
After setup, you can simply start adding content via Leaflet! Tags are preserved. Each Leaflet document/post will correspond to one card in the site.
If you are using a particular publication specifically to present certain content on the site made with this template, you may wish to turn off the "Show In Discover" option in your publication settings. Note that this prevents discovery, not access, as your data will remain public.
Please note that Tinyfetcher handles only plaintext content, and is not designed as a template for full-on blogging sites. The format is more appropriate for jokes, quick thoughts, short "post-like" content, and the like.
I've recently been posting a very specific flavor of jokes on Bluesky, the kind that takes a formal system or otherwise technical concept and maps it almost precisely into a human experience. Something like the following:
When you go to a therapist to talk about your initial set of problems S0. Then they misunderstand you and that's become a whole new set of problems S1. Now you have a new set of problems S2 = S0 Union S1. So you seek out a new therapist to help you with problems S2. Then they misunderstand you and that's become a whole new set of problems S3. Now you have a whole new set of problems S4 = S3 Union S2. So you seek out a new therapist to help you with...
A certain someone suggested that I create a collection of my jokes. I thought that it could be a single-page static site presenting all the jokes, and then they wondered if they could have a similar site for "roasts".
That someone is not a developer, but is familiar with Leaflet, which gave me the idea of using it like a content management interface for the sites instead of storing content in the source code itself.
However, I had already seen the idea of using ATProto as a CMS circulating around in Bluesky. That might have been how it occured to me as a solution to this specific problem.
Like my most other projects, the MIT License.



