monkinetic the blog

Posts tagged with 'indieweb' (30 posts)

Replying to a Mastodon post from the blog

Fedi/Mastodon programmers… with the #MastodonAPI, and given a url to a post on any instance (assuming I have access to the toot from my account), how might I get my instance to fetch it and give me a “local” ID that is suitable for passing as the “inReplyToID” in a toot payload?

Wondering if I need to:

Would that be the “local” ID?

#MastodonAPI #fediverse #programming #blogging #indieweb

#programming #blogging #indieweb #mastodonapi #fediverse

Steve Ivy

Dammit I started a branch on Goldfrog to play with the #micropub api, and now that it’s in pieces on the editor floor, I have 3 more features I want to add. #indieweb #blogging

(One is adding the ability for a note or post here to be a reply to another post on Mastodon.)

~ # 17:53 ~

Update on Goldfrog

Over on Mastodon, @[email protected] said:

I’ll be excited to beta test another blogging platform. (Still a Tumblr nerd at heart.)

Unfortunately I’m not sure I’d inflict Goldfrog on anyone at this point. 🤣 However, it’s still fun to hack on, so here are some salient points:

My favorite features:

  • A Twitter-sized posting form right at the top of the home page for posting short notes, supports Markdown, has a character counter for fun
  • Posts support tags, and #hashtags in posts are auto-linked for searching by tag on the site
  • I have a separate posting form I can use for longer posts
  • Posts can be syndicated to Mastodon, POSSE-style

As for running Goldfrog, it’s just a Go binary running off a config file, a theme directory, and a directory of content. There’s a separate tool for indexing posts from the filesystem into sqlite (usually only done when installing or updating from git).

  • Runs on a DO droplet, currently deployed with ansible
  • The only “admin” functionality is posting and editing posts, everything else is editing a config in git. “Admin” is based on a security-through-obscurity login url and a hardcoded user and password in the configs. This is dumb ;) and I’m experimenting with supporting Gitlab OAUth for login.
  • Posts are stored in git as Markdown files with yaml headers
  • posts are read into a SQLite db for serving and searching

I enjoy hacking on Goldfrog, and sure I’d like it if someone had a barebones product like it, but I have no interest in supporting either an actual open-source product, or running an entire damn “platform”. 💜

#goldfrog #blogging #mastodon #indieweb #hashtags

Steve Ivy

There a LOT of error cases when writing a #webmention server implementation #indieweb #goldfrog

~ # 19:57 ~

Steve Ivy

I know I’ve done a good job integrating my social media posting into my site when I want to reply to my own posts. #indieweb #posse

~ # 01:02 ~

Steve Ivy

Obviously I need to add media uploading to my syndication code #indieweb #goldfrog

~ # 20:15 ~

Steve Ivy

I added an edit button for Notes on this site and it’s like #twitter only awesome #indieweb

~ # 18:58 ~

Steve Ivy

Jacky Alciné

Jacky Alciné is an active member of the #indieweb and #activitypub communities, and a web developer working out of Oakland.

Imma make this clear: I’m not building software for developers.

I’m working to building tools for people.

You shouldn’t have to know to maintain and secure a server to have your own independent identity online. You shouldn’t need to know what libsodium or similar library to be secure online.

That’s my objective.

#indieweb #activitypub #webdevelopment

Steve Ivy

Yesterday I imported 7800+ tweets into Goldfrog, my blog/cms, as part of owning my own content. Tweets (or Notes) will be published on and be syndicated to Twitter. See my archive page (20 years worth), blue are posts and pink are notes

~ # 23:31 ~

Goldfrog updates: syndication

If you follow me on social media - Twitter or Mastodon - you may have seen lots of nonsense posts go by recently… Shot 2020-02-06 at 8.19.51 PM.png

I’ve been working on improving my POSSE features here, which meant not only composing my posts and notes locally, and then publishing them to Twitter et al, but also being able to track where they “landed” (ids and links) and make it easy for users to find my content on the syndicated site.

So I dug back into my syndication code, rewrote it several times, learned some things about goroutines, learned how not to do some things with goroutines, and settled on a way that worked. With luck, this post and any other that is also published on Twitter or Mastodon will have links to those sites along with the post, and (at least for Twitter right now) have links to reply, favorite, or retweet the post.

As Dave used to be fond of saying:

Still digging!

#blogging #goldfrog #indieweb

Steve Ivy
Steve Ivy
Steve Ivy

Thank you #indieweb folks for

~ # 09:56 ~

Steve Ivy

For my next #indieweb trick: I’m working on adding support for Webmention in #goldfrog.


  • Endpoint discovery (header, link, a)
  • Send basic webmentions
  • Send “special” webmentions (ie Likes)


  • Provide discovery (header, link, a)
  • Receive basic webmentions
  • Receive “special” webmentions (ie Likes)

