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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,118 following1,666 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

@mathieui Thanks for engaging with this. I appreciate the pushback, and I think some of your concerns are worth taking seriously.

That said, I want to clarify something about my position: TGPL (or any specific licensing mechanism) is just one possible avenue among many. The broader argument isn't tied to any single instrument. Regulatory pressure on governments to mandate that models trained on public data be returned to the public, expanded public funding for open research infrastructure, international treaty reform—these are all on the table. The point is strategic pluralism, not a bet on one tool.

On the copyright concern: yes, major players have shown contempt for copyright. But that's precisely why I think purely technical or market-based solutions are insufficient, and why political and legislative pressure matters. The history of generic medicine access is instructive here—no single mechanism won that fight, but the combination of compulsory licensing advocacy, treaty pressure, and public funding reform produced real change over time.

Now, your Luddite parallel: I actually think it argues for my position rather than against it. You're right that the weavers never reclaimed the technology. But the lesson I draw from that isn't “therefore reclamation is impossible.” It's that refusing or destroying the means of production doesn't work. What eventually produced change was organized labor movements that took the existence of that technology as a given and fought over who controls it and under what conditions. That's exactly the kind of struggle I'm advocating for here.

The real question you're raising, I think, is about the subject: is there an organized political force capable of carrying this through? That's a fair and hard question. But it's an argument for building that force, not for abandoning the goal.

@hongminhee@hollo.social · Reply to Fabrice Desré

@fabrice I hear your concerns about burnout, and as someone who has actually secured STF investment for my project (Fedify), I won't pretend the administrative overhead is non-existent. It's a real challenge.

However, in my experience, that effort is a price well worth paying for the autonomy and long-term value it secures. For me, navigating “administrative fragility” is a manageable hurdle compared to the structural risk of VC influence. It's not about finding a perfect, effortless funding source—it's about choosing which struggles are worth our time to preserve the integrity of the decentralized web.

@hongminhee@hollo.social

@mro Valid points. The “Large” in LLM indeed mirrors the “Big” in Big IT—that is precisely the materialist contradiction I'm highlighting. Currently, the scale required for these models forces a centralized, corporate structure.

Regarding productivity: as a developer, I view LLM not just as a “code generator” (where the ±20% debate happens), but as a new layer of interface for complex information. Whether it's asbestos or X-ray, the reality is that the “means” are already being deployed at a massive scale, shaping our digital society.

You mentioned focusing on the ends. I agree. But in our current system, the “ends” are dictated by those who own the “means.” If the means (LLMs) remain a corporate monopoly, the “ends” will always be profit and surveillance.

My argument for socialization isn't about “more software” for the sake of it; it's about reclaiming the power to define the “ends.” We can't democratically decide how to use (or even limit) a technology if we don't own the infrastructure it runs on. Even if we decide to use it “narrowly and carefully” like X-rays, that decision should belong to the public, not a boardroom.

@hongminhee@hollo.social

@mro Hi, thanks for the sharp analogy! The X-ray/asbestos comparison is a classic way to view the risks of new tech.

However, my argument for “socialization” stems from the belief that LLMs are a significant productive force. If we view them as “asbestos,” the logical step is a total ban. But if we see them as a “utility” (like electricity), the current corporate monopoly is the real poison.

In a historical materialism framework, the “toxic” side effects we see today—like reckless resource consumption or data exploitation—are often driven by the capitalist mode of production (profit-first scaling). By “liberating” or socializing the material basis of AI, we gain the democratic power to regulate its use and minimize those downsides, turning it into a true public good rather than a corporate hazard.

@hongminhee@hollo.social · Reply to Fabrice Desré

@fabrice You're right that constant grant-hopping is fragile, and I don't see it as a perfect endgame. However, my point about “healthiness” was less about financial stability and more about the alignment of incentives.

VC money inevitably demands a return on investment, which often leads to extractive business models down the line. I'd rather deal with the administrative “fragility” of public funding than the structural “shackles” of venture capital that might eventually compromise protocol neutrality. AT Protocol's rapid development is impressive, but for me, who owns the infrastructure is just as important as how fast it's being built.

@hongminhee@hollo.social

I've been increasingly concerned about the corporate monopoly over frontier LLMs. While many ethically-minded people choose to boycott these models, I believe passive resistance alone cannot break the structural grip of big tech. To truly “liberate” these technologies and turn them into public goods, we need to look beyond moral high grounds and engage with the material basis of AI—specifically compute, data, and the relations of production.

