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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,108 following1,898 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

@hongminhee@hollo.social · Reply to toto

@mrtoto That's actually a brilliant use case! Location check-ins and POIs map really well to ActivityPub's social model. The Place object in AS2 vocabulary was designed with this in mind.

If you ever decide to pursue this idea, I'd be happy to provide guidance on implementing it with Fedify. It's exactly the kind of specialized federation that could benefit from a structured approach.

@hongminhee@hollo.social · Reply to Dan Sugalski

@wordshaper That's an interesting idea! Actually, if you're looking to integrate with Discord, BotKit might be a better fit than Fedify directly. BotKit sits on top of Fedify but provides a much simpler API specifically designed for creating fediverse bots.

With BotKit, you could create a Discord bridge with just a few dozen lines of code—handling events like mentions and messages becomes really straightforward. The event-based model would pair nicely with Discord's bot framework.

I wouldn't call it a “horrible idea” at all! For certain communities (gaming servers, developer groups), having a Discord-fediverse bridge could be quite valuable. Though I agree it shouldn't be obligatory—more like an optional plugin for those who want that cross-platform connection.

Curious to hear if you've worked with ActivityPub before or if this would be your first foray into the fediverse world?

botkit.fedify.dev

BotKit by Fedify

A framework for creating your ActivityPub bots

@hongminhee@hollo.social · Reply to sef

@sef That's an intriguing perspective! While ActivityPub was designed primarily for social networking, I appreciate you thinking outside the conventional use cases.

I do have some reservations about how well it would map to accounting needs. ActivityPub's semantics are optimized for social interactions rather than financial transactions, which have stricter requirements for consistency, atomicity, and compliance.

That said, there are some interesting parallels in the bilateral nature of transactions you mentioned. The “your asset is my liability” relationship does mirror certain social interactions.

For specialized business domains like accounting, a purpose-built protocol might ultimately serve better than adapting ActivityPub. But I wonder if there might be value in a hybrid approach—perhaps using federation for notifications and approvals around financial activities, while keeping the core transaction logic in systems designed specifically for accounting.

Have you explored any specific aspects of how ActivityPub's vocabulary might be extended to handle accounting concepts? I'd be curious to hear more about where you see the strongest fit.

@hongminhee@hollo.social · Reply to Max

@PossiblyMax Thanks for the thoughtful feedback!

The sidecar container idea is intriguing. I've considered similar approaches but haven't prioritized it yet. Fedify's core is tightly coupled with TypeScript's type system, which helps prevent many common ActivityPub implementation errors. A containerized version would need a well-defined API surface that maintains these safety guarantees while being language-agnostic.

It's definitely on my radar now though. Are you working with a specific language/framework where you'd want to use this?

As for unusual fediverse use cases—those examples are actually spot-on! Blog comments via ActivityPub is a perfect use case (similar to how Mastodon threads can function as comments). And publishing notifications about new content is exactly what Ghost is doing with their Fedify integration.

Other interesting examples include:

  • Event RSVPs that work across platforms
  • Reading lists that can be shared and followed
  • Federated webmentions for cross-site interactions

I'd love to hear if you have other specific scenarios in mind!

@hongminhee@hollo.social · Reply to marius

@mariusor Hmm, yeah, Node.js (or Deno or Bun) is less straightforward to deploy to bare metals than Go or Rust, but I believe nowadays it's getting easier as now we have LXCs and some container formats they offer (e.g., Deno allows you to pack your application into a single executable).

Actually, choosing TypeScript was quite strategic for me, because I'd never written any serious software in TypeScript before Fedify—my go-to languages were Haskell and Python at that time. However, I wanted Fedify to reach out wider audience, so I decided to write it in TypeScript, which is very popular for building web applications today. It might be a wrong decision though, haha.

@hongminhee@hollo.social · Reply to bgl gwyng

