fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

10K
active users

#micropub

0 posts0 participants0 posts today
Brent Lineberry<p>I’ve spent some time over the past week working on a proof-of-concept integration of Micropub into Django. </p><p>I don’t have anything functional to show for it, but I have a much better understanding of IndieAuth, Micropub, and writing decoupled Django apps.</p><p><a href="https://orangegnome.com/posts/3338/exploring-indieauth-but-i-started-with-micropub" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">orangegnome.com/posts/3338/exp</span><span class="invisible">loring-indieauth-but-i-started-with-micropub</span></a></p><p><a href="https://mastodon.online/tags/Django" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Django</span></a> <a href="https://mastodon.online/tags/WebDevelopment" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebDevelopment</span></a> <a href="https://mastodon.online/tags/Indieweb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Indieweb</span></a> <a href="https://mastodon.online/tags/Indieauth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Indieauth</span></a> <a href="https://mastodon.online/tags/Micropub" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Micropub</span></a></p>
SoapDog<p>When I wrote that post, my blog was SSG generated by Pollen (which is ultimately running on the <a href="https://toot.cafe/tags/Racket" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Racket</span></a> runtime). That was a great system and it served me well for years, but it had its shortcomings and eventually I decided to replace it with something simpler. I went with a dynamic <a href="https://toot.cafe/tags/Lua" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Lua</span></a> site.</p><p>The new system is good old CGI based scripts written in <a href="https://toot.cafe/tags/Lua" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Lua</span></a> using a <a href="https://toot.cafe/tags/SQLite" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SQLite</span></a> file as source of truth. About 1169 lines for the whole CMS including my <a href="https://toot.cafe/tags/IndieAuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IndieAuth</span></a> <a href="https://toot.cafe/tags/Micropub" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Micropub</span></a> and my <a href="https://toot.cafe/tags/MetaWeblog" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>MetaWeblog</span></a> endpoint.</p>
Tantek Çelik<p>The team <a class="" href="https://micro.blog" rel="nofollow noopener noreferrer" target="_blank">@micro.blog</a> have done it again.<br><br>They soft-launched <a class="" href="https://micro.one" rel="nofollow noopener noreferrer" target="_blank">https://micro.one</a> yesterday<a href="https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web#t5_s1_note-1" rel="nofollow noopener noreferrer" target="_blank">¹</a>.<br><br>This may be the most accessible onramp to the open social web ever.<br><br>Cost: $1 a month. Yes you read correctly.<br><br>This is the simplest and cheapest (where you are the customer, not the product) way to own your identity and content online<a href="https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web#t5_s1_note-2" rel="nofollow noopener noreferrer" target="_blank">²</a>.<br><br>Stop posting in someone else’s garage<a href="https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web#t5_s1_note-3" rel="nofollow noopener noreferrer" target="_blank">³</a>.<br><br>Time to export your Twitter, and migrate your Mastodon handle to your own home on the web.<br><br>Of course you can bring your own domain name. Additionally:<br>* blog posts, naturally, both articles and microblogging notes<br>* photos<br>* podcasting<br>* custom themes<br>* web-clients and native mobile posting clients<br>* WordPress, Tumblr, Mastodon, Medium import<br>More details (and alternatives) at <a class="" href="https://micro.one/about/pricing" rel="nofollow noopener noreferrer" target="_blank">https://micro.one/about/pricing</a><br><br>And yes, it interoperates with the open <a class="" href="https://indieweb.social/tags/socialWeb" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">socialWeb</span></a>, including:<br>* <a class="" href="https://indieweb.social/tags/ActivityPub" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">ActivityPub</span></a> support, <a class="" href="https://indieweb.social/tags/Mastodon" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">Mastodon</span></a> and <a class="" href="https://indieweb.social/tags/fediverse" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">fediverse</span></a> compatibility<br>* <a class="" href="https://indieweb.social/tags/IndieAuth" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">IndieAuth</span></a> to sign-in to third-party apps<br>* <a class="" href="https://indieweb.social/tags/microformats" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">microformats</span></a> support in all built-in themes<br>* <a class="" href="https://indieweb.social/tags/Webmention" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">Webmention</span></a> for sending and receiving replies across websites<br>* <a class="" href="https://indieweb.social/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">Micropub</span></a> standard posting API, supporting dozens of clients<br>* <a class="" href="https://indieweb.social/tags/Microsub" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">Microsub</span></a> standard timeline API, supporting social readers<br>More <a class="" href="https://indieweb.social/tags/indieweb" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">indieweb</span></a> support details at <a class="" href="https://micro.one/about/indieweb" rel="nofollow noopener noreferrer" target="_blank">https://micro.one/about/indieweb</a><br><br>Did I mention the the superb <a class="" href="http://micro.blog" rel="nofollow noopener noreferrer" target="_blank">micro.blog</a> (and <a class="" href="http://micro.one" rel="nofollow noopener noreferrer" target="_blank">micro.one</a>) Community Guidelines?<br>* <a class="" href="https://help.micro.blog/t/community-guidelines/39" rel="nofollow noopener noreferrer" target="_blank">https://help.micro.blog/t/community-guidelines/39</a><br><br>Well done <a class="" href="https://manton.org" rel="nofollow noopener noreferrer" target="_blank">@manton.org</a> and team.<br><br>This is post 6 of <a class="" href="https://indieweb.social/tags/100PostsOfIndieWeb" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">100PostsOfIndieWeb</span></a>. <a class="" href="https://indieweb.social/tags/100Posts" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">100Posts</span></a> <a class="" href="https://indieweb.social/tags/ownYourIdentity" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">ownYourIdentity</span></a> <a class="" href="https://indieweb.social/tags/ownYourData" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">ownYourData</span></a> <a class="" href="https://indieweb.social/tags/openSocialWeb" rel="nofollow noopener noreferrer" target="_blank">#<span class="p-category">openSocialWeb</span></a><br><br>← <a class="" href="https://tantek.com/2025/003/t1/lastfm-year-in-review-playback24" rel="nofollow noopener noreferrer" target="_blank">https://tantek.com/2025/003/t1/lastfm-year-in-review-playback24</a><br>→ <a class="" href="https://tantek.com/2025/012/t1/eight-years-webmention" rel="nofollow noopener noreferrer" target="_blank">https://tantek.com/2025/012/t1/eight-years-webmention</a><br><br><br>Glossary<br><br>IndieAuth<br>&nbsp; <a class="" href="https://indieweb.org/IndieAuth" rel="nofollow noopener noreferrer" target="_blank">https://indieweb.org/IndieAuth</a><br>microformats<br>&nbsp; <a class="" href="https://microformats.org/wiki/microformats" rel="nofollow noopener noreferrer" target="_blank">https://microformats.org/wiki/microformats</a><br>Micropub<br>&nbsp; <a class="" href="https://indieweb.org/Micropub" rel="nofollow noopener noreferrer" target="_blank">https://indieweb.org/Micropub</a><br>Microsub<br>&nbsp; <a class="" href="https://indieweb.org/Microsub" rel="nofollow noopener noreferrer" target="_blank">https://indieweb.org/Microsub</a><br>Webmention<br>&nbsp; <a class="" href="https://indieweb.org/Webmention" rel="nofollow noopener noreferrer" target="_blank">https://indieweb.org/Webmention</a><br><br>References<br><br><a href="https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web#t5_s1_ref-1" rel="nofollow noopener noreferrer" target="_blank">¹</a> <a class="" href="https://www.manton.org/2025/01/03/microone-was-effectively-a-softlaunch.html" rel="nofollow noopener noreferrer" target="_blank">https://www.manton.org/2025/01/03/microone-was-effectively-a-softlaunch.html</a><br><a href="https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web#t5_s1_ref-2" rel="nofollow noopener noreferrer" target="_blank">²</a> <a class="" href="https://tantek.com/2025/001/t1/15-years-notes-my-site-first" rel="nofollow noopener noreferrer" target="_blank">https://tantek.com/2025/001/t1/15-years-notes-my-site-first</a><br><a href="https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web#t5_s1_ref-3" rel="nofollow noopener noreferrer" target="_blank">³</a> <a class="" href="https://tantek.com/2023/022/t2/own-your-notes-domain-migration" rel="nofollow noopener noreferrer" target="_blank">https://tantek.com/2023/022/t2/own-your-notes-domain-migration</a></p>
:mima_rule: Mima-sama<p>I was actually worried for a moment I might have to revert back to vanilla <a href="https://makai.chaotic.ninja/tags/Misskey" rel="nofollow noopener noreferrer" target="_blank">#Misskey</a> and abandon <a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a>, glad I didn't have to ​:mimahappy:​</p>
:mima_rule: Mima-sama<p>Summary of micropub.rocks <a href="https://makai.chaotic.ninja/tags/testsuite" rel="nofollow noopener noreferrer" target="_blank">#testsuite</a><span> results.<br><br></span><a href="https://micropub.rocks/implementation-reports/servers/875/iHukxnfLZcx7CKC4rxtA" rel="nofollow noopener noreferrer" target="_blank">https://micropub.rocks/implementation-reports/servers/875/iHukxnfLZcx7CKC4rxtA</a><span><br><br></span><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> <a href="https://makai.chaotic.ninja/tags/Misskey" rel="nofollow noopener noreferrer" target="_blank">#Misskey</a><span><br><br>RE: </span><a href="https://makai.chaotic.ninja/notes/a1m43namrd" rel="nofollow noopener noreferrer" target="_blank">https://makai.chaotic.ninja/notes/a1m43namrd</a></p>
:mima_rule: Mima-sama<p>Ripperoni. <a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 805 fails. ❌<span><br><br>And that's the final one! Now back to 2hu posting.. </span>​:chuckling_okuu:​</p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 804 kinda fails. Test suite expects an <code>HTTP 401</code> but receives an <code>HTTP 403</code> instead. ⚠️<span><br><br>I created a new access token that has all normal user permissions except for composing and deleting notes.<br><br>However in spirit I'd say this passes. I don't think 401 should be strictly expected. </span>​:sagume_think:​<span><br><br>Request:<br></span></p><pre><code>POST https://makai.chaotic.ninja/micropub/micropub HTTP/1.1 Authorization: Bearer &lt;redacted&gt; Content-type: application/x-www-form-urlencoded; charset=utf-8 h=entry&amp; content=Testing+a+request+with+an+unauthorized+access+token.+This+should+not+create+a+post.</code></pre><span><br>Response:<br></span><pre><code>HTTP/1.1 403 Forbidden Server: nginx/1.26.2 Date: Tue, 10 Dec 2024 14:14:06 GMT Content-Type: application/json; charset=utf-8 Content-Length: 30 Connection: keep-alive strict-transport-security: max-age=15552000; preload { "error": "insufficient_scope" }</code></pre><p></p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> tests 700-702 pass (<code>media-endpoint</code> is found and the test JPEG, PNG, and GIF are successfully uploaded to the Misskey Drive using that endpoint). ✅<span><br><br>Attached are said test media received by </span><a href="https://makai.chaotic.ninja/tags/Misskey" rel="nofollow noopener noreferrer" target="_blank">#Misskey</a>.</p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 603 passes. ✅<span><br><br>Request:<br></span></p><pre><code>GET https://makai.chaotic.ninja/micropub/micropub?q=source&amp;properties%5B%5D=content&amp;properties%5B%5D=category&amp;url=https%3A%2F%2Fmakai.chaotic.ninja%2Fnotes%2Fa1m3jelrq7 HTTP/1.1 Authorization: Bearer &lt;redacted&gt;</code></pre><span><br>Response:<br></span><pre><code>HTTP/1.1 200 OK Server: nginx/1.26.2 Date: Tue, 10 Dec 2024 14:03:51 GMT Content-Type: application/json; charset=utf-8 Content-Length: 114 Connection: keep-alive strict-transport-security: max-age=15552000; preload X-Cache: MISS X-Robots-Tag: noml Link: &lt;https://makai.chaotic.ninja/micropub/micropub?q=source&amp;properties%5B%5D=content&amp;properties%5B%5D=category&amp;url=https%3A%2F%2Fmakai.chaotic.ninja%2Fnotes%2Fa1m3jelrq7&gt;; rel="canonical" Accept-Ranges: bytes { "properties": { "content": [ "Test of querying the endpoint for the source content" ], "category": [ "micropub", "test" ] } }</code></pre><p></p>
:mima_rule: Mima-sama<p>Test of querying the endpoint for the source content <a href="https://makai.chaotic.ninja/tags/micropub" rel="nofollow noopener noreferrer" target="_blank">#micropub</a> <a href="https://makai.chaotic.ninja/tags/test" rel="nofollow noopener noreferrer" target="_blank">#test</a></p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 602 passes. ✅<span><br><br>Request:<br></span></p><pre><code>GET https://makai.chaotic.ninja/micropub/micropub?q=source&amp;url=https%3A%2F%2Fmakai.chaotic.ninja%2Fnotes%2Fa1m3gvn5q2 HTTP/1.1 Authorization: Bearer &lt;redacted&gt;</code></pre><span><br>Response:<br></span><pre><code>HTTP/1.1 200 OK Server: nginx/1.26.2 Date: Tue, 10 Dec 2024 14:01:59 GMT Content-Type: application/json; charset=utf-8 Content-Length: 242 Connection: keep-alive strict-transport-security: max-age=15552000; preload X-Cache: MISS X-Robots-Tag: noml Link: &lt;https://makai.chaotic.ninja/micropub/micropub?q=source&amp;url=https%3A%2F%2Fmakai.chaotic.ninja%2Fnotes%2Fa1m3gvn5q2&gt;; rel="canonical" Accept-Ranges: bytes { "type": [ "h-entry" ], "properties": { "published": [ "2024-12-10T14:01:45.521Z" ], "content": [ "Test of querying the endpoint for the source content" ], "photos": [], "audios": [], "videos": [], "category": [ "micropub", "test" ], "misskey-visibility": [ "public" ] }</code></pre><p></p>
:mima_rule: Mima-sama<p>Test of querying the endpoint for the source content <a href="https://makai.chaotic.ninja/tags/micropub" rel="nofollow noopener noreferrer" target="_blank">#micropub</a> <a href="https://makai.chaotic.ninja/tags/test" rel="nofollow noopener noreferrer" target="_blank">#test</a></p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 601 passes. ✅<span><br><br>Request:<br></span></p><pre><code>GET https://makai.chaotic.ninja/micropub/micropub?q=syndicate-to HTTP/1.1 Authorization: Bearer &lt;redacted&gt;</code></pre><span><br>Response:<br></span><pre><code>HTTP/1.1 200 OK Server: nginx/1.26.2 Date: Tue, 10 Dec 2024 14:00:19 GMT Content-Type: application/json; charset=utf-8 Content-Length: 19 Connection: keep-alive strict-transport-security: max-age=15552000; preload X-Cache: MISS X-Robots-Tag: noml Link: &lt;https://makai.chaotic.ninja/micropub/micropub?q=syndicate-to&gt;; rel="canonical" Accept-Ranges: bytes { "syndicate-to": [] }</code></pre><p></p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 600 passes. ✅<span><br><br>Request:<br></span></p><pre><code>GET https://makai.chaotic.ninja/micropub/micropub?q=config HTTP/1.1 Authorization: Bearer &lt;redacted&gt;</code></pre><span><br>Response:<br></span><pre><code>HTTP/1.1 200 OK Server: nginx/1.26.2 Date: Tue, 10 Dec 2024 13:58:29 GMT Content-Type: application/json; charset=utf-8 Content-Length: 81 Connection: keep-alive strict-transport-security: max-age=15552000; preload X-Cache: MISS X-Robots-Tag: noml Link: &lt;https://makai.chaotic.ninja/micropub/micropub?q=config&gt;; rel="canonical" Accept-Ranges: bytes { "media-endpoint": "https://makai.chaotic.ninja/micropub/media", "syndicate-to": [] }</code></pre><p></p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> tests 502 and 503 fail. Expected because they <a href="https://makai.chaotic.ninja/tags/Misskey" rel="nofollow noopener noreferrer" target="_blank">#Misskey</a> does not have a concept of "undeleting" a post. ❌</p>
:mima_rule: Mima-sama<p><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a> test 500 passes (post has been deleted as expected) ✅</p>
:mima_rule: Mima-sama<p>micropub.rocks' test 301 (<i>Create an h-entry with two photos (multipart)</i>) just results in 504.. ​:munch_sad:​<span><br><br></span><a href="https://makai.chaotic.ninja/tags/Micropub" rel="nofollow noopener noreferrer" target="_blank">#Micropub</a></p>
Pelle Wessman<p><span class="h-card" translate="no"><a href="https://mastodon.social/@openvibe" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>openvibe</span></a></span> Add in <a href="https://mastodon.social/tags/MicroPub" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>MicroPub</span></a> support as well, then I can reply to a blog post using my self-hosted site (which will then <a href="https://mastodon.social/tags/Webmention" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Webmention</span></a> it to the original site <a href="https://mastodon.social/tags/IndieWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IndieWeb</span></a> style) <a href="https://indieweb.org/Micropub" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">indieweb.org/Micropub</span><span class="invisible"></span></a></p>
Libove Blog<p>I've started owl-blogs to explore the #IndieWeb space. At the moment I'm "only" using #microformats and #webmention.</p> <p>I've tried to implement #micropub in the past, but found it provided to little value for me.</p> <p>Anything I should try out next?</p>
Jay<p>We need an <a href="https://social.coop/tags/RSS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RSS</span></a> reader with "Reply" and "Repost" buttons. These actions would occur on a blog you connect with <a href="https://social.coop/tags/Micropub" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Micropub</span></a> or <a href="https://social.coop/tags/XMLRPC" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>XMLRPC</span></a>, and use <a href="https://social.coop/tags/WebMentions" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebMentions</span></a> to notify the originating site.</p>