home.social

#peertopeerweb — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #peertopeerweb, aggregated by home.social.

  1. Hah… just noticed something interesting that looks like it’s going to be another advantage to Web Numbers¹… look at these Kitten² screenshots and tell me if you can spot something unexpected.

    Hint: it’s what’s missing.

    There are no 404 errors for common hack attempts trying to exploit WordPress vulnerabilities, etc. In fact, it’s entirely quiet. Because those folks watch DNS :)

    ¹ ar.al/2025/06/25/web-numbers/
    ² kitten.small-web.org/

    #WebNumbers #SmallWeb #peerToPeerWeb #personalWeb #Kitten #SmallTech

  2. Hey, guess what?

    I just saw the first Small Web site (the Kitten Chat example¹ from Kitten²) running at a Web Number³:

    https://91.98.66.193/

    👉 Update: I’m shutting it down in a few moments so it might not be there when you try it :)

    Come say hi (I don’t know how long I’ll keep it on for, will update this when I turn it off.)

    🥳

    PS. This is only in the ip-address-support branch of Kitten right now and should be considered experimental. Will likely make it into main today.

    ¹ codeberg.org/kitten/app/src/br
    ² kitten.small-web.org
    ³ ar.al/2025/06/25/web-numbers/

    #SmallWeb #WebNumbers #SmallTech #peerToPeerWeb #Kitten

  3. So, going forward, Auto Encrypt¹, Kitten², and Catalyst³ will be seamlessly (automatically; with zero config) supporting Web Numbers⁴ (IPv4, IPv6), and, of course, should you want to point one at your server for old time’s sake, legacy domain names too.

    I still have some dev to do on this on the Kitten side of things but I’m hugely excited about being able to remove another centralised component – DNS – from the Small Web⁵ (peer-to-peer, personal web) as we inch nearer to making it available this year to everyday people who use technology as an everyday thing.

    ¹ codeberg.org/small-tech/auto-e
    ² kitten.small-web.org
    ³ catalyst.small-web.org
    ar.al/2025/06/25/web-numbers/
    ar.al/2024/06/24/small-web-com

    #SmallWeb #SmallTech #SmallTechnologyFoundation #peerToPeerWeb #personalWeb #WebNumbers #decentralisation #web #dev #humanRights #democracy

  4. Just added Web Reachability API (at least that’s what I’m calling it) support to ip.small-web.org.

    It’s for testing the reachability of your Small Web servers (using a domain or, more importantly, an IPv4/IPv6 address). I’m using it to implement Web Numbers¹ support in Auto Encrypt² and Kitten³.

    Protocol:

    • At http://<endpoint> return an empty HTTP 200 response that includes the following custom header: 'web-reachability-id': ‘<uuid>'
    • Hit: ip.small-web.org/reach/<endpoint>/<uuid>/
    • If you get a 200 response back, your endpoint is reachable. Anything else signals an error.

    Enjoy! 💕

    ¹ ar.al/2025/06/25/web-numbers/
    ² codeberg.org/small-tech/auto-e
    ³ kitten.small-web.org

    #WebReachabilityAPI #WebNumbers #IpAddresses #reachability #Kitten #AutoEncrypt #SmallWeb #peerToPeerWeb #SmallTech

  5. 🎉 Another quick Node Pebble release (version 5.4.0)

    • Adds short-lived profile support. (Thanks to Aaron Gable for showing me how¹)

    This should help if you’re implementing support for IP-address certificates.

    codeberg.org/small-tech/node-p

    Related: Read up on how the Small Web will launch next year using Web Numbers:

    ar.al/2025/06/25/web-numbers/

    Enjoy! 💕

    ¹ github.com/letsencrypt/pebble/

    #SmallWeb #SmallTech #NodePebble #LetsEncrypt #peerToPeerWeb #WebNumbers

  6. Another quick release, this one adds Alpine.js support for shorthand event handlers.

    Just add a `@` before your shorthand event handler names to have them expanded as inline Alpine.js event handlers.

    e.g., `on:connect` → `@on:connect`

    Enjoy!

    :kitten:💕

    #Kitten #AlpineJS #HTMX #SmallWeb #peerToPeerWeb #web #dev #JavaScript #nodeJS #SmallTech #KittenRelease

  7. 🥳 New Kitten Release

    kitten.small-web.org

    You can now use the simple `on:` prefix instead of `hx-on:htmx:` to define inline event handlers for HTMX events¹.

    Also, there are three new event shorthands for responding to your Kitten page’s connection lifecycle:

    • on:connecting
    • on:connect
    • on:disconnect

    (These expand during render to `hx-on:htmx:ws-connecting.window`, `hx-on:htmx:ws-open.window`, and `hx-on:htmx:ws-close.window`, respectively.)

    These are useful when using Kitten’s Streaming HTML workflow.

    Full change log:
    codeberg.org/kitten/app/src/br

    Enjoy!

    :kitten:💕

    ¹ htmx.org/events/
    ² kitten.small-web.org/tutorials

    #Kitten #SmallWeb #peerToPeerWeb #web #dev #SmallTech #KittenRelease

  8. Guess who misremembered having 25 seconds per slide and instead has 15 seconds per slide on Monday?

    FML! :)

    Goodness, I hate formalistic presentation styles like Ignite. But don’t worry, I’m breaking the form three times in the talk – including starting with a minute of silence for Gaza (that’s four black slides and 1/5th of the 5-minute talk), a transition (ok, it’s a 15-second transition, but still), and a live demo (yep) – and using that to demonstrate the case that we do not have to accept the rigid confines of the status quo, that resistance and sabotage are always options, and that the way things are is just raw materials for the way things can be. That said, constraints are also good so the reduced slide duration will only make my talk more impactful if I edit it down right, it just means more work… and more than one thing can be true at the same time. ;)

    If you’re in Dublin/Ireland and want to drop by, there are no tickets and it’s first-come first-served:

    defuse.ixd.ie

    #DefuseDublin #Dublin #Ireland #IxDA #TheSugarClub #talks #presentations #design #humanRights #democracy #Gaza #Palestine #BigTech #SmallTech #SmallWeb #Kitten #Domain #peerToPeerWeb

  9. Thanking the @letsencrypt 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.

    community.letsencrypt.org/t/ge

    #SmallWeb #security #IPAddresses #WebNumbers #LetsEncrypt #SmallTech #decentralisation #peerToPeerWeb #findability

  10. 👋🤓 Goodbye Site.js, Hello Kitten!

    I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.

    Building Site.js was my first attempt. And it resulted in:

    • Auto Encrypt (automatic Let’s Encrypt certificates): codeberg.org/small-tech/auto-e

    • Auto Encrypt Localhost (automatic localhost TLS certificates): codeberg.org/small-tech/auto-e

    • @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): codeberg.org/small-tech/https

    • JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: codeberg.org/small-tech/jsdb

    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.

    Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:

    sitejs.org

    For its successor, please see Kitten:

    kitten.small-web.org

    If you want to support our work at the Small Technology Foundation, please consider becoming a patron:

    small-tech.org/fund-us

    :kitten:💕

    ¹ ar.al/2024/06/24/small-web-com
    ² ar.al/2019/08/26/introducing-s
    ³ Using our instance of Look Over There!: look-over-there.small-web.org

    #SiteJS #SmallWeb #SmallTech #peerToPeerWeb #SmallTechnologyFoundation #AutoEncrypt #AutoEncryptLocalhost #JSDB #JavaScriptDatabase #https #TLS

  11. 👋🤓 Goodbye Site.js, Hello Kitten!

    I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.

    Building Site.js was my first attempt. And it resulted in:

    • Auto Encrypt (automatic Let’s Encrypt certificates): codeberg.org/small-tech/auto-e

    • Auto Encrypt Localhost (automatic localhost TLS certificates): codeberg.org/small-tech/auto-e

    • @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): codeberg.org/small-tech/https

    • JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: codeberg.org/small-tech/jsdb

    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.

    Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:

    sitejs.org

    For its successor, please see Kitten:

    kitten.small-web.org

    If you want to support our work at the Small Technology Foundation, please consider becoming a patron:

    small-tech.org/fund-us

    :kitten:💕

    ¹ ar.al/2024/06/24/small-web-com
    ² ar.al/2019/08/26/introducing-s
    ³ Using our instance of Look Over There!: look-over-there.small-web.org

    #SiteJS #SmallWeb #SmallTech #peerToPeerWeb #SmallTechnologyFoundation #AutoEncrypt #AutoEncryptLocalhost #JSDB #JavaScriptDatabase #https #TLS

  12. 👋🤓 Goodbye Site.js, Hello Kitten!

    I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.

    Building Site.js was my first attempt. And it resulted in:

    • Auto Encrypt (automatic Let’s Encrypt certificates): codeberg.org/small-tech/auto-e

    • Auto Encrypt Localhost (automatic localhost TLS certificates): codeberg.org/small-tech/auto-e

    • @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): codeberg.org/small-tech/https

    • JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: codeberg.org/small-tech/jsdb

    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.

    Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:

    sitejs.org

    For its successor, please see Kitten:

    kitten.small-web.org

    If you want to support our work at the Small Technology Foundation, please consider becoming a patron:

    small-tech.org/fund-us

    :kitten:💕

    ¹ ar.al/2024/06/24/small-web-com
    ² ar.al/2019/08/26/introducing-s
    ³ Using our instance of Look Over There!: look-over-there.small-web.org

    #SiteJS #SmallWeb #SmallTech #peerToPeerWeb #SmallTechnologyFoundation #AutoEncrypt #AutoEncryptLocalhost #JSDB #JavaScriptDatabase #https #TLS

  13. 👋🤓 Goodbye Site.js, Hello Kitten!

    I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.

    Building Site.js was my first attempt. And it resulted in:

    • Auto Encrypt (automatic Let’s Encrypt certificates): codeberg.org/small-tech/auto-e

    • Auto Encrypt Localhost (automatic localhost TLS certificates): codeberg.org/small-tech/auto-e

    • @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): codeberg.org/small-tech/https

    • JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: codeberg.org/small-tech/jsdb

    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.

    Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:

    sitejs.org

    For its successor, please see Kitten:

    kitten.small-web.org

    If you want to support our work at the Small Technology Foundation, please consider becoming a patron:

    small-tech.org/fund-us

    :kitten:💕

    ¹ ar.al/2024/06/24/small-web-com
    ² ar.al/2019/08/26/introducing-s
    ³ Using our instance of Look Over There!: look-over-there.small-web.org

    #SiteJS #SmallWeb #SmallTech #peerToPeerWeb #SmallTechnologyFoundation #AutoEncrypt #AutoEncryptLocalhost #JSDB #JavaScriptDatabase #https #TLS

  14. 👋🤓 Goodbye Site.js, Hello Kitten!

    I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.

    Building Site.js was my first attempt. And it resulted in:

    • Auto Encrypt (automatic Let’s Encrypt certificates): codeberg.org/small-tech/auto-e

    • Auto Encrypt Localhost (automatic localhost TLS certificates): codeberg.org/small-tech/auto-e

    • @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): codeberg.org/small-tech/https

    • JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: codeberg.org/small-tech/jsdb

    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.

    Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:

    sitejs.org

    For its successor, please see Kitten:

    kitten.small-web.org

    If you want to support our work at the Small Technology Foundation, please consider becoming a patron:

    small-tech.org/fund-us

    :kitten:💕

    ¹ ar.al/2024/06/24/small-web-com
    ² ar.al/2019/08/26/introducing-s
    ³ Using our instance of Look Over There!: look-over-there.small-web.org

    #SiteJS #SmallWeb #SmallTech #peerToPeerWeb #SmallTechnologyFoundation #AutoEncrypt #AutoEncryptLocalhost #JSDB #JavaScriptDatabase #https #TLS

  15. New Kitten Release 🥳

    • New: Any attributes present in a <markdown> tag are now passed to the first rendered element. (This is useful if you want to add some quick inline styles to a <p> that’s rendered from markdown, etc., but for anything more complicated, you should likely just jump into HTML.)

    To learn more about Markdown in Kitten, please see the Markdown reference¹.

    Enjoy!

    :kitten:💕

    ¹ kitten.small-web.org/reference

    #Kitten #SmallWeb #PeerToPeerWeb #KittenRelease #markdown #web #dev

  16. New Kitten Release 🎉

    • Fix: morph attributes¹ now support interpolated values.

    kitten.small-web.org

    Enjoy!

    :kitten:💕

    ¹ The morph attribute is Kitten’s shorthand for the hx-swap-oob attribute of htmx, which Kitten uses – and extends – under the hood. To learn more about it, see Kitten’s Streaming HTML tutorial: kitten.small-web.org/tutorials

    #Kitten #SmallWeb #PeerToPeerWeb #KittenRelease #htmx #hypermedia #web #dev

  17. New Kitten Release 🎉

    kitten.small-web.org

    Added:

    • Support for local redirects and domain redirects (former will eventually have interface in Settings, latter can be programmatically used or, more likely, will be used via a small app I’m about to release next).

    Fixed:

    • Event bubbling in class-based Kitten pages and components is now correctly limited to just the event target if the component’s id starts with Kitten’s automatically generated universally-unique ID for the component.

    • Fixed regular expression matching Kitten components in Markdown pages so it correctly captures self-closing components when followed by components with slotted content.

    • The Kitten-specific trigger() mixin on the client-side WebSocket now correctly adds the contents of the data attribute on the triggering node to the data property received by the server-side event handler. This gives manually-triggered event handlers the same interface as automatically-triggered ones. (Previously it would create a separate `data` object in the received argument.)

    Stay tuned for the a small and useful app release later today for web archiving/combatting link rot :)

    Enjoy!

    #Kitten #SmallWeb #PeerToPeerWeb #KittenRelease #web #dev

  18. A quick demonstration of using the State: Overview page in Kitten’s¹ settings while developing to keep an eye on your event and event listener counts to avoid memory leaks.

    Notice how the events and listeners counts change as I navigate between the People and Settings pages in my Place² node and that they are consistent. If they were rising as I navigated back and forth I’d know I had a memory leak somewhere.

    If you use Kitten’s built-in features (e.g., the `addEventHandler()` method on your `kitten.Component` subclasses, Kitten will handle adding and removing listeners for you automatically during your component’s lifecycle. You can also do so manually in your component’s automatically-called `onConnect()` and `onDisconnect()` event handlers.

    This view is useful during development to ensure you don’t have any memory leaks as pages are loaded and unloaded.

    vimeo.com/1050714714

    ¹ kitten.small-web.org
    ² Place is in early development at the moment (codeberg.org/place/app)

    #Kitten #SmallWeb #SmallTech #demo #developerExperience #developerTools #design #eventModel #events #memory #memoryLeaks #observerPattern #listeners #web #dev #HTML #CSS #JavaScript #NodeJS #server #platform #framework #WebSockets #hypermedia #htmx #StreamingHTML #place #peerToPeer #peerToPeerWeb

  19. So last night, while recording the preview of Kitten’s¹ improved component model², I made a silly mistake (copying raw HTML into a JavaScript function instead of wrapping it in a kitten.html`` tagged template, easy to do when you’re refactoring to pull out components from pages).

    Then, once I figured out what I’d done, I made another one by forgetting to return the value from the function (easy to do when you’re used to using one-line closures as render functions).

    I would have caught both of those so much faster if Kitten had helpful error messages for those two pitfalls. And guess what, this morning, it does :)

    Attached are screenshot showing the before and after error messages.

    Enjoy!

    :kitten:💕

    ¹ kitten.small-web.org
    ² Scroll up the thread to watch the video.

    #Kitten #SmallWeb #PeerToPeerWeb #web #server #framework #platform #design #usability #errorMessages #authoring #dev #JavaScript #HTML #CSS #htmx #hypermedia #WebSocket #StreamingHTML #SmallTech