洪 民憙 (Hong Minhee) :nonbinary:'s avatar

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,114 following1,902 followers

An intersectionalist, feminist, and socialist living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in , , , & . They/them.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

Pinned

@hongminhee@hollo.social

Hello! I'm Hong Minhee (洪 民憙), an open source software engineer in my late 30s, living in Seoul, Korea. I'm bisexual and non-binary (they/them), and an enthusiastic advocate of free/open source software and the fediverse.

I work full-time on @fedify, an ActivityPub server framework in TypeScript, funded by @sovtechfund. I'm also the creator of @hollo, a single-user ActivityPub microblog; @botkit, an ActivityPub bot framework; Hackers' Pub, a fediverse platform for software developers; and LogTape, a logging library for JavaScript and TypeScript.

I have a long interest in East Asian languages (CJK) and Unicode. I post mostly in English here, though occasionally in Japanese or in mixed-script Korean (國漢文混用體), a traditional writing style that interleaves Chinese characters with the native Korean alphabet. Wanting to write in that style was actually one of the reasons I joined the fediverse. Feel free to talk to me in English, Korean, Japanese, or even Literary Chinese!

en.wikipedia.org

Korean mixed script - Wikipedia

Pinned

はじめまして!ソウル在住の30代後半のオープンソースソフトウェアエンジニア、洪 民憙ホン・ミンヒと申します。バイセクシュアル(bisexual)・ノンバイナリー(non-binary)で、自由・オープンソースソフトウェア(F/OSS)とフェディバース(fediverse)の熱烈な支持者です。

STF(@sovtechfund)の支援を受け、TypeScript用ActivityPubサーバーフレームワーク「@fedify」の開発に専念しています。他にも、おひとり様向けのActivityPubマイクロブログ「@hollo」、ActivityPubボットフレームワーク「@botkit」、ソフトウェア開発者向けフェディバースプラットフォームHackers' Pub、JavaScript・TypeScript用ロギングライブラリLogTapeなどの制作者でもあります。

東アジア言語(いわゆるCJK)とUnicodeにも興味があります。このアカウントでは主に英語で投稿していますが、時々日本語や国漢文混用体(漢字ハングル混じり文)の韓国語でも書いています。実はこの文体で書きたくてフェディバースを始めた、という経緯もあります。日本語、英語、韓国語、漢文でも気軽に話しかけてください!

speakerdeck.com

国漢文混用体からHolloまで

本発表では、韓国語の「国漢文混用体」(漢字ハングル混じり文)を自分のフェディバース投稿に実装したいという小さな目標から始まった旅路を共有します。 この目標を達成するために、ActivityPubのJSON-LDの複雑さやHTTP Signatures、WebFingerなどの仕様を理解する必要性に…

Pinned

安寧(안녕)하세요! 저는 서울에 살고 있는 30() 後半(후반)의 오픈 소스 소프트웨어 엔지니어 洪民憙(홍민희)입니다. 兩性愛者(양성애자)(bisexual)이자 논바이너리(non-binary)이며, 自由(자유)·오픈 소스 소프트웨어(F/OSS)와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)이기도 합니다.

STF(@sovtechfund)의 支援(지원)을 받아 TypeScript() ActivityPub 서버 프레임워크 @fedify 開發(개발)專業(전업)으로 ()하고 있습니다. 그 ()에도 싱글 유저() ActivityPub 마이크로블로그 @hollo, ActivityPub 봇 프레임워크 @botkit, 소프트웨어 開發者(개발자)를 위한 聯合宇宙(연합우주) 플랫폼 Hackers' Pub, JavaScript·TypeScript() 로깅 라이브러리 LogTape ()製作者(제작자)이기도 합니다.

()아시아 言語(언어)(이른바 CJK)와 Unicode에도 關心(관심)이 많습니다. 이 計定(계정)에서는 ()英語(영어)로 포스팅하지만, 때때로 日本語(일본어)國漢文混用體(국한문 혼용체) 韓國語(한국어)로도 씁니다. 聯合宇宙(연합우주)에 오게 된 動機(동기) () 하나가 바로 國漢文混用體(국한문 혼용체)로 글을 쓰고 싶었기 때문이기도 하고요. 韓國語(한국어), 英語(영어), 日本語(일본어), 아니면 漢文(한문)으로도 말을 걸어주세요!