I've written two posts exploring this through the lens of historical materialism. The first piece analyzes why current “open source” definitions struggle with LLMs, and the second discusses what it means to “act materialistically” in our imperfect world. My goal is to suggest a path forward that moves from mere boycotting to a more proactive, structural socialization of AI infrastructure.

If you've been feeling uneasy about the AI landscape but aren't sure if boycotting is the final answer, I'd love for you to give these a read:

writings.hongminhee.org

Acting materialistically in an imperfect world: LLMs as means of production and social relations

This is a follow-up to last month's Histomat of F/OSS: We should reclaim LLMs, not reject them . Cory Doctorow celebrated the sixth anniversary of Pluralistic…

@hongminhee@hollo.social

While I have no ill will toward the “ATmosphere” (Bluesky/AT Protocol), the contrast in funding models is hard to ignore. The fediverse's support from strategic investments in open infrastructure (like NLnet or STF) feels far healthier than ATmosphere's heavy backing from crypto-linked VCs—a sector often fraught with bubbles and social harm. I'm a bit envious of their smooth R&D resources, but I'm ultimately convinced that building on a foundation of digital public goods is the more sustainable path for a truly decentralized web.

@hongminhee@hollo.social

I've been increasingly concerned about the corporate monopoly over frontier LLMs. While many ethically-minded people choose to boycott these models, I believe passive resistance alone cannot break the structural grip of big tech. To truly “liberate” these technologies and turn them into public goods, we need to look beyond moral high grounds and engage with the material basis of AI—specifically compute, data, and the relations of production.

I've written two posts exploring this through the lens of historical materialism. The first piece analyzes why current “open source” definitions struggle with LLMs, and the second discusses what it means to “act materialistically” in our imperfect world. My goal is to suggest a path forward that moves from mere boycotting to a more proactive, structural socialization of AI infrastructure.

If you've been feeling uneasy about the AI landscape but aren't sure if boycotting is the final answer, I'd love for you to give these a read:

writings.hongminhee.org

Acting materialistically in an imperfect world: LLMs as means of production and social relations

This is a follow-up to last month's Histomat of F/OSS: We should reclaim LLMs, not reject them . Cory Doctorow celebrated the sixth anniversary of Pluralistic…

以前から、東アジアにもFediConのようなイベントがあればいいなと言い続けてきました。独自のカンファレンスはまだ難しそうですが、小さな一歩として考えていることがあります。

@COSCUP 2026(台北、8月8日〜9日)がコミュニティトラックの提案を受け付けています。FOSDEMのSocial Web devroomのような感じで、Social Webトラックを開けないかなと思っているところです。

まだ構想段階ですが、ActivityPubやフェディバース、ソーシャルウェブ全般に取り組んでいて、発表や共同オーガナイズに興味があるという方がいれば、ぜひ話しかけてください。

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

東(동)아시아에도 FediCon 같은 行事(행사)가 있으면 좋겠다는 말을 여러 番(번) 해왔는데요. 獨立的(독립적)인 컨퍼런스는 아직 어렵더라도, 작은 첫걸음으로 생각해보고 있는 게 있습니다.

@COSCUP 2026(臺北(타이베이), 8月(월) 8日(일)–9日(일))이 커뮤니티 트랙 提案(제안)을 받고 있어요. FOSDEM의 Social Web devroom 같은 느낌으로, 거기서 Social Web 트랙을 열 수 있지 않을까 하고 構想(구상) 중입니다.

아직 確定(확정)된 건 아무것도 없지만, , , 或(혹)은 소셜 웹 全般(전반)을 다루고 있고 發表(발표)나 共同(공동) 오거나이징에 關心(관심)이 있으신 분이 있다면 이야기 걸어주세요.

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

@hongminhee@hollo.social

I've been saying for a while that we need something like FediCon in East Asia. A dedicated conference is still a stretch, but I've been thinking about a smaller step:

@COSCUP 2026 (Taipei, Aug 8–9) is accepting proposals for community tracks. It might be worth trying to open a Social Web track there—something in the spirit of the Social Web devroom at FOSDEM.

Nothing is decided yet, but if you're working on , the , or anything in the social web space and might be interested in speaking (or co-organizing), I'd love to hear from you.

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

@kodingwarrior@silicon.moe

그 뭐시냐.... 제가 모임 개최 플랫폼 (대충 event-us.kr 혹은 connpass.com 같은거) + 지역 기반 리뷰 서비스 (대충 포스퀘어 같은거) 를 만들었는데요.

