๐ฌ๐ง Switching from Deno compile to Bun build --compile reduced single binary size by ~89%, making distribution much more efficient for OSS tools. ๐ฐ๐ท Deno์์ Bun์ผ๋ก ์ ํํ๋ ์ฑ๊ธ ๋ฐ์ด๋๋ฆฌ ํฌ๊ธฐ๊ฐ ์ฝ 89% ๊ฐ์. OSS ๋๊ตฌ ๋ฐฐํฌ๊ฐ ํจ์ฌ ํจ์จ์ ์ผ๋ก ๊ฐ์ ๋จ.
๐ฌ๐ง Switching from Deno compile to Bun build reduced single binary size by 9x for OSS tool Rulesync - exploring why the difference is so dramatic ๐ฐ๐ท Deno ์ปดํ์ผ์์ Bun ๋น๋๋ก ์ ํํด ์ฑ๊ธ ๋ฐ์ด๋๋ฆฌ ํฌ๊ธฐ๊ฐ 9๋ฐฐ ๊ฐ์ - OSS ๋๊ตฌ Rulesync์์ ๊ทน์ ์ธ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ด์ ํ๊ตฌ
#BotKit is a #TypeScript framework for building #ActivityPub bots. The difference from typical Mastodon/Misskey bots? Your bot runs as its own independent serverโno platform account needed.
This means no character limits, no rate limiting headaches, no API restrictions.
#BotKit is a #TypeScript framework for building #ActivityPub bots. The difference from typical Mastodon/Misskey bots? Your bot runs as its own independent serverโno platform account needed.
This means no character limits, no rate limiting headaches, no API restrictions.
Ah, found the culprit. It was one of the spots where I told the program to do nothing later. Turns out my wording was slightly off.
Before:
return new Promise(() => {});
After:
return Promise.resolve(null);
The number of concurrent connections looks negligible now, and no more timeouts either. Calling it a success for tonight, we'll see how things look in the morning. ๐ฅฑ
As underwhelming as the cause is, that journey might deserve a blog post if I find the time!
Exciting news for #Fedify developers! We've just landed a major milestone for Fedify 2.0โthe #CLI now runs natively on #Node.js and #Bun, not just #Deno (#456). If you install @fedify/cli@2.0.0-dev.1761 from npm, you'll get actual JavaScript that executes directly in your runtime, no more pre-compiled binaries from deno compile. This is part of our broader transition to Optique, a new cross-runtime CLI framework we've developed specifically for Fedify's needs (#374).
This change means a more natural development experience regardless of your #JavaScript runtime preference. Node.js developers can now run the CLI tools directly through their familiar ecosystem, and the same goes for Bun users. While Fedify 2.0 isn't released yet, we're excited to share this progress with the communityโfeel free to try out the dev version and let us know how it works for you!
We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as #BotKit now supports #Node.js alongside #Deno, making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred #JavaScript runtime while building #ActivityPub#bots with the same powerful BotKit APIs.
One of the most requested features has landed: poll support! You can now create interactive polls in your #bot messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question objects with proper expiration times, and your bot can react to votes through the new onVote event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major #fediverse platforms like Mastodon and Misskey.
The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom๊ฐ๋ฐ๊ณฐ)! The /followers route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.
For developers looking for alternative storage backends, we've introduced the SqliteRepository through the new @fedify/botkit-sqlite package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository module offers MemoryCachedRepository for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.
This release also includes an important security update: we've upgraded to #Fedify 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions, RepositoryGetFollowersOptions, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls option, providing more flexibility for custom implementations.
A simple, cross-runtime email library that works seamlessly on #Deno, #Node.js, #Bun, and edge functions. Zero dependencies, unified API, and excellent testability with built-in mock transport.
It's been 30 years we have #Javascript. So much in technology has changed in that time. It's kind of amazing how much the language and the broader web helped shape the world.
#deno post on the history of Javascript really cements this. Can't believe it's been that long. ๐
We're migrating Hackers' Pub to a pretty unconventional tech stack, and I'm honestly excited about it!
Thanks to my friend @xiniha, we're diving into #Solid, #SolidStart, #Pothos, #GraphQL, and #Relay. In a world dominated by Next.js and React, this feels refreshingly different. And yes, we're sticking with #Deno instead of Node.js too.
Some might call it contrarian, but I like to think of it as exploring what's possible beyond the mainstream. Sometimes the road less traveled leads to interesting places.
since multiple hours I was sleepless cause I wondered about how to store anything ActivityPub in #deno#kv
I think, I will finish this crazy code somewhen in the next days :) Would you be interested in such a thing?
If: Tried to solve the following fully ActivityPub conformant, meaning e.g. - multiple actors can do an action on multiple objects and it needs to be fully versioned cause Undo or Undo/Undo โฆ - so anything is RFC 6902 <-> kv where anything is ulid and the "version" for the object is the ulid of an Update/Undo etc. - JSON Patch acknowledges the limits (e.g. size of kv values), any property is stored versioned - strongly avoiding duplicates; the "text properties" like contentMap are stored as cid and similar beneath each other by a numeric nilsimsa hash (though /me bad at math) - we can query all relationships and - additionally "where", "when", "what" questions are answered by geohash, ulid ranges or a specific hierarchic hash of as:- and our subtypes
Simplify debugging with Deno and @opentelemetry โ logs associated with requests โ immediate traces and metrics โ works on Node.js backends without any additional code or config โจ
#Fedify is an #ActivityPub server framework in #TypeScript & #JavaScript. It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.
The key features it provides currently are:
โข Type-safe objects for Activity Vocabulary (including some vendor-specific extensions) โข #WebFinger client and server โข HTTP Signatures โข Middleware for handling webhooks โข #NodeInfo protocol โข #Node.js, #Deno, and #Bun support โข CLI toolchain for testing and debugging
If you're curious, take a look at the Fedify website! There's comprehensive docs, a demo, a tutorial, example code, and more:
Data analysis in Jupyter notebooks with... TypeScript?! ๐ฑ โ using `fetch` and other web standards โ fast dataframes with nodejs-polars โ easy charts with @observablehqObservable โ rich interactive UIs with JavaScript
Do you have any suggestions, tips, opinions, dos, donโts about headless CMSes?
I have a growing list of small/mid non-profits and collectives asking for my help to (re)make their website. I totally want to help, but I donโt have much time, especially considering that they generally have little or no fundingโI would most definitely point them to @VillageOneCoopVillage One Cooperative, otherwise.
Therefore, I want a super simple and replicable solution where I can copy-paste most of the code, while providing them with a stable, fast, and modern solution. I had a look at the Headless CMS section in the Jamstack website, but I need opinions from people who actually used some of that software already.