logtape.org

LogTape

Unobtrusive logging library with zero dependencies—library-first design for Deno, Node.js, Bun, browsers, and edge functions

@dampuzakura@fedibird.com

Windowsで作られたZIPを解凍するとLinuxでファイル名文字化けすることとかよくある

@hongminhee@hollo.social

ところで、まだSHIFT-JISでエンコードされたウェブページが存在するんだね。Yoyakが上手く行かないので、UTF-8以外のコードにも対応する様にパッチを当てた。

https://nokinoki.net/@solonoki/113960324817970063

nokinoki.net

ノキ (@solonoki@nokinoki.net)

「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表:Innovative Tech - ITmedia NEWS 「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表:Innovative Tech - ITmedia NEWS https://search.app/tdjgSFwW93eRnAtRA これおもろいな。今日の論文読みはこれにするか。

@solonoki@nokinoki.net

「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表:Innovative Tech - ITmedia NEWS 「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表:Innovative Tech - ITmedia NEWS search.app/tdjgSFwW93eRnAtRA

これおもろいな。今日の論文読みはこれにするか。

itmedia.co.jp

「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表

筑波大学と琉球大学に所属する研究者らは、「は」直後の読点の打ち方を調査した研究報告を発表した。

@solonoki@nokinoki.net

「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表:Innovative Tech - ITmedia NEWS 「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表:Innovative Tech - ITmedia NEWS search.app/tdjgSFwW93eRnAtRA

これおもろいな。今日の論文読みはこれにするか。

itmedia.co.jp

「は」の直後に「、」は必要か? 論文60本を分析、使い分けの基準を提示 筑波大と琉球大が発表

筑波大学と琉球大学に所属する研究者らは、「は」直後の読点の打ち方を調査した研究報告を発表した。

@geeknews_bot@sns.lemondouble.com

Show GN: Yoyak: LLM 기반의 간단한 웹페이지 요약 CLI
------------------------------
반나절 정도 투자하여 LLM 기반의 간단한 웹페이지 요약 도구를 CLI 앱으로 만들어서 공개해 봅니다. 사용한 기술은 Deno, LangChain.js, cheer-reader (Readability.js의 대체품) 정도인 것 같네요.

설치하려면 Deno가 필요합니다:

```
deno install --global --allow-net --allow-env jsr:
@hongminhe...
------------------------------
https://news.hada.io/topic?id=19089&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

news.hada.io

Yoyak: LLM 기반의 간단한 웹페이지 요약 CLI | GeekNews

반나절 정도 투자하여 LLM 기반의 간단한 웹페이지 요약 도구를 CLI 앱으로 만들어서 공개해 봅니다. 사용한 기술은 Deno, LangChain.js, cheer-reader (Readability.js의 대체품) 정도인 것 같네요.설치하려면 Deno가 필요합니다:deno install --global --allow-net --allow-env jsr:@

BotKit, a framework that allows you to create a standalone ActivityPub bot without a Mastodon or Misskey account, has released version 0.1.0!

https://hollo.social/@botkit/0194dc00-9f3c-7fc4-a25f-3645a5966930

hollo.social

🎉 Announcing [BotKit 0.1.0](h…

🎉 Announcing [BotKit 0.1.0](https://jsr.io/@fedify/botkit@0.1.0): A new framework for creating ActivityPub bots! We're thrilled to announce the initial release of #BotKit, a #TypeScript framework that makes creating standalone #ActivityPub bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file! Key features: - 🔋 Standalone bot creation—no need for a Mastodon/Misskey account - 🧩 Simple, developer-friendly API - 🚀 Easy deployment on [Deno Deploy](https://botkit.fedify.dev/deploy/deno-deploy), [Fly.io](https://botkit.fedify.dev/deploy/docker#deploying-to-fly-io), [Railway](https://botkit.fedify.dev/deploy/docker#deploying-to-railway), or [your own server](https://botkit.fedify.dev/deploy/self-hosting) - :fedify: Powered by @fedify@hollo.social for robust ActivityPub protocol handling Getting started is as simple as: ``` deno add jsr:@fedify/botkit@^0.1.0 ``` Here's a quick example of a weather bot: ``` const kv = await Deno.openKv(); const bot = createBot<void>({ username: "weatherbot", name: "Seoul Weather Bot", summary: text`I post daily weather updates for Seoul!`, kv: new DenoKvStore(kv), queue: new DenoKvMessageQueue(kv), }); // Reply to mentions bot.onMention = async (session, message) => { await message.reply(text`Current temperature in Seoul is 18°C!`); }; // Post scheduled updates const session = bot.getSession("https://weather.example.com"); setInterval(async () => { await session.publish( text`Seoul Weather Update 🌡️ Current: 18°C Humidity: 65% Forecast: Clear skies ☀️` ); }, 1000 * 60 * 60); // Hourly updates ``` While BotKit currently supports #Deno, we're working on bringing Node.js and Bun support in future releases. Ready to create your first fediverse bot? Check out our docs at <https://botkit.fedify.dev/> to get started! 🚀 #fedidev

