{"generator":"GNU social 2.0.2-dev","title":"Conversation","totalItems":1,"items":[{"actor":{"id":"https:\/\/mastodon.ar.al\/users\/aral","displayName":"Aral Balkan","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/4627-original-tmp20250906070226.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/4627-96-20250906071718.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/4627-48-20250906071718.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/4627-24-20250906071718.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"4627"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/4627-96-20250906071718.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"Social oncologist. I make small things.Unapologetically anti-genocide.Warning: May not fit your taxonomy.From Gaza? If you need to get verified, please go here: https:\/\/gaza-verified.org\/join\/Want to donate to people in Gaza? Please see https:\/\/gaza-verified.org\/donate\/My posts are licensed under Creative Commons Attribution-NonCommercial-ShareAlike (https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/)\ud83c\udf49\ud83c\udf3b \ud83c\udff3\ufe0f\u200d\ud83c\udf08 \ud83c\udff3\ufe0f\u200d\u26a7\ufe0f#SmallWeb #SmallTech #web #tech #privacy #humanRights #personhood #democracy #aral #fedi22 #searchable","url":"https:\/\/mastodon.ar.al\/@aral","portablecontacts_net":{"preferredUsername":"aral","displayName":"Aral Balkan","note":"Social oncologist. I make small things.Unapologetically anti-genocide.Warning: May not fit your taxonomy.From Gaza? If you need to get verified, please go here: https:\/\/gaza-verified.org\/join\/Want to donate to people in Gaza? Please see https:\/\/gaza-verified.org\/donate\/My posts are licensed under Creative Commons Attribution-NonCommercial-ShareAlike (https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/)\ud83c\udf49\ud83c\udf3b \ud83c\udff3\ufe0f\u200d\ud83c\udf08 \ud83c\udff3\ufe0f\u200d\u26a7\ufe0f#SmallWeb #SmallTech #web #tech #privacy #humanRights #personhood #democracy #aral #fedi22 #searchable"}},"content":"<p>\ud83d\udc4b\ud83e\udd13 Goodbye Site.js, Hello Kitten!<\/p><p>I started working on creating a Small Web\u00b9 server (a peer-to-peer Web server) six years ago\u00b2 with Site.js.<\/p><p>Building Site.js was my first attempt. And it resulted in:<\/p><p>\u2022 Auto Encrypt (automatic Let\u2019s Encrypt certificates): <a href=\"https:\/\/codeberg.org\/small-tech\/auto-encrypt\" rel=\"nofollow noreferrer\">https:\/\/codeberg.org\/small-tech\/auto-encrypt<\/a><\/p><p>\u2022 Auto Encrypt Localhost (automatic localhost TLS certificates): <a href=\"https:\/\/codeberg.org\/small-tech\/auto-encrypt-localhost\" rel=\"nofollow noreferrer\">https:\/\/codeberg.org\/small-tech\/auto-encrypt-localhost<\/a><\/p><p>\u2022 @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 noreferrer\">https:\/\/codeberg.org\/small-tech\/https<\/a><\/p><p>\u2022 JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: <a href=\"https:\/\/codeberg.org\/small-tech\/jsdb\" rel=\"nofollow noreferrer\">https:\/\/codeberg.org\/small-tech\/jsdb<\/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\u2019ve sunset Site.js:<\/p><p><a href=\"https:\/\/sitejs.org\" rel=\"nofollow noreferrer\">https:\/\/sitejs.org<\/a><\/p><p>For its successor, please see Kitten:<\/p><p><a href=\"https:\/\/kitten.small-web.org\" rel=\"nofollow noreferrer\">https:\/\/kitten.small-web.org<\/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 noreferrer\">https:\/\/small-tech.org\/fund-us<\/a><\/p><p>:kitten:\ud83d\udc95<\/p><p>\u00b9 <a href=\"https:\/\/ar.al\/2024\/06\/24\/small-web-computer-science-colloquium-at-university-of-groningen\/\" rel=\"nofollow noreferrer\">https:\/\/ar.al\/2024\/06\/24\/small-web-computer-science-colloquium-at-university-of-groningen\/<\/a><br \/>\u00b2 <a href=\"https:\/\/ar.al\/2019\/08\/26\/introducing-small-technology-foundation\/\" rel=\"nofollow noreferrer\">https:\/\/ar.al\/2019\/08\/26\/introducing-small-technology-foundation\/<\/a><\/p><p><a href=\"https:\/\/mastodon.ar.al\/tags\/SiteJS\" class=\"mention hashtag\" rel=\"tag\">#SiteJS<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/SmallWeb\" class=\"mention hashtag\" rel=\"tag\">#SmallWeb<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/SmallTech\" class=\"mention hashtag\" rel=\"tag\">#SmallTech<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/peerToPeerWeb\" class=\"mention hashtag\" rel=\"tag\">#peerToPeerWeb<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/SmallTechnologyFoundation\" class=\"mention hashtag\" rel=\"tag\">#SmallTechnologyFoundation<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/AutoEncrypt\" class=\"mention hashtag\" rel=\"tag\">#AutoEncrypt<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/AutoEncryptLocalhost\" class=\"mention hashtag\" rel=\"tag\">#AutoEncryptLocalhost<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/JSDB\" class=\"mention hashtag\" rel=\"tag\">#JSDB<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/JavaScriptDatabase\" class=\"mention hashtag\" rel=\"tag\">#JavaScriptDatabase<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/https\" class=\"mention hashtag\" rel=\"tag\">#https<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/TLS\" class=\"mention hashtag\" rel=\"tag\">#TLS<\/a><\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-26:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.ar.al\/users\/aral\/statuses\/114573816979456806","object":{"id":"https:\/\/mastodon.ar.al\/users\/aral\/statuses\/114573816979456806","objectType":"note","content":"<p>\ud83d\udc4b\ud83e\udd13 Goodbye Site.js, Hello Kitten!<\/p><p>I started working on creating a Small Web\u00b9 server (a peer-to-peer Web server) six years ago\u00b2 with Site.js.<\/p><p>Building Site.js was my first attempt. And it resulted in:<\/p><p>\u2022 Auto Encrypt (automatic Let\u2019s Encrypt certificates): <a href=\"https:\/\/codeberg.org\/small-tech\/auto-encrypt\" rel=\"nofollow noreferrer\">https:\/\/codeberg.org\/small-tech\/auto-encrypt<\/a><\/p><p>\u2022 Auto Encrypt Localhost (automatic localhost TLS certificates): <a href=\"https:\/\/codeberg.org\/small-tech\/auto-encrypt-localhost\" rel=\"nofollow noreferrer\">https:\/\/codeberg.org\/small-tech\/auto-encrypt-localhost<\/a><\/p><p>\u2022 @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 noreferrer\">https:\/\/codeberg.org\/small-tech\/https<\/a><\/p><p>\u2022 JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: <a href=\"https:\/\/codeberg.org\/small-tech\/jsdb\" rel=\"nofollow noreferrer\">https:\/\/codeberg.org\/small-tech\/jsdb<\/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\u2019ve sunset Site.js:<\/p><p><a href=\"https:\/\/sitejs.org\" rel=\"nofollow noreferrer\">https:\/\/sitejs.org<\/a><\/p><p>For its successor, please see Kitten:<\/p><p><a href=\"https:\/\/kitten.small-web.org\" rel=\"nofollow noreferrer\">https:\/\/kitten.small-web.org<\/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 noreferrer\">https:\/\/small-tech.org\/fund-us<\/a><\/p><p>:kitten:\ud83d\udc95<\/p><p>\u00b9 <a href=\"https:\/\/ar.al\/2024\/06\/24\/small-web-computer-science-colloquium-at-university-of-groningen\/\" rel=\"nofollow noreferrer\">https:\/\/ar.al\/2024\/06\/24\/small-web-computer-science-colloquium-at-university-of-groningen\/<\/a><br \/>\u00b2 <a href=\"https:\/\/ar.al\/2019\/08\/26\/introducing-small-technology-foundation\/\" rel=\"nofollow noreferrer\">https:\/\/ar.al\/2019\/08\/26\/introducing-small-technology-foundation\/<\/a><\/p><p><a href=\"https:\/\/mastodon.ar.al\/tags\/SiteJS\" class=\"mention hashtag\" rel=\"tag\">#SiteJS<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/SmallWeb\" class=\"mention hashtag\" rel=\"tag\">#SmallWeb<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/SmallTech\" class=\"mention hashtag\" rel=\"tag\">#SmallTech<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/peerToPeerWeb\" class=\"mention hashtag\" rel=\"tag\">#peerToPeerWeb<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/SmallTechnologyFoundation\" class=\"mention hashtag\" rel=\"tag\">#SmallTechnologyFoundation<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/AutoEncrypt\" class=\"mention hashtag\" rel=\"tag\">#AutoEncrypt<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/AutoEncryptLocalhost\" class=\"mention hashtag\" rel=\"tag\">#AutoEncryptLocalhost<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/JSDB\" class=\"mention hashtag\" rel=\"tag\">#JSDB<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/JavaScriptDatabase\" class=\"mention hashtag\" rel=\"tag\">#JavaScriptDatabase<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/https\" class=\"mention hashtag\" rel=\"tag\">#https<\/a> <a href=\"https:\/\/mastodon.ar.al\/tags\/TLS\" class=\"mention hashtag\" rel=\"tag\">#TLS<\/a><\/p>","url":"https:\/\/mastodon.ar.al\/@aral\/114573816979456806","status_net":{"notice_id":null},"tags":[{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"autoencrypt"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"autoencryptlocalhost"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"https"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"javascriptdatabase"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"jsdb"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"peertopeerweb"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"smalltech"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"smalltechnologyfoundation"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"smallweb"},{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"tls"}]},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-05-26:objectType=thread:nonce=29bb4dadbcba479c","notice_info":{"local_id":"10013022","source":"ActivityPub"}},"published":"2025-05-26T11:09:11+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.ar.al\/@aral\/114573816979456806"}],"links":[{"url":"https:\/\/gnusocial.jp\/conversation\/5104485","rel":"alternate","type":"text\/html"}]}