**당연히, 연합우주 거주민 대상으로 만들어진 서비스이고, 연합우주에 계정이 있다면 누구나 OTP 로그인으로 인증이 가능합니다**

어떻게 만들어나갈지 나름 고민은 많이 해봤고, 내가 생각하는 고민이랑 다른 사람들이 생각하는 수요가 일치하는지 확인도 하고 싶어서 이렇게 공개적인 글을 올립니다.

moim.live

많은 관심과 사랑 부탁드리고, 문의사항이나 피드백 있으면 GitHub Issue로 부탁드리겠습니다. GitHub 링크 : github.com/moim-social/moim

물론, 다른 창구도 열어둘 여지는 있습니다. 디스코드 채널은.. 당장은 fedidev.kr 의 채널을 이용하지 않을까 싶구요.

fedidev.kr

한국 연합우주 개발자 모임

한국에 거주하거나 한국어를 사용하는 연합우주(fediverse) 개발자들의 모임입니다.

@julian@fietkau.social · Reply to django

@django @nlnet @dansup The FEP for GTS-style comment controls will be coming from me. 👋 Hopefully in the next few weeks. If you scroll down my replies on my profile you can find scattered remarks on progress and remaining work items. There is a Matrix chat - if you want an invite to it, let me know!

以前から、東アジアにもFediConのようなイベントがあればいいなと言い続けてきました。独自のカンファレンスはまだ難しそうですが、小さな一歩として考えていることがあります。

@COSCUP 2026(台北、8月8日〜9日)がコミュニティトラックの提案を受け付けています。FOSDEMのSocial Web devroomのような感じで、Social Webトラックを開けないかなと思っているところです。

まだ構想段階ですが、ActivityPubやフェディバース、ソーシャルウェブ全般に取り組んでいて、発表や共同オーガナイズに興味があるという方がいれば、ぜひ話しかけてください。

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

東(동)아시아에도 FediCon 같은 行事(행사)가 있으면 좋겠다는 말을 여러 番(번) 해왔는데요. 獨立的(독립적)인 컨퍼런스는 아직 어렵더라도, 작은 첫걸음으로 생각해보고 있는 게 있습니다.

@COSCUP 2026(臺北(타이베이), 8月(월) 8日(일)–9日(일))이 커뮤니티 트랙 提案(제안)을 받고 있어요. FOSDEM의 Social Web devroom 같은 느낌으로, 거기서 Social Web 트랙을 열 수 있지 않을까 하고 構想(구상) 중입니다.

아직 確定(확정)된 건 아무것도 없지만, , , 或(혹)은 소셜 웹 全般(전반)을 다루고 있고 發表(발표)나 共同(공동) 오거나이징에 關心(관심)이 있으신 분이 있다면 이야기 걸어주세요.

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

@hongminhee@hollo.social

I've been saying for a while that we need something like FediCon in East Asia. A dedicated conference is still a stretch, but I've been thinking about a smaller step:

@COSCUP 2026 (Taipei, Aug 8–9) is accepting proposals for community tracks. It might be worth trying to open a Social Web track there—something in the spirit of the Social Web devroom at FOSDEM.

Nothing is decided yet, but if you're working on , the , or anything in the social web space and might be interested in speaking (or co-organizing), I'd love to hear from you.

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

@cocoa@hackers.pub

I would like to migrate some of my projects to Codeberg, but since Codeberg doesn't seem to support PyPI's Trusted Publishing (yet), I don't think I'll be able to do that...

@COSCUP@floss.social

🚀 COSCUP 2026 Call for Participation is now open!

🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited.

🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served.

👉 Apply here: s.coscup.org/26communityen

blog.coscup.org

COSCUP 2026 Call for Participation, 議程軌與攤位即日起開放申請

無論您是開放原始碼的開發者、推廣者、使用者,都歡迎您來參加 COSCUP「開源人年會」

@hongminhee@hollo.social · Reply to kopper :colon_three:

@kopper The composability angle is something I hadn't fully appreciated before—a standalone reply tree indexer that any client can query via proxyUrl is a genuinely interesting pattern, and it's not something you'd get from just standardizing a monolithic client API.

On did:key, you're right that handing over a private key for autonomous server actions is a real problem, and the non-rotatability makes it worse. Though I'd frame that as a limitation of did:key specifically rather than portable identity as a concept—FEP-ef61 mentions other DID methods as candidates, and the broader space of approaches to server-independent identity isn't exhausted by any single proposal.