Ultimately I’d like to break out my webmention code into a releasable #golang module that can provide reusable http.Handler functions that can be plugged into any Go mux that supports them.

~ # 00:00 ~

Steve Ivy

ICYMI: working on #indieweb in goldfrog

~ # 23:39 ~

Steve Ivy

Towards IndieWeb: POSSE and Notes

#posse #blogging #webmention #indieweb

~ # 16:22 ~

Steve Ivy

POSSE is the #IndieWeb acronym for Publish (on your) Own Site, Syndicate Everywhere. It’s something I’m playing with in Goldfrog.

A common idiom is to differentiate Notes (small microblog-like posts) from Articles (longer blog posts with a title). Right now Goldfrog has a basic blog Post type, with (ID, Title, Slug, Tags, Body). I’d like to keep the posting experience as simple as possible, so I’m thinking about how to handle something that literally just has a Body (and Tags, because I parse and attach any #hashtags - see? - in the content).

My Posts have an ID, though a uniqueness constraint on the slug means I could use that instead. But Notes don’t have a title to “slugify” (it is too a word). Goldfrog also writes every post to the filesystem as a Jekyll-compatible markdown file, so I would need to figure out what format and filename/slug would be appropriate so that they get a permalink.

Url Options

  • 2020/01/16/note-ab43f6 unique hash id
  • 2020/01/16/note-13:25 HH:MM

Actual Progress

An upcoming build of Goldfrog will support new “kind” of Post, albeit only differentiated by the presence of a title. I’ve made a few UI and backend changes to support notes: Shot 2020-01-17 at 7.58.03 AM.png

  • Notes get a slug that is constructed from the string “txt-” + a shortened hash based on the note’s content, like txt-8213d2c
  • Since notes are short enough to look weird on a typical post-detail page, I created a new “Daily Digest” page on the site that shows only the posts for a given day. This is the default target for the permalink for Notes. The slug is used as the id attribute on the note, so the link jumps directly to the note on the digest page. This results in a “permalink” like “YYYY-MM-DD/#txt-8213d2c”
  • The Syndicate options (currently for Twitter and Mastodon) are now enabled by default for notes.
  • Clicking the “post form” link takes me to a longer post form with options for a title, custom slug, tags, and a larger content area for writing.

Still to work out

  • I’m thinking about implementing Webmentions for Goldfrog, since I control the code.
  • I’m still pondering how to connect a post or note with it’s syndicated version, to allow likes from this site to propagate to the syndicated site. That feels… harder than I want to dig into right now, but I’ll be looking for ideas.

~ # 00:00 ~

Steve Ivy

#indieweb folks: how do you post a tweet via the API with a link back to the original? As in, why didn’t this link expand? #posse

~ # 19:18 ~

Steve Ivy

Back towards the IndieWeb: Another aspect to creating my own blogging software: I can finally start implementing some of #indieweb principles I’ve been watching for a while.

One of those is POSSE (Publi

~ # 13:25 ~

Steve Ivy

Another aspect to creating my own blogging software: I can finally start implementing some of #indieweb principles I’ve been watching for a while.

One of those is POSSE (Publish Own Site, Syndicate Everywhere) - which means everything you write starts on your own site, and content is syndicated to the appropriate kinds of sites as desired. This could include things like:

  • Articles are syndicated via RSS (done, no brainer)
  • Short posts (notes) are automatically or optionally published whole to Twitter, Mastodon, or the microblog of your choice
  • Articles are automatically or optionally shared to a microblog site with a link back to your own site

Goldfrog + Twitter

While I generally find Twitter overwhelming and frustrating (not nearly as much so as the less-privileged do), I just finished adding a Twitter cross-poster to #goldfrog. I’ll be implementing a Mastodon cross-poster in the next few days (/me waves @, now that I’ve figured out and implemented the pattern.

The Twitter cross poster will send the title, some text, and a link back to the post. So, let’s see if deploying the new feature worked. :D

~ # 00:00 ~

Steve Ivy

RT @aaronpk: As much as I enjoy the benefits of running my own server, I really don’t like running my own server. #indieweb

~ # 05:12 ~

Steve Ivy

Home sick on a Sunday (ew), hacking on boxpub and making my site a little more #indieweb. That feels good.

~ # 19:00 ~

Steve Ivy

Anyone know how to get Wordpress P2 to post status updates to Twitter? #indieweb

~ # 16:25 ~

Steve Ivy

Imaging a way that @t could have arranged the AWS outage to promote #indiewebcamp :P

~ # 03:04 ~

Steve Ivy

Man, wish I could have been @ #indieweb this weekend. You, my friends, are awesome. #keepitindie

~ # 19:01 ~

Steve Ivy

back to working on blogging independence: and Skitch posting to #indieweb

~ # 22:46 ~

Steve Ivy

#indiewebcamp is where I wanted to be this weekend, instead having great time with family. #winwin

~ # 18:27 ~