@botkit@hollo.social

🎉 Announcing BotKit 0.1.0: A new framework for creating ActivityPub bots!

We're thrilled to announce the initial release of , a framework that makes creating standalone bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file!

Key features:

  • 🔋 Standalone bot creation—no need for a Mastodon/Misskey account
  • 🧩 Simple, developer-friendly API
  • 🚀 Easy deployment on Deno Deploy, Fly.io, Railway, or your own server
  • :fedify: Powered by @fedify for robust ActivityPub protocol handling

Getting started is as simple as:

deno add jsr:@fedify/botkit@^0.1.0

Here's a quick example of a weather bot:

const kv = await Deno.openKv();

const bot = createBot<void>({
  username: "weatherbot",
  name: "Seoul Weather Bot",
  summary: text`I post daily weather updates for Seoul!`,
  kv: new DenoKvStore(kv),
  queue: new DenoKvMessageQueue(kv),
});

// Reply to mentions
bot.onMention = async (session, message) => {
  await message.reply(text`Current temperature in Seoul is 18°C!`);
};

// Post scheduled updates
const session = bot.getSession("https://weather.example.com");
setInterval(async () => {
  await session.publish(
    text`Seoul Weather Update 🌡️
    Current: 18°C
    Humidity: 65%
    Forecast: Clear skies ☀️`
  );
}, 1000 * 60 * 60); // Hourly updates

While BotKit currently supports , we're working on bringing Node.js and Bun support in future releases.

Ready to create your first fediverse bot? Check out our docs at https://botkit.fedify.dev/ to get started! 🚀

botkit.fedify.dev

BotKit by Fedify

A framework for creating your ActivityPub bots

MastodonやMisskeyのアカウント無しで独自のActivityPubのボットを作る事が出来るフレームワークであるBotKitが0.1.0バージョンをリリースしました!

https://hollo.social/@botkit/0194dc00-9f3c-7fc4-a25f-3645a5966930

hollo.social

