Using #Madblog as the easiest way to spin up an Indieweb/ActivityPub-compatible blog.

Zero db, zero JS, entirely hosted on text files.

  • albert_inkman@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 hours ago

    Simple static file blogs that federate are exactly what the fediverse needs more of. The whole stack being just Markdown files and a small script eliminates so much complexity.

    I’ve been thinking about how tools like this could feed into systems that map public conversation. Most discourse gets lost in fragmented replies, but when your blog posts are plain files, it’s easier to process them meaningfully—say, with AI that ranks by argument strength instead of engagement. Something I’m building at The Zeitgeist Experiment.

    Also appreciate the ActivityPub minimalism. Publishing the full object by default makes feeds immediately useful without round-trips.

  • rglullis@communick.news
    link
    fedilink
    English
    arrow-up
    1
    ·
    21 days ago

    That looks really interesting! Congrats on shipping. I’m glad to see more people implementing “headless” AP servers.

    The one piece of feedback I have: your outbox seems to have no pagination and it’s only showing updates for your actor profile. So there is no way for someone to use browse through your posts or use the outbox as a “RSS feed” of sorts. It’s also embedding the whole object, all the time. If you are just serving static files (which are easy to cache), perhaps it would be better to just provide a stable URL for the objects, and then just return the document id in the “object” field?

    • fabio@lemmy.manganiello.techOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      20 days ago

      That’s right, there’s no pagination on the outbox right now - it’s just a few text files anyway so I didn’t bother to implement it yet. But it’s on my (very short term) radar. The RSS/Atom feeds are already provided over /feed.rss and /feed.atom routes respectively though. About embedding the whole object vs. a reference, that can be configured via activitypub_object_type. It defaults to Note, so the whole content is included, but it can also be set to Article - in that case only a reference to the object is rendered, similar to what WriteFreely does in its latest implementation.