lingo.lol is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for linguists, philologists, and other lovers of languages.

Server stats:

64
active users

#SmallTech

1 post1 participant0 posts today
Aral Balkan<p>Had my talk on Small Web accepted at <a href="https://mastodon.ar.al/tags/why2025" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>why2025</span></a> but I hadn’t realised (my bad) that not only do you have to cover your own travel and accommodation but you also have to buy a ticket to speak. I’m sorry, as part of a tiny two-person not-for-profit working for the common good, I can’t afford to pay to speak at events. I’m not Deloitte. So I sadly had to withdraw my talk.</p><p>If any conferences do want to hear about the Small Web and are willing to support our work by paying us to speak about it, please feel free to get in touch:</p><p><a href="https://small-tech.org/contact-us/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">small-tech.org/contact-us/</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/speaking" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>speaking</span></a> <a href="https://mastodon.ar.al/tags/events" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>events</span></a> <a href="https://mastodon.ar.al/tags/conferences" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>conferences</span></a> <a href="https://mastodon.ar.al/tags/decentralisation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>decentralisation</span></a> <a href="https://mastodon.ar.al/tags/humanRights" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>humanRights</span></a> <a href="https://mastodon.ar.al/tags/personhood" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>personhood</span></a> <a href="https://mastodon.ar.al/tags/democracy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>democracy</span></a> <a href="https://mastodon.ar.al/tags/peerToPeer" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>peerToPeer</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/design" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>design</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a></p>
Aral Balkan<p>You can play with (a supercharged server-driven version of it) today with Kitten:</p><p><a href="https://kitten.small-web.org/tutorials/dynamic-pages/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/tutorials</span><span class="invisible">/dynamic-pages/</span></a></p><p><a href="https://kitten.small-web.org/tutorials/streaming-html/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/tutorials</span><span class="invisible">/streaming-html/</span></a></p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://toot.cafe/@nolan/114750258226769939" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">toot.cafe/@nolan/1147502582267</span><span class="invisible">69939</span></a></p>
Aral Balkan<p>Thanking the <span class="h-card" translate="no"><a href="https://infosec.exchange/@letsencrypt" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>letsencrypt</span></a></span> folks for the excellent work they do, and especially for their upcoming support for security certificates for IP addresses which is nothing short of revolutionary for the future of the (Small) Web.</p><p><a href="https://community.letsencrypt.org/t/getting-ready-to-issue-ip-address-certificates/238777/22" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">community.letsencrypt.org/t/ge</span><span class="invisible">tting-ready-to-issue-ip-address-certificates/238777/22</span></a></p><p><a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/security" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>security</span></a> <a href="https://mastodon.ar.al/tags/IPAddresses" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IPAddresses</span></a> <a href="https://mastodon.ar.al/tags/WebNumbers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebNumbers</span></a> <a href="https://mastodon.ar.al/tags/LetsEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LetsEncrypt</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/decentralisation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>decentralisation</span></a> <a href="https://mastodon.ar.al/tags/peerToPeerWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>peerToPeerWeb</span></a> <a href="https://mastodon.ar.al/tags/findability" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>findability</span></a></p>
Aral Balkan<p>Introducing Web Numbers</p><p>Domains? Where we’re going, we don’t need domains!</p><p>Get ready for an exciting new (old?) way to address (small) web sites in 2026.</p><p><a href="https://ar.al/2025/06/25/web-numbers/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ar.al/2025/06/25/web-numbers/</span><span class="invisible"></span></a></p><p>💕</p><p>(Thanks to <span class="h-card" translate="no"><a href="https://infosec.exchange/@letsencrypt" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>letsencrypt</span></a></span>.)</p><p><a href="https://mastodon.ar.al/tags/WebNumbers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebNumbers</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/domainNames" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>domainNames</span></a> <a href="https://mastodon.ar.al/tags/IPAddresses" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IPAddresses</span></a> <a href="https://mastodon.ar.al/tags/TLS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TLS</span></a> <a href="https://mastodon.ar.al/tags/HTTPS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HTTPS</span></a> <a href="https://mastodon.ar.al/tags/LetsEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LetsEncrypt</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/decentralisation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>decentralisation</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a></p>
Aral Balkan<p>Back home after a week away to see family and itching to get back to work on the Small Web on Monday.</p><p>Expect an exciting update soon :)</p><p>:kitten: 💕</p><p><a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/humanRights" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>humanRights</span></a> <a href="https://mastodon.ar.al/tags/democracy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>democracy</span></a></p>
Aral Balkan<p>🥳 New Kitten Release</p><p>• Added support for symlinks</p><p>You can now use symlinks in your sites/apps (but only those that point inside your site/app’s directory for security reasons).</p><p>Change log: <a href="https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-05-29" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/kitten/app/src/br</span><span class="invisible">anch/main/CHANGELOG.md#2025-05-29</span></a><br>Documentation: <a href="https://kitten.small-web.org/reference/#symlinks" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/reference</span><span class="invisible">/#symlinks</span></a></p><p>To update Kitten:</p><p>• On your dev machine, run: kitten update<br>• On deployed machines, it will automatically update in a few hours.</p><p>Enjoy!</p><p>:kitten:💕</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/symlinks" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>symlinks</span></a> <a href="https://mastodon.ar.al/tags/KittenRelease" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>KittenRelease</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a></p>
Aral Balkan<p>What is my IP?</p><p>So I just whipped up a tiny Kitten app that tells you what your IP address is.</p><p>Yes, there are dozens of such services. But I wanted something I trust (because I built and host it).</p><p>Please feel free to use it.</p><p>• Browser: <a href="https://ip.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ip.small-web.org</span><span class="invisible"></span></a><br>• JSON API: <a href="https://ip.small-web.org/json/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ip.small-web.org/json/</span><span class="invisible"></span></a></p><p>View source: <a href="https://codeberg.org/small-tech/ip" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">codeberg.org/small-tech/ip</span><span class="invisible"></span></a></p><p>Enjoy!</p><p>:kitten:💕</p><p><a href="https://mastodon.ar.al/tags/ipAddress" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ipAddress</span></a> <a href="https://mastodon.ar.al/tags/ipv4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ipv4</span></a> <a href="https://mastodon.ar.al/tags/externalIP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>externalIP</span></a> <a href="https://mastodon.ar.al/tags/whatIsMyIp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>whatIsMyIp</span></a> <a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a></p>
Aral Balkan<p>Just requested that Auto Encrypt¹ is added to the list of <span class="h-card" translate="no"><a href="https://infosec.exchange/@letsencrypt" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>letsencrypt</span></a></span> clients for Node.js and that Kitten² is added to the list of projects that integrate Let’s Encrypt support:</p><p>• <a href="https://github.com/letsencrypt/website/pull/1921" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/letsencrypt/website</span><span class="invisible">/pull/1921</span></a><br>• <a href="https://github.com/letsencrypt/website/pull/1922" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/letsencrypt/website</span><span class="invisible">/pull/1922</span></a></p><p>I originally requested that Auto Encrypt and Site.js (the precursor to Kitten, now sunset) be added to the list in 2021. It was not approved (no reason given), so hopefully this time will be different.</p><p><a href="https://github.com/letsencrypt/website/pull/1203" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/letsencrypt/website</span><span class="invisible">/pull/1203</span></a></p><p>¹ <a href="https://codeberg.org/small-tech/auto-encrypt" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-tech/auto-e</span><span class="invisible">ncrypt</span></a><br>² <a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/AutoEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AutoEncrypt</span></a> <a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/LetsEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LetsEncrypt</span></a> <a href="https://mastodon.ar.al/tags/NodeJS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NodeJS</span></a> <a href="https://mastodon.ar.al/tags/ACME" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ACME</span></a></p>
Aral Balkan<p>🔒 Auto Encrypt – heads up!</p><p>In the next minor version release of Auto Encrypt¹, we’ll be moving from a hard-coded date-based certificate renewal check to using ACME Renewal Information (ARI)².</p><p>The change³ should be seamless.</p><p>If you have any concerns, now is the time to raise them :)</p><p><a href="https://mastodon.ar.al/tags/AutoEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AutoEncrypt</span></a> <a href="https://mastodon.ar.al/tags/TLS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TLS</span></a> <a href="https://mastodon.ar.al/tags/LetsEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LetsEncrypt</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a></p><p>¹ Drop-in Node.js https server replacement that automatically provisions and renews Let’s Encrypt certificates for you. (<a href="https://codeberg.org/small-tech/auto-encrypt#auto-encrypt" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-tech/auto-e</span><span class="invisible">ncrypt#auto-encrypt</span></a>)<br>² <a href="https://datatracker.ietf.org/doc/draft-ietf-acme-ari/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">datatracker.ietf.org/doc/draft</span><span class="invisible">-ietf-acme-ari/</span></a><br>³ <a href="https://codeberg.org/small-tech/auto-encrypt/src/branch/main/CHANGELOG.md#4-4-0-2025" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-tech/auto-e</span><span class="invisible">ncrypt/src/branch/main/CHANGELOG.md#4-4-0-2025</span></a></p>
Aral Balkan<p>👋🤓 Goodbye Site.js, Hello Kitten!</p><p>I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.</p><p>Building Site.js was my first attempt. And it resulted in:</p><p>• Auto Encrypt (automatic Let’s Encrypt certificates): <a href="https://codeberg.org/small-tech/auto-encrypt" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-tech/auto-e</span><span class="invisible">ncrypt</span></a></p><p>• Auto Encrypt Localhost (automatic localhost TLS certificates): <a href="https://codeberg.org/small-tech/auto-encrypt-localhost" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-tech/auto-e</span><span class="invisible">ncrypt-localhost</span></a></p><p>• @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): <a href="https://codeberg.org/small-tech/https" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">codeberg.org/small-tech/https</span><span class="invisible"></span></a></p><p>• JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: <a href="https://codeberg.org/small-tech/jsdb" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">codeberg.org/small-tech/jsdb</span><span class="invisible"></span></a></p><p>As Site.js reached an evolutionary dead-end, and as I learned from my experiements with replicated data types that replicated data types are *not* a prerequisite for a decentralised web (actual topological decentralisation and ease of use are), I started writing a new server/platform called Kitten from scratch while still making use of the tried and tested modules listed above.</p><p>Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:</p><p><a href="https://sitejs.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">sitejs.org</span><span class="invisible"></span></a></p><p>For its successor, please see Kitten:</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>If you want to support our work at the Small Technology Foundation, please consider becoming a patron:</p><p><a href="https://small-tech.org/fund-us" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">small-tech.org/fund-us</span><span class="invisible"></span></a></p><p>:kitten:💕</p><p>¹ <a href="https://ar.al/2024/06/24/small-web-computer-science-colloquium-at-university-of-groningen/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">ar.al/2024/06/24/small-web-com</span><span class="invisible">puter-science-colloquium-at-university-of-groningen/</span></a><br>² <a href="https://ar.al/2019/08/26/introducing-small-technology-foundation/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">ar.al/2019/08/26/introducing-s</span><span class="invisible">mall-technology-foundation/</span></a><br>³ Using our instance of Look Over There!: <a href="https://look-over-there.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">look-over-there.small-web.org</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ar.al/tags/SiteJS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SiteJS</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/peerToPeerWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>peerToPeerWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTechnologyFoundation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTechnologyFoundation</span></a> <a href="https://mastodon.ar.al/tags/AutoEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AutoEncrypt</span></a> <a href="https://mastodon.ar.al/tags/AutoEncryptLocalhost" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AutoEncryptLocalhost</span></a> <a href="https://mastodon.ar.al/tags/JSDB" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JSDB</span></a> <a href="https://mastodon.ar.al/tags/JavaScriptDatabase" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScriptDatabase</span></a> <a href="https://mastodon.ar.al/tags/https" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>https</span></a> <a href="https://mastodon.ar.al/tags/TLS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TLS</span></a></p>
Aral Balkan<p>So a few hours ago, I quietly switched the Small Technology Foundation web site over from the Hugo-based static site running on Site.js to the new dynamic version I built using Kitten*:</p><p><a href="https://small-tech.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">small-tech.org</span><span class="invisible"></span></a></p><p>What I initially thought would be a weekend project turned into three months :) (During which, Kitten improved a huge amount thanks to issues that surfaced while porting the site and implementing a custom CMS for it.)</p><p>I’ve tried not to break any links and my focus was on porting existing content first. If you notice any glaring issues please ping me. In the coming days I’ll be updating stuff (with my lovely new admin panel) and writing more about the porting process.</p><p>Also, with this, our last site using Site.js has been ported to Kitten so I’ll be archiving Site.js this week.</p><p>:kitten:💕</p><p>* <a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ar.al/tags/SmallTedhnologyFoundation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTedhnologyFoundation</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a></p>
Aral Balkan<p>Just noticed an issue with Look Over There!¹ where some of the sites I was forwarding to archive.org began to fail.</p><p>I’ve now documented the proper way to redirect to archive.org in Look Over There! and I also wrote a brief post on the relevant Reddit to alert the folks at The Internet Archive about this and suggest an improvement that could benefit findability on sites with redirects in general:</p><p><a href="https://www.reddit.com/r/theinternetarchive/comments/1ksndno/sites_that_redirect_to_archived_versions_of/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">reddit.com/r/theinternetarchiv</span><span class="invisible">e/comments/1ksndno/sites_that_redirect_to_archived_versions_of/</span></a></p><p>¹ e.g., See our instance for Small Technology Foundation at <a href="https://look-over-there.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">look-over-there.small-web.org</span><span class="invisible"></span></a></p><p>CC <span class="h-card" translate="no"><a href="https://mastodon.archive.org/@textfiles" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>textfiles</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.archive.org/@brewsterkahle" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>brewsterkahle</span></a></span> </p><p><a href="https://mastodon.ar.al/tags/TheInternetArchive" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TheInternetArchive</span></a> <a href="https://mastodon.ar.al/tags/LookOverThere" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LookOverThere</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/archiving" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>archiving</span></a></p>
Aral Balkan<p>So in 2019 we were debating the motion “Entrepreneurs today do more harm than good” against the provost and one of the professors at Singapore Management University and we managed to flip an initial audience vote of 28% for / 72% against to 52% for / 48% against, thereby winning the debate.</p><p>The video of the event was locked in Facebook so, as part of my work on the new version of the Small Technology Foundation website, I just liberated it.</p><p>You can watch it at:<br><a href="https://vimeo.com/1086336391" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">vimeo.com/1086336391</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ar.al/tags/BigTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BigTech</span></a> <a href="https://mastodon.ar.al/tags/SiliconValley" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SiliconValley</span></a> <a href="https://mastodon.ar.al/tags/surveillance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>surveillance</span></a> <a href="https://mastodon.ar.al/tags/capitalism" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>capitalism</span></a> <a href="https://mastodon.ar.al/tags/PeopleFarming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PeopleFarming</span></a> <a href="https://mastodon.ar.al/tags/debate" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>debate</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a></p>
Greg Laudeman<p><span class="h-card" translate="no"><a href="https://mastodon.social/@Daojoan" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>Daojoan</span></a></span> it's going to take a lot more than "radical transparency." Tech companies are totally disconnected from the values and concerns of regular folks and treats them as things to be exploited. It's going to take <a href="https://mastodon.social/tags/radicalhumility" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>radicalhumility</span></a>. I don't think tech companies, especially the larger ones, have a clue or care to get one. We need <a href="https://mastodon.social/tags/smalltech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>smalltech</span></a></p>
Aral Balkan<p>…And there are more interesting tid-bits in there too:</p><p>• See how I’m pushing Kitten’s Streaming HTML to its logical conclusion and streaming JavaScript from the server to the client to keep all logic on the server while implementing a client-side feature (copy to clipboard): <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/CopyButton.component.js" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/CopyButton.component.js</span></a></p><p>• Following on from that, note how the Toast component that’s triggered when something is copied looks (under the hood, Streaming HTML is htmx + WebSockets + some Kitten-specific magic and glues it all together and adds syntactic sugar): <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/Toast.fragment.js" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/Toast.fragment.js</span></a></p><p>• Finally, check out how layout components and slots work: <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/Site.layout.js" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/Site.layout.js</span></a></p><p>I think that’s all the intersting stuff I can spot at the moment.</p><p>Have fun!</p><p>:kitten:💕</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallTechnologyFoundation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTechnologyFoundation</span></a> <a href="https://mastodon.ar.al/tags/LookOverThere" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LookOverThere</span></a> <a href="https://mastodon.ar.al/tags/code" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>code</span></a> <a href="https://mastodon.ar.al/tags/StreamingHTML" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>StreamingHTML</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/websockets" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>websockets</span></a> <a href="https://mastodon.ar.al/tags/nodeJS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nodeJS</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a></p>
Aral Balkan<p>You can really get a feel for what authoring a simple web app is like in Kitten (with the latest techniques/features), by checking out the source code for Look Over There!, the multi-site forwarding app with TLS forwarding support that I built recently:</p><p><a href="https://codeberg.org/small-web/look-over-there" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there</span></a></p><p>There’s an instance of it I’m hosting for us at <a href="https://look-over-there.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">look-over-there.small-web.org</span><span class="invisible"></span></a> to forward our archived sites – e.g., <a href="https://web0.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">web0.small-web.org</span><span class="invisible"></span></a> – to archive.org so we don’t break links on the web.</p><p>If you want to run it locally, install Kitten (<a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a>) and then type: kitten run <a href="https://codeberg.org/small-web/look-over-there.git" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there.git</span></a> (you can also clone the git repo manually and just run kitten from the working directory).</p><p>Interesting places to look:</p><p>• The index page (shows use of a Markdown page that imports and uses Kitten components) <a href="https://codeberg.org/small-web/look-over-there/raw/branch/main/index.page.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/raw/branch/main/index.page.md</span></a></p><p>• The admin page (notice the lock emoji at the end of the name? That’s all you need to add to a route to make use of Kitten’s automatic authentication. Since every Kitten site/app is protected by public-key encryption and we don’t have the concept of users (each site/app on the Small Web is owned by one person), the whole process can be automated for you. <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/admin%F0%9F%94%92.page.js" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/admin%F0%9F%94%92.page.js</span></a></p><p>• The Redirection component. This is what does all the hard work on the admin page. Along with the admin page, they showcase Kitten’s new/alternative (and as-of-yet mostly undocumented) class-based component model with event bubbling on the component hierarchy on the server. (Since this is resource intensive, it’s recommended you use it only when implementing authenticated routes where you’re sure only the site’s owner will be accessing the route.) <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/Redirection.component.js" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/Redirection.component.js</span></a></p><p>In any case, as Kitten and the rest of the Small Web ecosystem matures further, I’ll be documenting all this better and there will be even more examples and tutorials but, in case you’re one of those inquisitive types and you want to see what web development can be like if you’re *not* building centralised people farming machinery for Big Tech, have a play with Kitten.</p><p>:kitten:💕</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallTechnologyFoundation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTechnologyFoundation</span></a> <a href="https://mastodon.ar.al/tags/LookOverThere" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LookOverThere</span></a> <a href="https://mastodon.ar.al/tags/code" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>code</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a></p>
Aral Balkan<p>TL;DR: I’m excited about recent developments with the Small Web project. It’s all coming together 💕 </p><p>***</p><p>The way I approach what I’m building with the Small Web is quite intuitive. I’ve been making things with computers since I was seven years old so it’s not work or a profession for me – it’s just something I’ve always done. And with what I’m building now – which is likely what I’ll be working on for the rest of my life – I’m giving myself the room to let the project breathe. If some foundational piece I need is not quite there yet, I’m OK spending a few years working on a different part of the project. It’s not easy to do financially to keep something like this going for six years now but I don’t know any other way to let it be what it can be.</p><p>And it is starting to pay off. </p><p>Just read an exciting announcement lower in the stack that means lots of extra work for me but will drastically improve the ease of getting started and the decentralisation properties of the Small Web. And another development that has taken a few years to come about independently (although this time prodded by yours truly) will mean Small Web places require zero admin.</p><p>Also, because of these developments – and with Laura’s help in brainstorming this morning – I believe we finally have the names of the three components just right.</p><p>Look forward to hearing lots of details about all this in the coming days and months.</p><p>Since the changes I need to make are tied to the timeline of a third party, this means the Kitten hosting service and the peer-to-peer personal social web app written in Kitten (both of which now have their final names, which I’ll announce properly later) will launch in 2026.</p><p>Just a quick update to let you know where we are with the Small Web project.</p><p>PS. If you want to support our work, please consider becoming a patron: <a href="https://small-tech.org/fund-us/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">small-tech.org/fund-us/</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/statusUpdate" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>statusUpdate</span></a></p>
Aral Balkan<p>New Kitten Release 🥳</p><p>To OCSP¹ or not to OCSP…</p><p>• Turns on OCSP support in the server only if the site’s certificate has the OCSP stapling extension.</p><p>This is to support both servers that still have OCSP stapling in their certs as well as new ones that don’t. (Let’s Encrypt sunset OCSP support yesterday and there is a transitionary period where Kitten servers will have both types of certificates. This update is to ensure we support both without issues.)</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>Also updated, if you’re interested in playing lower in the stack:</p><p>• @small-tech/https: <a href="https://codeberg.org/small-tech/https" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">codeberg.org/small-tech/https</span><span class="invisible"></span></a><br>• @small-tech/auto-encrypt: <a href="https://codeberg.org/small-tech/auto-encrypt" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-tech/auto-e</span><span class="invisible">ncrypt</span></a></p><p>Enjoy!<br>:kitten:💕</p><p>¹ Online Certificate Status Protocol (<a href="https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">en.wikipedia.org/wiki/Online_C</span><span class="invisible">ertificate_Status_Protocol</span></a>). Yes, I hate abbreviations too :)</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/KittenRelease" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>KittenRelease</span></a> <a href="https://mastodon.ar.al/tags/TLS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TLS</span></a> <a href="https://mastodon.ar.al/tags/OCSP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OCSP</span></a> <a href="https://mastodon.ar.al/tags/OCSPStapling" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OCSPStapling</span></a> <a href="https://mastodon.ar.al/tags/LetsEncrypt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LetsEncrypt</span></a></p>
Jan Penfrat<p><a href="https://eupolicy.social/tags/DigitalSovereignty" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>DigitalSovereignty</span></a> doesn't mean tech for sovereign nations, it means tech for sovereign people.</p><p>Tech in the hands of a European billionaire class is hardly any better than what we have now.</p><p>Free it up, give people control, open source it, decentralise it, remove choke points and gatekeepers, encrypt all the things, remove the <a href="https://eupolicy.social/tags/SurveillanceAds" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SurveillanceAds</span></a> industry from the equation, enable <a href="https://eupolicy.social/tags/SelfHosting" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SelfHosting</span></a> and <a href="https://eupolicy.social/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a>. And then let's talk <a href="https://eupolicy.social/tags/GoEuropean" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GoEuropean</span></a>.</p>
Aral Balkan<p>New Kitten Release 🎉</p><p>• Improved instructions for adding a git webhook on Codeberg in Kitten Settings → App.</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>Enjoy!</p><p>:kitten:💕</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/KittenRelease" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>KittenRelease</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a> <a href="https://mastodon.ar.al/tags/git" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>git</span></a> <a href="https://mastodon.ar.al/tags/webhook" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>webhook</span></a> <a href="https://mastodon.ar.al/tags/Codeberg" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Codeberg</span></a> <a href="https://mastodon.ar.al/tags/Forgejo" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Forgejo</span></a></p>