@bgl Yeah, that's because we don't have things like POP3 or SMTP for fediverse. Hmm, technically we may have few similar ones, like ActivityPub C2S and Mastodon-compatible APIs, but they are quite limited (e.g., you can't quote posts using Mastodon APIs) or not adopted enough. I hope we will have C2S adopted someday though. 🤔

@hongminhee As a developer building a service that is planned to join the fediverse, I'm still uncertain about what the timeline should look like in the fediverse app. Why do users need multiple apps with each timeline sharing some of their content? When you have multiple email accounts, then you might need a single email client that supports all of them at the same time. In which aspect fediverse differs from this situation?

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

@kodingwarrior@silicon.moe

아아~ 여러분 이만한 기여 맛집이 어디 없습니다~
ActivityPub 기반의 오픈소스 블로깅 서비스 HackersPub에 현장에서 기여할 수 있는 기회! 그 외에도,,,

* Fedify : ActivityPub 기반의 소프트웨어 개발하는 난이도를 낮춰주는 라이브러리
* Hollo : 1인 블로깅 플랫폼
* 혹은... 프론트엔드 하시는 분 한정, 마스토돈 클라이언트 만들기 온보딩까지 가능...!!!!

hackers.pub/@hongminhee/0196b9

hackers.pub

5월 24일(土) 한국 연합우주 개발자 모임(FediDev KR)에서 두 번째 스프린트 모임을 개최합니다! 장소는 뚝섬역 5번 출구쪽에 위치한 튜링의 사과(@TuringAppleDev)입니다. 참고로 스프린트 모임이란 함께 모여서 오픈 소스 코딩을 하는 자리인데, 한국 연합우주 개발자 모임의 스프린트에서는 새로운 연합우주 서비스나 앱을 개발하거나, 번역이나 문서에 기여하는 등 연합우주와 관련된 다양한 오픈 소스 활동을 모여서 함께 합니다. 지난 스프린트 모임의 기록을 스프린트 블로그(@sprints.fedidev.kr)에서 살펴보실 수 있습니다. 저는 그날 Fedify, Hollo, Hackers' Pub에 기여하시고자 하는 분들을 옆에서 도와드릴 예정입니다. Fedify, Hollo, Hackers' Pub에 기여해보고 싶었던 분들이 계시다면 모임에 참가하여 저와 함께 스프린트를 해보는 것도 좋을 것 같습니다. 이번 모임에 관심이 있으신 분은 행사 신청 페이지를 참고하시기 바랍니다.

5월 24일(土) 한국 연합우주 개발자 모임(FediDev KR)에서 두 번째 스프린트 모임을 개최합니다! 장소는 뚝섬역 5번 출구쪽에 위치한 튜링의 사과(@TuringAppleDev)입니다. 참고로 스프린트 모임이란 함께 모여서 오픈 소스 코딩을 하는 자리인데, 한국 연합우주 개발자 모임의 스프린트에서는 새로운 연합우주 서비스나 앱을 개발하거나, 번역이나 문서에 기여하는 등 연합우주와 관련된 다양한 오픈 소스 활동을 모여서 함께 합니다. 지난 스프린트 모임의 기록을 스프린트 블로그(@sprints.fedidev.kr)에서 살펴보실 수 있습니다. 저는 그날 Fedify, Hollo, Hackers' Pub에 기여하시고자 하는 분들을 옆에서 도와드릴 예정입니다. Fedify, Hollo, Hackers' Pub에 기여해보고 싶었던 분들이 계시다면 모임에 참가하여 저와 함께 스프린트를 해보는 것도 좋을 것 같습니다. 이번 모임에 관심이 있으신 분은 행사 신청 페이지를 참고하시기 바랍니다.

@hongminhee@hollo.social

臺灣(타이완)에서는 乖乖(괴괴)라는 菓子(과자)를 서버 같은 컴퓨터 옆에 符籍(부적)처럼 두는 風習(풍습)이 있는데요. 乖乖(괴괴)中國語(중국어)로 「말을 잘 듣는다」는 뜻인데다, 草綠色(초록색) 封套(봉투)順航(순항)象徵(상징)한다고 합니다. (그래서 여러 () 封套(봉투) ()에서도 草綠色(초록색) 封套(봉투)效果(효과)가 있다고 여겨집니다.)

그런데 아내가 지난 臺北(타이베이) 出張(출장)에서 乖乖(괴괴)를 한 封紙(봉지) 사 왔더라고요. 그래서 저도 이 인스턴스 hollo.social과 Hackers' Pub이 돌아가는 Mac mini 옆에 두기로 했습니다. 乖乖(괴괴) 封套(봉투)에는 「()乖乖(괴괴)〉,不要當機(불요당기)」(말 잘 듣고, 다운되지 말아라)라고 썼습니다.

乖乖(괴괴)效驗(효험)流通期限(유통 기한)까지 持續(지속)된다고 하는데요, 제가 둔 封紙(봉지)는 2026() 4() 11()까지입니다. 그 때까지 다운이 안 되는지 한 () 지켜보도록 합시다. 🤣

나무 바닥 위에 Mac mini가 놓여 있고, 그 옆에 臺灣 菓子인 草綠色 封套의 乖乖가 놓여 있다. 乖乖에는 「請〈乖乖〉,不要當機」(말 잘 듣고, 다운되지 말아라)라고 써져 있다. 주위에는 흰 토끼 某樣 電球와 파란 꽃이 든 花盆이 있다.
ALT text

나무 바닥 위에 Mac mini가 놓여 있고, 그 옆에 臺灣 菓子인 草綠色 封套의 乖乖가 놓여 있다. 乖乖에는 「請〈乖乖〉,不要當機」(말 잘 듣고, 다운되지 말아라)라고 써져 있다. 주위에는 흰 토끼 某樣 電球와 파란 꽃이 든 花盆이 있다.

@hongminhee@hollo.social

Re: https://github.com/TryGhost/ActivityPub/issues/570#issuecomment-2873773122

@julian I believe you can use only its signature generation/verification functions without depending on Fedify's other features right now, e.g.:

import {
  createProof, // Create OIP
  createSignature, // Create LDS
  signRequest, // Create HS
  verifyObject, // Verify OIP
  verifyRequest, // Verify HS
  verifySignature, // Verify LDS
} from "@fedify/fedify/sig";

Also, Fedify is available on npm, and is used with Node.js or Bun!

npmjs.com

@fedify/fedify

An ActivityPub server framework. Latest version: 1.5.2, last published: 2 days 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.

@cheeaun@mastodon.social

Finally got to build this. Quick UI toggles to see all possible permutations of a post.

Previously was trying out Storybook.js but it's a bit too much for my needs (too many files, too many clicks).

CSS view transitions are pretty cool. More permutations need to be added later. And it's fun building this.

Demo of "sandbox" page that shows a preview of a post and UI toggles to show different states of the post.
ALT text

Demo of "sandbox" page that shows a preview of a post and UI toggles to show different states of the post.

@hongminhee@hollo.social

요즘에는 文書化(문서화)할 때 基本的(기본적)資料(자료)들을 Gemini 2.5 Pro한테 넘겨주고 草稿(초고)를 쓰게 한 다음, 그걸 Claude Sonnet 3.7로 推敲(퇴고)하게 하는데, 썩 괜찮다.

@hongminhee@hollo.social

臺灣(타이완)에서는 乖乖(괴괴)라는 菓子(과자)를 서버 같은 컴퓨터 옆에 符籍(부적)처럼 두는 風習(풍습)이 있는데요. 乖乖(괴괴)中國語(중국어)로 「말을 잘 듣는다」는 뜻인데다, 草綠色(초록색) 封套(봉투)順航(순항)象徵(상징)한다고 합니다. (그래서 여러 () 封套(봉투) ()에서도 草綠色(초록색) 封套(봉투)效果(효과)가 있다고 여겨집니다.)

그런데 아내가 지난 臺北(타이베이) 出張(출장)에서 乖乖(괴괴)를 한 封紙(봉지) 사 왔더라고요. 그래서 저도 이 인스턴스 hollo.social과 Hackers' Pub이 돌아가는 Mac mini 옆에 두기로 했습니다. 乖乖(괴괴) 封套(봉투)에는 「()乖乖(괴괴)〉,不要當機(불요당기)」(말 잘 듣고, 다운되지 말아라)라고 썼습니다.

乖乖(괴괴)效驗(효험)流通期限(유통 기한)까지 持續(지속)된다고 하는데요, 제가 둔 封紙(봉지)는 2026() 4() 11()까지입니다. 그 때까지 다운이 안 되는지 한 () 지켜보도록 합시다. 🤣

나무 바닥 위에 Mac mini가 놓여 있고, 그 옆에 臺灣 菓子인 草綠色 封套의 乖乖가 놓여 있다. 乖乖에는 「請〈乖乖〉,不要當機」(말 잘 듣고, 다운되지 말아라)라고 써져 있다. 주위에는 흰 토끼 某樣 電球와 파란 꽃이 든 花盆이 있다.
ALT text

나무 바닥 위에 Mac mini가 놓여 있고, 그 옆에 臺灣 菓子인 草綠色 封套의 乖乖가 놓여 있다. 乖乖에는 「請〈乖乖〉,不要當機」(말 잘 듣고, 다운되지 말아라)라고 써져 있다. 주위에는 흰 토끼 某樣 電球와 파란 꽃이 든 花盆이 있다.

@hongminhee@hollo.social

I'm looking for a Markdown formatter, and I'm quite particular about my Markdown style. I don't want it to be formatted in a generic Markdown style. For instance, I prefer a style that adheres to rules such as:

  • 80 characters at most per line, except for code blocks and URLs.
  • Prefer reference links over inline links.
  • Prefer setext headings over ATX headings.
  • Two new lines before opening an H1/H2 heading.
  • One space before and two spaces after a bullet.
  • Wrap file paths in asterisks.
  • Wrap inline code in backticks.
  • Wrap code blocks in quadruple tildes (~~~~), and specify the language with a single space after the opening tildes (e.g., ~~~~ bash).

Are there any Markdown formatters that allow for such detailed customization of these elements? Or would I have to build one myself?

spec.commonmark.org

CommonMark Spec

@nixCraft@mastodon.social

This is how monopoly looks… Remember, not a single book author, artist, or FLOSS developer has ever been paid. They just used all of your data to train AI and are now making billions in profits while you struggle to buy eggs. This is why monopoly is so bad.

Diagram showing relationships between Microsoft, OpenAI, VSCode, Windsurf, and Cursor, highlighting Microsoft's investments and ownership.
ALT text

Diagram showing relationships between Microsoft, OpenAI, VSCode, Windsurf, and Cursor, highlighting Microsoft's investments and ownership.

@hongminhee@hollo.social

@hollo 간단…하려나요? 저는 어렵지 않긴 했어요. Railway에서 돌고 있는 데이터베이스에서 pg_dump로 데이터 백업 받고, 미디어 저장용 오브젝트 스토리지는 그대로 썼고요.