🎉 Announcing [BotKit 0.1.0](h…

🎉 Announcing [BotKit 0.1.0](https://jsr.io/@fedify/botkit@0.1.0): A new framework for creating ActivityPub bots! We're thrilled to announce the initial release of #BotKit, a #TypeScript framework that makes creating standalone #ActivityPub bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file! Key features: - 🔋 Standalone bot creation—no need for a Mastodon/Misskey account - 🧩 Simple, developer-friendly API - 🚀 Easy deployment on [Deno Deploy](https://botkit.fedify.dev/deploy/deno-deploy), [Fly.io](https://botkit.fedify.dev/deploy/docker#deploying-to-fly-io), [Railway](https://botkit.fedify.dev/deploy/docker#deploying-to-railway), or [your own server](https://botkit.fedify.dev/deploy/self-hosting) - :fedify: Powered by @fedify@hollo.social for robust ActivityPub protocol handling Getting started is as simple as: ``` deno add jsr:@fedify/botkit@^0.1.0 ``` Here's a quick example of a weather bot: ``` const kv = await Deno.openKv(); const bot = createBot<void>({ username: "weatherbot", name: "Seoul Weather Bot", summary: text`I post daily weather updates for Seoul!`, kv: new DenoKvStore(kv), queue: new DenoKvMessageQueue(kv), }); // Reply to mentions bot.onMention = async (session, message) => { await message.reply(text`Current temperature in Seoul is 18°C!`); }; // Post scheduled updates const session = bot.getSession("https://weather.example.com"); setInterval(async () => { await session.publish( text`Seoul Weather Update 🌡️ Current: 18°C Humidity: 65% Forecast: Clear skies ☀️` ); }, 1000 * 60 * 60); // Hourly updates ``` While BotKit currently supports #Deno, we're working on bringing Node.js and Bun support in future releases. Ready to create your first fediverse bot? Check out our docs at <https://botkit.fedify.dev/> to get started! 🚀 #fedidev

@botkit@hollo.social

🎉 Announcing BotKit 0.1.0: A new framework for creating ActivityPub bots!

We're thrilled to announce the initial release of , a framework that makes creating standalone bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file!

Key features:

  • 🔋 Standalone bot creation—no need for a Mastodon/Misskey account
  • 🧩 Simple, developer-friendly API
  • 🚀 Easy deployment on Deno Deploy, Fly.io, Railway, or your own server
  • :fedify: Powered by @fedify for robust ActivityPub protocol handling

Getting started is as simple as:

deno add jsr:@fedify/botkit@^0.1.0

Here's a quick example of a weather bot:

const kv = await Deno.openKv();

const bot = createBot<void>({
  username: "weatherbot",
  name: "Seoul Weather Bot",
  summary: text`I post daily weather updates for Seoul!`,
  kv: new DenoKvStore(kv),
  queue: new DenoKvMessageQueue(kv),
});

// Reply to mentions
bot.onMention = async (session, message) => {
  await message.reply(text`Current temperature in Seoul is 18°C!`);
};

// Post scheduled updates
const session = bot.getSession("https://weather.example.com");
setInterval(async () => {
  await session.publish(
    text`Seoul Weather Update 🌡️
    Current: 18°C
    Humidity: 65%
    Forecast: Clear skies ☀️`
  );
}, 1000 * 60 * 60); // Hourly updates

While BotKit currently supports , we're working on bringing Node.js and Bun support in future releases.

Ready to create your first fediverse bot? Check out our docs at https://botkit.fedify.dev/ to get started! 🚀

botkit.fedify.dev

BotKit by Fedify

A framework for creating your ActivityPub bots

@hongminhee@hollo.social

Mastodon이나 Misskey 어카운트 없이 獨立的(독립적)인 ActivityPub 봇을 만들 수 있게 해주는 프레임워크인 BotKit이 0.1.0 버전을 릴리스 했습니다!

https://hollo.social/@botkit/0194dc00-9f3c-7fc4-a25f-3645a5966930

hollo.social

🎉 Announcing [BotKit 0.1.0](h…

🎉 Announcing [BotKit 0.1.0](https://jsr.io/@fedify/botkit@0.1.0): A new framework for creating ActivityPub bots! We're thrilled to announce the initial release of #BotKit, a #TypeScript framework that makes creating standalone #ActivityPub bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file! Key features: - 🔋 Standalone bot creation—no need for a Mastodon/Misskey account - 🧩 Simple, developer-friendly API - 🚀 Easy deployment on [Deno Deploy](https://botkit.fedify.dev/deploy/deno-deploy), [Fly.io](https://botkit.fedify.dev/deploy/docker#deploying-to-fly-io), [Railway](https://botkit.fedify.dev/deploy/docker#deploying-to-railway), or [your own server](https://botkit.fedify.dev/deploy/self-hosting) - :fedify: Powered by @fedify@hollo.social for robust ActivityPub protocol handling Getting started is as simple as: ``` deno add jsr:@fedify/botkit@^0.1.0 ``` Here's a quick example of a weather bot: ``` const kv = await Deno.openKv(); const bot = createBot<void>({ username: "weatherbot", name: "Seoul Weather Bot", summary: text`I post daily weather updates for Seoul!`, kv: new DenoKvStore(kv), queue: new DenoKvMessageQueue(kv), }); // Reply to mentions bot.onMention = async (session, message) => { await message.reply(text`Current temperature in Seoul is 18°C!`); }; // Post scheduled updates const session = bot.getSession("https://weather.example.com"); setInterval(async () => { await session.publish( text`Seoul Weather Update 🌡️ Current: 18°C Humidity: 65% Forecast: Clear skies ☀️` ); }, 1000 * 60 * 60); // Hourly updates ``` While BotKit currently supports #Deno, we're working on bringing Node.js and Bun support in future releases. Ready to create your first fediverse bot? Check out our docs at <https://botkit.fedify.dev/> to get started! 🚀 #fedidev

@botkit@hollo.social

🎉 Announcing BotKit 0.1.0: A new framework for creating ActivityPub bots!

We're thrilled to announce the initial release of , a framework that makes creating standalone bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file!

Key features:

  • 🔋 Standalone bot creation—no need for a Mastodon/Misskey account
  • 🧩 Simple, developer-friendly API
  • 🚀 Easy deployment on Deno Deploy, Fly.io, Railway, or your own server
  • :fedify: Powered by @fedify for robust ActivityPub protocol handling

Getting started is as simple as:

deno add jsr:@fedify/botkit@^0.1.0

Here's a quick example of a weather bot:

const kv = await Deno.openKv();

const bot = createBot<void>({
  username: "weatherbot",
  name: "Seoul Weather Bot",
  summary: text`I post daily weather updates for Seoul!`,
  kv: new DenoKvStore(kv),
  queue: new DenoKvMessageQueue(kv),
});

// Reply to mentions
bot.onMention = async (session, message) => {
  await message.reply(text`Current temperature in Seoul is 18°C!`);
};

// Post scheduled updates
const session = bot.getSession("https://weather.example.com");
setInterval(async () => {
  await session.publish(
    text`Seoul Weather Update 🌡️
    Current: 18°C
    Humidity: 65%
    Forecast: Clear skies ☀️`
  );
}, 1000 * 60 * 60); // Hourly updates

While BotKit currently supports , we're working on bringing Node.js and Bun support in future releases.

Ready to create your first fediverse bot? Check out our docs at https://botkit.fedify.dev/ to get started! 🚀

botkit.fedify.dev

BotKit by Fedify

A framework for creating your ActivityPub bots

@botkit@hollo.social

🎉 Announcing BotKit 0.1.0: A new framework for creating ActivityPub bots!

We're thrilled to announce the initial release of , a framework that makes creating standalone bots simpler than ever before. With BotKit, you can create a complete fediverse bot in just a single TypeScript file!

Key features:

  • 🔋 Standalone bot creation—no need for a Mastodon/Misskey account
  • 🧩 Simple, developer-friendly API
  • 🚀 Easy deployment on Deno Deploy, Fly.io, Railway, or your own server
  • :fedify: Powered by @fedify for robust ActivityPub protocol handling

Getting started is as simple as:

deno add jsr:@fedify/botkit@^0.1.0

Here's a quick example of a weather bot:

const kv = await Deno.openKv();

const bot = createBot<void>({
  username: "weatherbot",
  name: "Seoul Weather Bot",
  summary: text`I post daily weather updates for Seoul!`,
  kv: new DenoKvStore(kv),
  queue: new DenoKvMessageQueue(kv),
});

// Reply to mentions
bot.onMention = async (session, message) => {
  await message.reply(text`Current temperature in Seoul is 18°C!`);
};

// Post scheduled updates
const session = bot.getSession("https://weather.example.com");
setInterval(async () => {
  await session.publish(
    text`Seoul Weather Update 🌡️
    Current: 18°C
    Humidity: 65%
    Forecast: Clear skies ☀️`
  );
}, 1000 * 60 * 60); // Hourly updates

While BotKit currently supports , we're working on bringing Node.js and Bun support in future releases.

Ready to create your first fediverse bot? Check out our docs at https://botkit.fedify.dev/ to get started! 🚀

botkit.fedify.dev

BotKit by Fedify

A framework for creating your ActivityPub bots

@dwn@dwnfonts.cc

naming Yizhi (已知, known), a Lemmy frontend like Zhihu (like Quora)

@me@hollo.woojinkim.org

이 홀로 인스턴스는 오브젝트스토리지 없이 돌고 있어요. 혼자 쓰는 서버에 minio가 왜 필요함?????????? 에 답할 수 없었기때문에 ......

@hongminhee@hollo.social

立春(입춘)을 맞아 우리집 玄關門(현관문)에도 立春榜(입춘방)을 붙였다!

「立春大吉 建陽多慶」이라 적힌 對聯
ALT text

「立春大吉 建陽多慶」이라 적힌 對聯

@box464@mastodon.social

Take a look at the AP Activities that are supported by @fedify

Going far beyond your every day social timeline - woud love to see some AP platforms add support for Listen, Offer, or Travel/Arrive/Leave.

github.com/fedify-dev/fedify/b

github.com

fedify/FEDERATION.md at main · fedify-dev/fedify

ActivityPub server framework in TypeScript. Contribute to fedify-dev/fedify development by creating an account on GitHub.

@dalcrose@seoul.earth

오 이 한별님의 글 @hongminhee 님이 흥미로워하실 것 같은 내용이네요~ (심지어 영어버전도 있음) 사실은 제가 흥미로워하는 이야기이긴 하지만…
hanbyul.xyz/words/vertical-wri

hanbyul.xyz

지도에서 한글 라벨. 가로로 쓸까 세로로 쓸까. - hanbyul.xyz

뭔가 하나에 대해서 집요하게 생각하다보면 마음이 좀 편해지지 않나요.

@fediversereport@mastodon.social

New: Fediverse Report #102

This week's news:
- a large crowd for the at
- some controversies around data scraping on the fediverse
- @openvibe gets 800k in funding to further work on the multi-protocol client

Read at: fediversereport.com/fediverse-

fediversereport.com

Fediverse Report – #102

Large interest for the fediverse at FOSDEM, more conversations about data usage and consent, and multi-platform client Openvibe gets 800k in funding.

@hongminhee@hollo.social
@botkit@hollo.social

1.4.0 has been released, and 0.1.0 will be based on Fedify 1.4.0. BotKit 0.1.0 is also about to be released, so please stay tuned!

https://hollo.social/@fedify/0194d42d-ee82-7a21-b66e-f88702278099

hollo.social

We're excited to announce the …

We're excited to announce the release of [Fedify 1.4.0]! This release brings significant improvements to enhance compatibility and flexibility in #ActivityPub federation. [Fedify 1.4.0]: https://github.com/fedify-dev/fedify/releases/tag/1.4.0 ## Key Highlights ### [Activity transformers] Introduced a new system to adjust outgoing activities for better compatibility with various ActivityPub implementations. This includes [automatic ID assignment for activities] and [actor dehydration] to satisfy implementation quirks (looking at you, Threads!). [Activity transformers]: https://fedify.dev/manual/send#activity-transformers [automatic ID assignment for activities]: https://fedify.dev/manual/send#autoidassigner [actor dehydration]: https://fedify.dev/manual/send#actordehydrator ### WebFinger customization Added the ability to customize WebFinger responses through the new [`mapAlias()`] API, giving you more control over how your actors are discovered. [`mapAlias()`]: https://fedify.dev/manual/actor#actor-aliases ### New interaction collections Added support for `shares`, `likes`, and `emojiReactions` properties to the `Object` class, making it easier to access and traverse these interaction collections. ### More flexible document/context loader [Document loader] and [context loader] are now configurable through factory functions, giving you more control over how your application handles JSON-LD documents. [Document loader]: https://fedify.dev/manual/federation#documentloaderfactory [context loader]: https://fedify.dev/manual/federation#contextloaderfactory ## CLI improvements The [`fedify lookup`] command now supports two new options: - [`-t/--traverse`]: Traverse through collection objects - [`-S/--suppress-errors`]: Continue operation even when encountering errors during traversal [`fedify lookup`]: https://fedify.dev/cli#fedify-lookup-looking-up-an-activitypub-object [`-t/--traverse`]: https://fedify.dev/cli#t-traverse-traverse-the-collection [`-S/--suppress-errors`]: https://fedify.dev/cli#s-suppress-errors-suppress-partial-errors-during-traversal ## Other enhancements - Added [`Context.getNodeInfo()`] method for easier NodeInfo access - Improved error handling in collection traversal and JSON-LD processing - Added support for private network access control in WebFinger lookups - `User-Agent` headers now automatically include your instance URL, making it easier for other servers to identify your instance For the complete list of changes and bugfixes, please visit our [changelog][Fedify 1.4.0]. Whether you're building a new federated application or maintaining an existing one, #Fedify 1.4.0 provides the tools you need for robust ActivityPub federation. [`Context.getNodeInfo()`]: https://fedify.dev/manual/nodeinfo#nodeinfo-client ## Supporting us We're grateful to all our sponsors who make this project possible. Check out our new [sponsors showcase page] to see the amazing individuals and organizations supporting Fedify's development. If you'd like to support Fedify's development, please consider [becoming a sponsor]! [sponsors showcase page]: https://fedify.dev/sponsors [becoming a sponsor]: https://opencollective.com/fedify ## Upgrade now You can install Fedify 1.4.0 from [JSR] or [npm]. Upgrade today and let us know what you think! [JSR]: https://jsr.io/@fedify/fedify@1.4.0 [npm]: https://www.npmjs.com/package/@fedify/fedify/v/1.4.0 #fedidev

We're excited to announce the release of Fedify 1.4.0! This release brings significant improvements to enhance compatibility and flexibility in federation.

Key Highlights

Activity transformers

Introduced a new system to adjust outgoing activities for better compatibility with various ActivityPub implementations. This includes automatic ID assignment for activities and actor dehydration to satisfy implementation quirks (looking at you, Threads!).

WebFinger customization

Added the ability to customize WebFinger responses through the new mapAlias() API, giving you more control over how your actors are discovered.

New interaction collections

Added support for shares, likes, and emojiReactions properties to the Object class, making it easier to access and traverse these interaction collections.

More flexible document/context loader

Document loader and context loader are now configurable through factory functions, giving you more control over how your application handles JSON-LD documents.

CLI improvements

The fedify lookup command now supports two new options:

Other enhancements

  • Added Context.getNodeInfo() method for easier NodeInfo access
  • Improved error handling in collection traversal and JSON-LD processing
  • Added support for private network access control in WebFinger lookups
  • User-Agent headers now automatically include your instance URL, making it easier for other servers to identify your instance

For the complete list of changes and bugfixes, please visit our changelog.

Whether you're building a new federated application or maintaining an existing one, 1.4.0 provides the tools you need for robust ActivityPub federation.

Supporting us

We're grateful to all our sponsors who make this project possible. Check out our new sponsors showcase page to see the amazing individuals and organizations supporting Fedify's development. If you'd like to support Fedify's development, please consider becoming a sponsor!

Upgrade now

You can install Fedify 1.4.0 from JSR or npm. Upgrade today and let us know what you think!

npmjs.com

@fedify/fedify

An ActivityPub server framework. Latest version: 1.4.0, last published: 20 minutes ago. Start using @fedify/fedify in your project by running `npm i @fedify/fedify`. There are 3 other projects in the npm registry using @fedify/fedify.

@hollo@hollo.social · Reply to Hollo :hollo:

Hollo는 Markdown 전체 스펙에 Hollo만의 확장 문법(멘션 및 해시태그)까지 지원하고 있습니다.