But agreed that they're orthogonal and can coexist.

@hongminhee@hollo.social · Reply to kopper :colon_three:

@kopper That's a fair point about the Mastodon API—the lexicographic ID requirement and the pagination assumptions are good concrete examples of how standardization quietly closes off design space in ways nobody intended.

I think this exchange has been useful for me in clarifying that we're probably starting from different premises about what C2S is for. If frontend portability isn't the goal, then the case against standardizing the client API makes a lot of sense. I just can't quite let go of the feeling that portability at that layer is what most people imagine when they hear “C2S”—though I'll admit the spec itself is ambiguous enough that neither of us is obviously wrong.

Anyway, thanks for taking the time to respond. Lots to think about.

@hongminhee@hollo.social · Reply to kopper :colon_three:

@kopper Thanks for engaging with this—it helps me think it through more carefully.

Your point about making the split explicit at the protocol level is well taken. I can see how that matters especially for extensions: a lot of FEPs end up adding actor-global state for things that are really client concerns, and having a clearer boundary in the protocol might discourage that drift. That's a concrete benefit I hadn't fully appreciated.

On the interoperability question, I think I see where we differ. You're reframing the core promise of C2S as “reuse the same account across different interfaces,” whereas I'd been reading it as “connect any frontend to any server.” Those lead to quite different designs. I'm not sure which framing is more faithful to what C2S originally intended—maybe neither of us is wrong, and the spec was simply underspecified on this point.

That said, if account portability is the goal, I wonder whether C2S is really the right tool for it. FEP-ef61 and the Nomadic Identity approach both tackle that problem more directly, by making identifiers server-independent at the identity layer rather than standardizing the client–server protocol. It feels like a different layer of the problem altogether, and I'm not sure C2S can carry that weight on its own even with your proposed architecture.

The point about AP objects remaining AP objects through hydration is interesting though. I can see how that keeps the pieces composable even without a standardized client API. I'll have to think about that more.

w3id.org

Cookie monster!

@hongminhee@hollo.social · Reply to infinite love ⴳ

@trwnh Actually, Fedify already supports this quite well. The actor dispatcher gives you full control over the actor's id—you can set it to any URL, including one on a custom domain. And since Fedify 1.4.0, there's a mapAlias() method that lets you handle WebFinger lookups for those custom URLs too. So running Fedify behind a reverse proxy that routes multiple hostnames, and assigning per-actor custom domain identifiers, should be achievable without any changes to Fedify itself.

@hongminhee@hollo.social

Today @kopper shared a post on the fediverse titled how to not regret c2s, and I found it genuinely interesting to read, even if I'm not sure its proposed architecture actually solves what it sets out to solve.

The author's frustration with naïve implementations is well-founded. Slapping an facade onto an existing Mastodon-like server and calling it C2S doesn't buy you much—you end up with the rigidity of a bespoke API without any of the interoperability C2S is supposed to offer. The “JSON-LD flavored Mastodon API” framing is apt.

The proposed solution is to split responsibility more aggressively: the C2S server should be nearly stateless and dumb, storing ActivityPub objects without interpreting them, while a separate “client” layer handles indexing, timelines, moderation, and exposes its own API to the frontend running on the user's device. It's a clean separation of concerns on paper.

But here's what bothers me. When you map this architecture onto familiar terms, it looks roughly like this:

  • C2S server ≈ a database (PostgreSQL, say)
  • “Client” ≈ an application server (Mastodon, Misskey)
  • “Frontend” ≈ the actual client app on your phone

That's not a new architecture. That's just the current architecture with the labels shifted. The interesting question is which interface gets standardized, and the author's answer is the one between the C2S server and the “client” layer—the bottom boundary.

The problem is that what people actually want from C2S is to connect any frontend to any server. The portability they're after lives at the top boundary, between the frontend and whatever is behind it. But the author explicitly argues against standardizing that layer: “we don't really need a standardized api,” they write, leaving each client free to expose whatever API it likes.

Which means frontends remain locked to specific clients, just as Mastodon apps are locked to the Mastodon API today. The interoperability promise of C2S—log in to any server with any app—isn't actually delivered. It's been pushed one layer down, out of reach of the end user.

There's real value in the post's thinking about data hosting vs. interpretation, and about the security implications of servers that understand too much. But as an answer to the question C2S is supposed to answer, I'm not convinced.

w.on-t.work

how to not regret c2s