@arkjunJuntai Park 제가 수동으로 프로필 사진 URL을 다시 받아오게 했습니다… ㅋㅋㅋ

Juntai Park
@arkjun@hackers.pub · 65 following · 72 followers
中年의 中小企業 開發者, 90年代 Console Gamer. 좋은 하루를 繼續해 나아간다. 좋은 하루가 모이면 좋은 人生이 된다.
韓国人のプログラマー、40代、小学生の息子とゲームするのが幸せ😃💕龍が如く 、ゼルダの伝説、マリオ、ピクミン好き
「いい1日を続ける」
いい1日を続けていけば、いい人生になる!
threads
- @rkjun
x
- @rkJun
uri.life
- @arkjun@uri.life
GitHub
- @arkjun
@hongminhee洪 民憙 (Hong Minhee) 앜. 좋습니다. 잘 나오면 된거쥬. 🤣
드디어 단문 입력란에 “이미지 업로드” 버튼이 생겼습니다. 기존에도 이미지 업로드는 가능했지만 드래그 앤 드롭을 하거나 클립보드에서 붙여넣기를 해야 했기 때문에, 특히 모바일 같은 환경에서는 불편함이 있었습니다. 이제는 버튼을 누르면 이미지 파일을 선택하는 창이 뜨게 됩니다.
참고로 이 기능은 100% Claude Code로 구현되었습니다. 커밋까지도요. 제가 한 일은 다음 프롬프트를 적은 것 뿐입니다:
현재는
Composer
컴포넌트에 이미지 업로드 기능이 있긴 하지만 1) 드래그 앤 드롭을 하거나 2) 클립보드에서 붙여넣기를 해야 합니다. 그래서 이미지 업로드 기능이 있다는 걸 인지조차 못하는 경우도 있습니다. 이를 개선하기 위해, 명시적인 이미지 업로드 버튼을 추가하려고 합니다. 기존의 이미지 업로드 기능을 망가뜨리지 않으면서 동작하는 이미지 업로드 버튼을 구현해 주실 수 있을까요? 참고로 UI 프레임워크는 Preact를 쓰고 있습니다. 코드 내 주석은 영어로 작성해 주세요.
구체적인 변경 사항이 궁금하신 분은 dfa9091ed32536fe8e8c22d57b56b3dd191290ec
커밋을 확인해 보세요.
@arkjunJuntai Park 따로 저장하게 해야겠네요… 귀찮아서 미뤄둔 일인데 결국 하긴 해야겠군요…
@hongminhee洪 民憙 (Hong Minhee) 앗. 지금은 잘 나옵니다!
@hongminhee洪 民憙 (Hong Minhee) 스레드 계정의 프로필 이미지는 instagram cdn을 함께 사용하는 것으로 보이는데 url 만료를 시키는 것으로 보이네요. Hackers' Pub에서
@chanjin65이찬진 님의 프사가 나오지 않습니다. (URL signature expired) 주기적으로 다시 긁어오거나, 별도 cdn 에 저장해야 하지 않을까 싶습니다. 😅
Juntai Park shared the below article:
연합우주(fediverse)와 ActivityPub 프로토콜 이해하기: 개발자를 위한 가이드

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
연합우주란 무엇일까?
X(구 Twitter)나 Instagram 같은 중앙화된 소셜 미디어에 지치셨나요? 데이터 프라이버시, 알고리즘 추천, 그리고 끊임없는 광고가 걱정되시나요? 여기 대안이 있습니다. 바로 연합우주(fediverse)입니다.
페디버스(fediverse)는 “federated”(연합된)와 “universe”(우주)를 합친 말로, 한국어권에서는 주로 “연합우주”라고 불립니다. 연합우주는 하나의 거대한 플랫폼이 아닌, 서로 대화할 수 있는 독립적인 서버(인스턴스)들의 네트워크입니다.
이게 어떻게 가능할까요? 바로 ActivityPub이라는 프로토콜 덕분입니다. 이 프로토콜은 서로 다른 소셜 미디어 플랫폼이 정보를 교환할 수 있게 해주는 공통 언어 같은 것입니다.
연합우주는 어떻게 작동하나요?
연합우주를 이해하는 가장 쉬운 방법은 이메일 시스템과 비교하는 것입니다.
Gmail 사용자가 네이버 메일 사용자에게 이메일을 보낼 수 있는 것처럼, Mastodon 사용자는 Misskey나 PeerTube 사용자와 소통할 수 있습니다. (Mastodon, Misskey, PeerTube가 무엇인지는 아래에서 설명하겠습니다. Gmail과 네이버처럼 서로 다른 서비스라고 보시면 됩니다.) 이것이 가능한 이유는 이 서비스들이 모두 같은 언어인 ActivityPub 프로토콜로 대화하기 때문입니다.
연합우주에서 사용자 ID는 @사용자명@인스턴스.도메인
형식으로 되어 있습니다. 이메일 주소와 매우 비슷하죠? 예를 들면:
@honggildong@mastodon.social
: mastodon.social 인스턴스 사용자@kimcheolsu@pixelfed.social
: pixelfed.social 인스턴스 사용자@leeyeonghui@misskey.io
: misskey.io 인스턴스 사용자
연합우주의 다양한 플랫폼 둘러보기
연합우주는 마치 여러 행성으로 이루어진 태양계 같습니다. 각 행성(플랫폼)은 고유한 특성을 가지고 있지만, 모두 같은 우주(연합우주)에 속해 있죠. 아래 표에서 주요 플랫폼들을 살펴봅시다:
플랫폼 | 설명 | 주요 인스턴스 | 특징 |
---|---|---|---|
Mastodon | X(구 Twitter)와 유사한 마이크로블로깅 플랫폼 | • mastodon.social (공식 인스턴스) • 우리.인생 (한국 중심) |
500자 제한의 짧은 게시물, 해시태그, 컨텐츠 경고 기능 |
Misskey | 일본에서 개발된 고도로 커스터마이징 가능한 마이크로블로깅 플랫폼 | • misskey.io (가장 인기 있는 일본 인스턴스) • 스텔라 (한국 중심) |
리액션, 게임, 채팅 등 다양한 기능, 높은 커스터마이징 가능성 |
Pixelfed | Instagram과 유사한 이미지 공유 플랫폼 | • pixelfed.social (공식 인스턴스) • 추억:사진 (한국 중심) |
스토리, 필터, 발견 기능 |
PeerTube | YouTube와 유사한 비디오 호스팅 플랫폼 | • PeerTube.TV | P2P 기술로 비디오 스트리밍, 채널, 재생목록 |
WriteFreely | 미니멀한 블로그 플랫폼 | • write.as | Markdown 지원, 심플한 디자인 |
Lemmy | Reddit과 유사한 링크 애그리게이터 및 토론 플랫폼 | • lemmy.ml • YuruLemmy (한국 중심) |
커뮤니티(서브레딧과 유사), 투표, 토론 |
플랫폼 vs 인스턴스: 무슨 차이가 있을까?
연합우주를 이해할 때 흔히 혼동되는 개념이 있습니다. 바로 플랫폼(소프트웨어)과 인스턴스(서버)의 차이인데요.
플랫폼은 Mastodon, Misskey, Pixelfed와 같은 소프트웨어 자체를 의미합니다. 이들은 오픈 소스 소프트웨어로, 누구나 다운로드받아 설치할 수 있습니다.
인스턴스는 그 소프트웨어를 실행하는 개별 서버를 말합니다. mastodon.social과 우리.인생은 모두 Mastodon 플랫폼을 실행하는 별도의 인스턴스입니다.
Meta의 Threads 같은 일부 서비스는 플랫폼과 인스턴스가 동일합니다. 하지만 대부분의 연합우주 서비스는 여러 인스턴스로 구성되어 있습니다.
연합우주의 매력 포인트
연합우주가 갖는 몇 가지 매력적인 특징이 있습니다:
- 탈중앙화: 특정 기업이 모든 데이터와 규칙을 통제하지 않습니다. 각 인스턴스는 자체 규칙을 가질 수 있습니다.
- 데이터 주권: 자신의 데이터에 대한 더 많은 통제권을 가질 수 있습니다.
- 검열 저항성: 한 인스턴스가 차단되더라도 다른 인스턴스로 쉽게 이동할 수 있습니다.
- 커뮤니티 중심: 각 인스턴스는 특정 관심사나 지역 커뮤니티를 중심으로 형성됩니다.
- 다양성: 다양한 플랫폼과 인스턴스가 존재하여 선택의 폭이 넓습니다.
연합우주 시작하기
연합우주에 참여하는 것은 생각보다 쉽습니다:
- 자신의 관심사나 지역과 관련된 인스턴스를 선택합니다.
- 해당 인스턴스에 계정을 만듭니다.
- 다른 인스턴스의 사용자들을 팔로우하고 소통을 시작합니다!
한국 사용자라면 Mastodon 인스턴스인 우리.인생, Misskey 인스턴스인 스텔라 같은 한국어 중심 인스턴스를 추천합니다. 한국어 환경을 지원하고 한국 사용자들이 활발하게 활동하고 있어 시작하기 좋습니다.
아니면 이 글이 올라온 Hackers' Pub도 괜찮습니다. 소프트웨어 엔지니어들을 위한 소셜 미디어랍니다. 아직 개발중이라 공개적으로 가입을 받고 있지는 않습니다만, 홍민희에게 연락 주시면 계정을 생성해 드릴 수 있습니다.
ActivityPub: 연합우주의 심장
이제 개발자 관점에서 ActivityPub이 어떻게 작동하는지 자세히 살펴보겠습니다.
ActivityPub은 W3C에서 권장하는 표준 프로토콜로, 분산 소셜 네트워킹의 기반이 됩니다. ActivityStreams 2.0 데이터 형식을 기반으로 하며, 서로 다른 서버 간에 정보를 교환하는 방법을 정의합니다.
ActivityPub의 핵심 개념
ActivityPub은 몇 가지 핵심 개념으로 구성됩니다:
- 액터(actor): 사용자, 그룹 등 행동을 수행할 수 있는 주체입니다. 각 액터는 고유한 URL을 가지며, 수신함(inbox)과 발신함(outbox)을 가집니다.
- 액티비티(activity): 액터가 수행하는 행동으로, 게시물 작성, 댓글 좋아요, 다른 사용자 팔로우 등이 있습니다.
- 객체(object): 텍스트 게시물, 이미지, 비디오와 같이 생성되고 공유되는 콘텐츠입니다.
실제 작동 방식
홍길동(@honggildong@mastodon.social
)이 게시물을 작성하고, 이영희(@leeyeonghui@misskey.io
)가 이에 반응하는 과정을 살펴봅시다:
-
게시물 작성: 홍길동이 Mastodon에서 게시물을 작성합니다. Mastodon 서버는 이 게시물을 ActivityStreams 2.0 형식의
Create(Note)
액티비티로 변환합니다. 이 액티비티는 홍길동의 팔로워(이영희 포함)에게 전달됩니다. -
게시물 수신: 이영희의 Misskey 서버는 이 액티비티를 받고 처리하여 이영희의 타임라인에 홍길동의 게시물을 표시합니다.
-
상호작용: 이영희가 게시물에 좋아요를 누르면, Misskey 서버는
Like(Note)
액티비티를 생성하여 홍길동의 Mastodon 서버로 보냅니다. 홍길동은 이영희가 자신의 게시물을 좋아했다는 알림을 받게 됩니다.
마치 다른 언어를 사용하는 사람들이 통역사를 통해 대화하는 것과 비슷하죠? ActivityPub이 바로 그 통역사 역할을 합니다.
ActivityPub의 실제 메시지 들여다보기
개발자로서 실제 ActivityPub 메시지가 어떻게 생겼는지 궁금하실 텐데요. 몇 가지 예시를 살펴봅시다:
1. 사용자 프로필(액터) 정보
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1"
],
"id": "https://mastodon.social/users/honggildong",
"type": "Person",
"preferredUsername": "honggildong",
"name": "홍길동",
"summary": "연합우주의 개척자",
"inbox": "https://mastodon.social/users/honggildong/inbox",
"outbox": "https://mastodon.social/users/honggildong/outbox",
"followers": "https://mastodon.social/users/honggildong/followers",
"following": "https://mastodon.social/users/honggildong/following",
"publicKey": {
"id": "https://mastodon.social/users/honggildong#main-key",
"owner": "https://mastodon.social/users/honggildong",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
},
"icon": {
"type": "Image",
"mediaType": "image/jpeg",
"url": "https://mastodon.social/system/accounts/avatars/000/000/001/original/avatar.jpg"
}
}
이 JSON 데이터는 홍길동의 프로필 정보를 담고 있습니다. 사용자 이름, 소개, 프로필 사진 URL, 그리고 중요한 inbox
와 outbox
URL이 포함되어 있죠.
2. 게시물 작성 액티비티
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://mastodon.social/users/honggildong/statuses/123456/activity",
"type": "Create",
"actor": "https://mastodon.social/users/honggildong",
"published": "2025-02-21T14:30:00Z",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mastodon.social/users/honggildong/followers"
],
"object": {
"id": "https://mastodon.social/users/honggildong/statuses/123456",
"type": "Note",
"content": "<p>연합우주에 오신 것을 환영합니다! #fediverse #연합우주</p>",
"published": "2025-02-21T14:30:00Z",
"attributedTo": "https://mastodon.social/users/honggildong",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mastodon.social/users/honggildong/followers"
],
"tag": [
{
"type": "Hashtag",
"href": "https://mastodon.social/tags/fediverse",
"name": "#fediverse"
},
{
"type": "Hashtag",
"href": "https://mastodon.social/tags/연합우주",
"name": "#연합우주"
}
]
}
}
이것은 홍길동이 게시물을 작성했을 때 생성되는 Create(Note)
액티비티입니다. 게시물 내용, 해시태그, 공개 범위 등이 포함되어 있습니다.
3. 팔로우 액티비티
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://misskey.io/users/leeyeonghui/follow/1234",
"type": "Follow",
"actor": "https://misskey.io/users/leeyeonghui",
"object": "https://mastodon.social/users/honggildong"
}
이영희가 홍길동을 팔로우할 때 생성되는 Follow
액티비티입니다. 단순하죠?
ActivityPub 서버 구현하기: 개발자를 위한 팁
직접 ActivityPub 서버를 구현하고 싶다면 다음 단계를 따라야 합니다:
- 액터 구현: 사용자 프로필 정보를 ActivityStreams 형식으로 제공합니다.
- 수신함과 발신함 설정: HTTP 엔드포인트를 만들어 액티비티를 받고 전송합니다.
- 서명 및 인증: HTTP Signatures를 사용하여 요청을 서명하고 검증합니다.
- 액티비티 처리: 다양한 액티비티 유형(
Create
,Follow
,Like
등)을 처리하는 로직을 구현합니다. - 데이터 저장: 사용자, 게시물, 액티비티 등의 정보를 데이터베이스에 저장합니다.
- 연합 정책 구현: 어떤 인스턴스와 연합할지, 어떤 컨텐츠를 허용할지 등을 설정합니다.
개발을 시작하기 전에 Mastodon, Misskey 같은 기존 구현체의 코드를 살펴보는 것이 도움이 됩니다. 처음부터 모든 것을 구현하는 것보다 Fedify 같은 프레임워크를 활용하는 것도 좋은 방법입니다.
WebFinger: 사용자를 찾는 방법
연합우주에서 @leeyeonghui@misskey.io
같은 사용자 ID를 어떻게 실제 ActivityPub 액터 URL로 변환할까요? 그 비밀은 WebFinger 프로토콜에 있습니다:
GET https://misskey.io/.well-known/webfinger?resource=acct:leeyeonghui@misskey.io
이 요청을 보내면 서버는 다음과 같은 응답을 반환합니다:
{
"subject": "acct:leeyeonghui@misskey.io",
"links": [
{
"rel": "self",
"type": "application/activity+json",
"href": "https://misskey.io/users/leeyeonghui"
}
]
}
이제 https://misskey.io/users/leeyeonghui
URL을 통해 사용자의 전체 프로필 정보를 얻을 수 있습니다. 마치 전화번호부에서 이름으로 전화번호를 찾는 것과 비슷하죠!
연합우주의 도전 과제와 미래
연합우주는 계속 성장하고 있지만, 몇 가지 도전 과제도 있습니다:
- 확장성: 수많은 서버 간의 통신을 효율적으로 처리하는 것은 쉽지 않습니다.
- 모더레이션: 각 인스턴스가 자체 규칙을 가지므로 콘텐츠 조정에 일관성이 부족할 수 있습니다.
- 발견성: 중앙화된 플랫폼에 비해 새로운 사용자나 콘텐츠를 찾기 어려울 수 있습니다.
- 사용자 경험: 일부 플랫폼은 아직 UI/UX 측면에서 개선이 필요합니다.
그러나 Threads와 같은 주요 서비스들이 ActivityPub을 채택하기 시작하면서, 연합우주의 미래는 밝아 보입니다. 개발자로서, 이런 성장하는 생태계에 참여할 수 있는 기회가 많이 있습니다.
마무리
연합우주와 ActivityPub은 중앙화된 소셜 미디어의 대안으로서 점점 더 주목받고 있습니다. 사용자에게 더 많은 통제권을 부여하고, 다양하고 풍부한 온라인 경험을 제공하는 연합우주의 세계는 계속해서 확장되고 있습니다.
개발자로서, 여러분은 이 새로운 탈중앙화된 웹의 생태계에 기여할 수 있습니다. 기존 애플리케이션에 ActivityPub 지원을 추가하거나, 완전히 새로운 서비스를 만들거나, 현재의 도전 과제를 해결하는 솔루션을 개발할 수 있습니다.
한국 개발자들의 참여가 늘어나면 한국 사용자들을 위한 더 다양하고 풍부한 서비스가 생길 것이고, 이는 더 건강하고 다양한 인터넷 문화를 만드는 데 기여할 것입니다.
그럼, 연합우주로의 여행을 시작해 보시는 건 어떨까요?
개발자를 위한 블로깅 서비스이자, velog를 대체할 수도 있는 플랫폼인 Hackers Pub에 입문하는 분들을 위한 가이드를 작성했습니다.
혹시 관심있는 분들은 인스타 DM으로 이메일 알려주시면 초대장 드리도록 하겠습니다.
https://hackers.pub/@kodingwarrior/2025/guide-to-hackerspub-for-korean-users
Hacker's Pub에 입문한 한국어권 여러분을 위한 안내서
먼저 터를 잡은 사람으로서 Hacker's Pub에 오신 여러분들을 환영합니다. 현재 추정하건데 150명이 넘는 분들께서 Hacker's Pub에 들어오고 계신 것 같은데요. 물이 들어오면.... 노를 젓는게 인지상정이겠죠? 이 서비스가 만들어진 초기부터 관심을 가져왔고, 이 서비스의 가능성을 믿는 사람으로서 여러분에게 안내를 드리고자 합니다.Hacker's Pub은 무엇을 하는 곳인가요? Hacker's Pub은 소프트웨어 업계에 몸을 담고 있는 여러분들의 찰나의 생각, 혹은 장문의 정제된 생각들을 자유롭게 개시할 수 있는 소셜 네트워크 서비스이자, 블로깅 플랫폼입니다. 여러분은 그때그때 드는 생각들을 올려서 다른 사람들과 자유롭게 소통이 가능합니다. Hacker's Pub 이라는 이름은 중의적인 의미를 가지고 있습니다.ActivityPub 프로토콜을 지원하는 해커들을 위한 커뮤니티Hacker's + Pub - 해커들이 자유롭게 웃고 떠들 수 있는 주점<Hacker's Pub이라는 커뮤니티에 애정을 가지고 있는 저로서는, 여기에 들어오시는 모든 분들이 Pub에 들렸다가 가는 것처럼 편안한 공간으로 느껴지시길 바랍니다. 우리 모두가 편안함 경험을 누릴 수 있도록 초대제로 운영이 되고 있습니다. 또한, 사회적 합의로서 행동강령도 마련되어 있으니 한번 참고해보시면 좋을 것 같습니다.ActivityPub 프로토콜이란 무엇인가요? Hacker's Pub은 ActivityPub 프로토콜을 지원하는 커뮤니티서비스입니다. 그렇다면, ActivityPub은 무엇일까요? ActivityPub은 웹 상의 분산형 소셜 네트워크를 구현하기 위한 국제 표준 프로토콜로, W3C에서 표준화되었습니다. Mastodon, Misskey, Pleroma 등 다양한 SNS 서비스들이 이 프로토콜을 기반으로 상호 호환되며 자유롭게 소통할 수 있도록 지원합니다. 쉽게 말해, 어떤 SNS를 사용하더라도 경계를 넘어 서로 소통할 수 있도록 돕는 것이 ActivityPub의 핵심입니다. ActivityPub에 대한 자세한 설명은 여기가 정말 잘 되어 있으니 관심있는 분들은 한번 정독해보시는걸 권장드립니다. Hacker's Pub을 이용하는 여러분들은 ActivityPub 프로토콜을 사용하는 모든 SNS 서비스(Mastodon, Misskey 등)의 사람들과 연결이 되어 있으며, 심지어 Bluesky에 있는 사람들과 연결이 되어 플랫폼의 경계가 허물어져 있는, 사실상 초연결적인 사회의 경험을 누릴 수 있습니다.Hacker's Pub 생태계에 기여하기 Hacker's Pub은 아직 Early Stage 단계이며, 여전히 개선하고 발전해야 하는 여지는 있습니다. Hacker's Pub은 모든 것이 오픈소스로 개발되는, 전적으로 개방된 커뮤니티 서비스이기 때문에 여러분도 생태계의 발전에 기여할 수 있습니다. 해커들을 위한 공간이니만큼, 어느 누구에게도 기여는 열려있습니다. 여러분은 여기에서 실시간으로 기여에 참여하실 수 있습니다. 경우에 따라서는 Hacker's Pub에 당장은 기여하기가 어려울 수도 있습니다. ActivityPub 프로토콜에 대한 사전지식이라던가 혹은 서비스가 만들어진 기술스택에 대한 사전지식 같은 것들이 진입장벽이 될 수는 있을 것이거든요. 그렇다고 해도 괜찮습니다. ActivityPub에 대한 이해는 한국 연합우주 개발자 모임에서 함께 커뮤니티 차원에서 함께 알아가면 됩니다. 더불어, 시간이 지나면 Hacker's Pub 주변 생태계도 더더욱 발전할 수 있을 것이라 믿습니다. 당장은 서버와 클라이언트가 합쳐져서 개발되고 있는 형태이지만, 조만간 서버와 클라이언트가 분리되어서 개발될 예정이고, Mastodon/Misskey 같은 다른 ActivityPub 기반의 서비스가 그래왔듯, 우리만의 Hacker's Pub 클라이언트를 만들게 되는 날도 올 것입니다. Hashnode 처럼 Hacker's Pub 블로그 템플릿 같은 것이 만들어지는 미래, 기대되지 않나요?함께 만들어가는 Hacker's Pub Hacker's Pub은 해커들을 위한 공간인 동시에, 모든 분들이 각자의 색깔과 생각을 마음껏 표현할 수 있는 열린 무대입니다. 우리 커뮤니티는 상호 존중과 신뢰를 기반으로 하며, 이를 위해 마련된 행동강령을 준수하는 동시에, 우리 모두의 다양한 의견과 피드백이 존중될 수 있는 공간입니다. 만약 새로운 아이디어나 개선 사항이 있다면 언제든지 의견을 공유해도 됩니다. 우리 모두의 참여가 바로 Hacker's Pub의 미래를 밝게 만드는 원동력입니다.
hackers.pub · Hackers' Pub
Link author: Jaeyeol Lee@kodingwarrior@hackers.pub
Juntai Park replied to the below article:
페디버스에서 어떤 사람들을 팔로하면 좋을까?

Jaeyeol Lee @kodingwarrior@hackers.pub
페디버스 입문이 막막한 개발자들을 위해, Hackers' Pub을 포함한 ActivityPub 기반 서비스 활용법을 소개합니다. 트위터와 달리 추천 기능이 부족한 페디버스에서, 어떤 인스턴스를 선택하고 누구를 팔로우해야 할지 어려움을 겪는 분들을 위해 유용한 정보들을 제공합니다. 먼저, 개발자들이 많이 모여있는 국내외 마스토돈 인스턴스들을 소개합니다. silicon.moe, hachyderm.io, emacs.ch 등 다양한 관심사에 맞는 인스턴스를 선택할 수 있습니다. 또한, Geeknews Bot, Hacker News, Lobsters 등 개발 관련 뉴스를 제공하는 계정들과, Mastodon, Golang, Asahi Linux 등 오픈소스 프로젝트에 기여하는 개발자들을 팔로우하여 유용한 정보를 얻을 수 있습니다. 이 글은 페디버스 생태계에서 개발자들이 양질의 정보를 얻고 소통할 수 있도록 돕는 것을 목표로 합니다. 페디버스 입문자들이 자신에게 맞는 인스턴스와 계정을 찾아 팔로우함으로써, 더욱 풍부하고 유익한 경험을 할 수 있도록 안내합니다.
Read more →@kodingwarriorJaeyeol Lee 감사합니다.🙏 이렇게 또 연합우주에 대해 조금씩 알아갑니다.
해커스펍이 터졌었나보군요! (이상하다 아직 전원버튼 안 눌렀는데)
@diarapin금강토 혹시나 했으나 (농담입니다😂) 토끼는 이번 서버 다운 사태와 무관하다는 것이 업계의 정설…
Juntai Park shared the below article:
만약 디스콰이엇에 해커스펍 글 올리면

alternative @alternative@hackers.pub
이 프롬프트는 기술 포스팅 요약을 위한 것이므로, "업보트 해드릴게요 ㅋㅋㅋㅋㅋㅋㅋㅋ"와 같은 댓글에는 적합하지 않습니다. 이 프롬프트는 기술적인 글을 요약하는 데 특화되어 있으며, 댓글이나 일반적인 대화에는 적용될 수 없습니다.
Read more →팔로워 100명 찍으면 초대는 좀 소극적으로 하고 컨텐츠를 좀 더 적극적으로 채울거야!
해커스펍이 터졌었나보군요! (이상하다 아직 전원버튼 안 눌렀는데)
Juntai Park shared the below article:
페디버스에서 어떤 사람들을 팔로하면 좋을까?

Jaeyeol Lee @kodingwarrior@hackers.pub
페디버스 입문이 막막한 개발자들을 위해, Hackers' Pub을 포함한 ActivityPub 기반 서비스 활용법을 소개합니다. 트위터와 달리 추천 기능이 부족한 페디버스에서, 어떤 인스턴스를 선택하고 누구를 팔로우해야 할지 어려움을 겪는 분들을 위해 유용한 정보들을 제공합니다. 먼저, 개발자들이 많이 모여있는 국내외 마스토돈 인스턴스들을 소개합니다. silicon.moe, hachyderm.io, emacs.ch 등 다양한 관심사에 맞는 인스턴스를 선택할 수 있습니다. 또한, Geeknews Bot, Hacker News, Lobsters 등 개발 관련 뉴스를 제공하는 계정들과, Mastodon, Golang, Asahi Linux 등 오픈소스 프로젝트에 기여하는 개발자들을 팔로우하여 유용한 정보를 얻을 수 있습니다. 이 글은 페디버스 생태계에서 개발자들이 양질의 정보를 얻고 소통할 수 있도록 돕는 것을 목표로 합니다. 페디버스 입문자들이 자신에게 맞는 인스턴스와 계정을 찾아 팔로우함으로써, 더욱 풍부하고 유익한 경험을 할 수 있도록 안내합니다.
Read more →Hackers' Pub 타임라인에 내부적인 개선이 있었습니다. 이제까지는 타임라인을 렌더링하기 위해 실시간으로 복잡한 조건의 SQL
을 실행하는 방식이었지만, 이제는 글이 작성될 때 구독자의 수신함(inbox)에 글이 들어가는 방식으로 바뀌었습니다. 타임라인을 렌더링할 때는 각자의 수신함만 확인하면 되기 때문에 훨씬 조건이 간단해진 것입니다.
더불어, 같은 글을 여러 사람이 공유했을 때 타임라인이 같은 글로 도배되던 문제를 해결했습니다. 이제는 마지막에 공유한 사람의 글만 딱 하나 보이게 됩니다.
이번 변경에 관해 궁금하신 분은 f692909cdd5149c68ca5a91fb4e964042115ab83
커밋을 확인하시면 되겠습니다.
이 변경을 배포하다가 데이터베이스 스키마 마이그레이션이 PostgreSQL을 멈추게 하여 Hackers' Pub이 몇 분 동안 내려가는 일이 있었습니다. 마이그레이션 SQL이 너무 비효율적이라 그랬던 것인데요, Claude Code의 도움을 받아 하나의 비효율적인 SQL을 몇 개의 SQL로 나눠서 실행하게끔 고쳐서 해결했습니다. 이 역시 궁금하신 분은 33f2209f206bee84ddf5d1a7124527dade948610
커밋을 확인하시면 됩니다.
앞으로는 더 안정적인 서비스 운영을 위해 노력하겠습니다. 죄송하고 감사합니다.
@hongminhee洪 民憙 (Hong Minhee) 타임라인의 중복 글이 사라지고 깔끔해져서 너무 좋습니다. 👍
Hackers' Pub 타임라인에 내부적인 개선이 있었습니다. 이제까지는 타임라인을 렌더링하기 위해 실시간으로 복잡한 조건의 SQL
을 실행하는 방식이었지만, 이제는 글이 작성될 때 구독자의 수신함(inbox)에 글이 들어가는 방식으로 바뀌었습니다. 타임라인을 렌더링할 때는 각자의 수신함만 확인하면 되기 때문에 훨씬 조건이 간단해진 것입니다.
더불어, 같은 글을 여러 사람이 공유했을 때 타임라인이 같은 글로 도배되던 문제를 해결했습니다. 이제는 마지막에 공유한 사람의 글만 딱 하나 보이게 됩니다.
이번 변경에 관해 궁금하신 분은 f692909cdd5149c68ca5a91fb4e964042115ab83
커밋을 확인하시면 되겠습니다.
이 변경을 배포하다가 데이터베이스 스키마 마이그레이션이 PostgreSQL을 멈추게 하여 Hackers' Pub이 몇 분 동안 내려가는 일이 있었습니다. 마이그레이션 SQL이 너무 비효율적이라 그랬던 것인데요, Claude Code의 도움을 받아 하나의 비효율적인 SQL을 몇 개의 SQL로 나눠서 실행하게끔 고쳐서 해결했습니다. 이 역시 궁금하신 분은 33f2209f206bee84ddf5d1a7124527dade948610
커밋을 확인하시면 됩니다.
앞으로는 더 안정적인 서비스 운영을 위해 노력하겠습니다. 죄송하고 감사합니다.
Juntai Park shared the below article:
Vim이랑 Neovim은 어떻게 다를까?

Jaeyeol Lee @kodingwarrior@hackers.pub
이 글은 Vim과 Neovim의 결정적인 차이점을 명확히 설명하며, 독자들의 궁금증을 해소하고자 합니다. Vim은 VimScript를 사용하는 반면, Neovim은 Lua를 사용하여 커스터마이징할 수 있다는 점을 강조합니다. Lua는 VimScript에 비해 가독성이 좋고, macOS 자동화 툴인 Hammerspoon이나 터미널 에뮬레이터 Wezterm과 같은 Unix CLI 프로그램 설정에 널리 사용됩니다. 또한, Neovim은 LuaRocks 패키지 매니저를 통해 다양한 패키지를 활용할 수 있으며, Telescope, nvim-cmp, Treesitter와 같은 강력한 플러그인 생태계를 자랑합니다. 특히, Treesitter는 소스 코드를 트리 구조로 분석하여 코드 탐색 및 조작을 용이하게 해줍니다. Language Server 지원도 준수하며, coc-nvim을 통해 편리하게 설정할 수 있습니다. 이 글은 Vim과 Neovim 중 어떤 에디터를 선택할지 고민하는 개발자에게 유용한 정보를 제공하며, Neovim의 강력한 기능과 확장성을 통해 생산성을 향상시킬 수 있음을 시사합니다.
Read more →GN⁺: Microsoft, Windows 11 설치시에 로컬 계정 생성을 우회하던 구멍 차단 예정
------------------------------
- Microsoft는 Windows 11 설치 시 인터넷 연결 및 Microsoft 계정 로그인을 우회할 수 있는 잘 알려진 방법을 차단할 예정임
- 즉, *윈도 11 설치시에 인터넷 연결과 Microsoft 계정이 필수* 가 됨
- 최신 Windows 11 Insider Preview 빌드에서는 bypassnro.cmd
스크립트가 제거
- 이 스크립트는 새로운 PC…
------------------------------
https://news.hada.io/topic?id=20032&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
메모: 초대장 보낼 때 언어 선택 가능하게 할 것.
TracePerf - Node.js용 성능 추적/실행 모니터링 도구
------------------------------
- 복잡한 함수 흐름과 메모리 사용을 효율적으로 분석할 수 있도록 설계된 오픈소스 도구
- CommonJS와 ESM 환경 모두를 지원하며, 브라우저에서도 동일한 API를 제공하는 것이 큰 장점
- *고성능 실행 시간 추적* : 오버헤드를 최소화하면서 함수 실행 시간을 정확히 측정
- *메모리 사용 추적* : 함수별 메모…
------------------------------
https://news.hada.io/topic?id=20031&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
해커스펍에 처음 방문해 봤습니다. 아직까지는 어떻게 활용해야 할 지 잘 모르겠지만, 쓰다 보면 금방 적응하겠죠. 반갑습니다 😆
@renegade_v00카미유 반갑습니다. 기술 관련도 좋고 아니면 해커즈펍에 관한 감상이라거나 아무거나 써보는 것은 어떨까요? 😆
📢 nove-b's blog
📝 【2025年3月】4月から変わる環境に備える
🔗 https://blog.nove-b.dev/post/2025-3/
@arkjunJuntai Park 님께도 감사의 말씀 드립니다! 🙏🏼🙇🏻♂️
@curry박준규 님도 고맙습니다! 🙏🏼🙇🏻♂️
@curry박준규 님도 고맙습니다! 🙏🏼🙇🏻♂️
@hongminhee洪 民憙 (Hong Minhee)
@curry박준규 오늘도 훈훈한 Hackers' Pub! 주말내내 마지막 꽃샘추위인지 밖은 추운데 이곳은 따뜻하네요. 😂
RubyKaigi 2025 スピーカーからのメッセージ
- 著者:るびま編集部.
- 初稿:2025-03-23
2025 年も RubyKaigi が近づいてきましたね。
https://magazine.rubyist.net/articles/0065/0065-RubyKaigi2025MessagesFromSpeakers.html
I received a heartwarming #testimonial about #Fedify today!
@bglbgl gwyng shared in the FediDev KR Discord server:
I had trouble finding good resources explaining ActivityPub, but after reading through the Fedify docs from start to finish, I feel like I've actually digested it.
They also posted on their Hackers' Pub:
If you want to learn ActivityPub efficiently, just read the Fedify docs from beginning to end.
This makes all the documentation work worthwhile. Glad our docs are helping people understand not just Fedify, but #ActivityPub itself.
10년간 프로그래밍 하면서 제가 프로그래밍을 좋아한다는 것은 확실히 알았습니다. 그런데, 좋아한다고 해서 아무 프로그래밍 관련 직업을 얻으면 되는지 항상 의문이었습니다.
저는 프로그래밍을 정말 좋아합니다만, 프로그래밍의 과정 자체를 즐기는 것이지, 프로그래밍을 사용하는 목적에 대해 생각해본 적이 거의 없었어요. 10년 동안!
심지어 대학생 때에는 프로그래밍이 너무 지긋지긋해서 그만 두어야 하나 고민도 했구요.
그런데, 졸업 후에 부트캠프에서 교육을 받기 시작하면서 역시 저는 프로그래밍을 그만둘 수 없다는 걸 알았습니다. 뿐만 아니라, 제가 좋아하는 것을 더 발견했습니다.
저는 제가 가진 지식을 공유하는 것에 보람을 느낍니다. 누군가에게 더 나은 방향을 제시하고, 더 좋은 방법을 고민하는 것이 즐겁습니다. 역시 저는 개발자가 되어야 한다고 생각하는 요즘이네요.
그러고 보니 해시태그도 지원해야…
ActivityPub 효율적으로 익히려면 그냥 fedify 문서 첨부터 끝까지 읽으면 되는듯요
네이버에서 이런 걸 왜 만들었을까?
Tamgu는 Prolog에서 영감을 받은 술어 엔진과 Haskell 언어에서 영감을 받은 기능적 기능을 갖춘 명령형 언어입니다. 이 세 가지 프로그래밍 스타일을 자유롭게 혼합할 수 있습니다.
@curry박준규 한국 네이버 법인은 아니고 네이버 랩스 유럽 쪽의 작품입니다. https://europe.naverlabs.com/blog/tamgu/
https://svrforum.com 서버와 관련된 한국어 글이 꽤 많아 혼자 서버 공부하기에도 부족함이 없음
@arkjunJuntai Park 32GB 최대로 했습니다 ㅎㅎ
@hongminhee洪 民憙 (Hong Minhee) 오. 32기가 좋네요. 너무 쾌적할 것 같아요. (8기가램도 잘 쓰고 있지만😆)
컼 점점 중간에 ㅌㅌ할 수 없게 되어버린다
RE: https://hackers.pub/@hongminhee/0195e0f7-8c44-76c6-8c60-4f1978e5f4a2
오늘 확인해 보니 한국 Apple 온라인 스토어에서 MacBook Air M4 주문이 가능해져서 바로 주문했다!
@hongminhee洪 民憙 (Hong Minhee) 오. 드디어 나왔군요. 몇 기가 램으로 하셨나요?
해커스펍 계정은 쓰기 전용으로, 우리인생은 읽기전용으로 사용하고 있다. 또는 기술 관련 콘텐츠는 해커스펍에 올리고 일상은 우리인생에 올리려고 한다.
클라이언트는 팬피를 쓰고 있는데 해커스펍은 마스토돈 API 구현이 안 되어 있어서 팬피에는 우리인생 계정을 연동했다.
그런데 팬피에서 재밌게 글을 읽다 보면 무심코 팬피에서(우리인생 계정으로) 해커스펍 글에 댓글을 달아서 뭔가 곤란하다⋯
그리고 해커스펍에 오신 분들은 거의 다 팔로우를 하고 있는데 동시에 우리인생에서도 팔로우를 해야해서(팬피에서 읽어야 하니까) 불편하다.
GN⁺: Gemini 2.5 Pro는 코딩 성능이 최고 수준(SOTA)인 모델임
------------------------------
- Google이 출시한 Gemini 2.5 Pro는 GPT-4o의 화려한 이미지 생성 기능 출시로 주목을 덜 받았지만, 실제로는 중요한 발전임
- *코드 작성 성능이 매우 뛰어나고* , 최대 100만 토큰의 컨텍스트 길이로 전체 코드베이스를 처리할 수 있는 성능을 제공
- 사용자 피드백도 매우 긍정적이며, 실제 코딩 테스트에서 우…
------------------------------
https://news.hada.io/topic?id=20026&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
@curry박준규 알림기능이 먼저 만들어질지 아니면 마스토돈 API 지원이 먼저일지 세기의 경쟁
@kodingwarriorJaeyeol Lee
@curry박준규 알림은 조만간 구현 예정이고, Mastodon API는 아마도 구현 안 될 것 같아요. 대신
@xiniha 님 주도로 GraphQL API가 생길 예정!
제미니 2.5 프로랑 클로드 3.7이랑 코딩배틀이라도 해야...
Powershell, winget, Windows terminal이 안정화되면서 윈도에서 작업이 매우 편리해졌다.
오에카키 커뮤니티 오이카페를 오픈 소스로 공개했습니다.
Rust, Axum, MiniJinja, HTMX 등으로 만들었고, 그림판은 PaintBBS NEO와 tegaki.js를 지원합니다.
많은 관심 부탁드립니다!
네이버에서 이런 걸 왜 만들었을까?
Tamgu는 Prolog에서 영감을 받은 술어 엔진과 Haskell 언어에서 영감을 받은 기능적 기능을 갖춘 명령형 언어입니다. 이 세 가지 프로그래밍 스타일을 자유롭게 혼합할 수 있습니다.
소프트웨어 개발자들이 자주 틀리는 외래어 표기법.
영어 | 틀린 표기 | 올바른 표기 |
---|---|---|
app | 어플 | 앱 |
application | 어플리케이션 | 애플리케이션 |
directory | 디렉토리 | 디렉터리 |
front-end | 프론트엔드 | 프런트엔드 |
message | 메세지 | 메시지 |
method | 메소드 | 메서드 |
release | 릴리즈 | 릴리스 |
repository | 레포지토리 | 리포지터리 |
또 있을까요?
@hongminhee洪 民憙 (Hong Minhee) 꼭 외래어만 그런 건 아니지만 ㅐ와 ㅔ의 혼선이 제법 있는데, 이를테면 lag 랙("렉"으로 틀림) 같은 사례가 있습니다. 그 밖에는 daemon 다이먼(동계어인 demon에 이끌려 "데몬"이 널리 쓰이지만, 애초에 demon의 올바른 표기는 "디먼"임) 같은 게 생각나네요. 뭐 알아도 그렇게 안 쓰는 사람이 너무 많아서 대부분 틀린 표기로 쓰게 되지만...
소프트웨어 개발자들이 자주 틀리는 외래어 표기법.
영어 | 틀린 표기 | 올바른 표기 |
---|---|---|
app | 어플 | 앱 |
application | 어플리케이션 | 애플리케이션 |
directory | 디렉토리 | 디렉터리 |
front-end | 프론트엔드 | 프런트엔드 |
message | 메세지 | 메시지 |
method | 메소드 | 메서드 |
release | 릴리즈 | 릴리스 |
repository | 레포지토리 | 리포지터리 |
또 있을까요?
@hongminhee洪 民憙 (Hong Minhee) 포털과 포탈도 있습니다.
그냥 밈 템플릿인 줄 알았는데 토르발즈 돌려까기여서 너무웃겨
JellyPo replied to the below article:
한국 소프트웨어 개발자들이 자주 틀리는 외래어 표기법

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
전에 단문으로 올렸던 글을 지속적으로 갱신해볼까 싶어 게시글로 만들어 봅니다.
영어 | 틀린 표기 | 올바른 표기 |
---|---|---|
algorithm | 알고리즘 | 알고리듬 |
app | 어플 | 앱 |
application | 어플리케이션 | 애플리케이션 |
BASIC | 베이직 | 베이식 |
directory | 디렉토리 | 디렉터리 |
front-end | 프론트엔드 | 프런트엔드 |
launch | 런치 | 론치 |
license | 라이센스 | 라이선스 |
message | 메세지 | 메시지 |
method | 메소드 | 메서드 |
parallel | 페러렐 | 패럴렐 |
proxy | 프록시 | 프락시 |
release | 릴리즈 | 릴리스 |
repository | 레포지토리 | 리파지터리 |
shader | 쉐이더 | 셰이더 |
shell | 쉘 | 셸 |
저는 @hongminhee洪 民憙 (Hong Minhee) 님께서 올려주신 표에서 디렉터리, 메시지 외엔 모두 틀린 표현을 쓰고 있거든요.
믿을 수 없는 현실에 충격을 받아, 어떻게든 부정해보고자 온라인 가나다에서 확인해보니 메서드(https://www.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=216&qna_seq=309723)와 같이 상정되지 않은 사례 한 개 정도 밖에 없네요.
대체 왜 틀린 표기를 쓰고 있었을까요? orz
@hongminhee洪 民憙 (Hong Minhee) 마음가짐은 언제나 마지막 회사라는 설정으로 다니고 있습니다. 😅 좀 더 한다면 15년 정도일까 싶습니다. (그때 환갑인데, 기력이 될까 모르겠어요.)
마지막 퇴장은 젊은 개발자들에게 더 나은 길을 만들어 주고 싶다는 작은 욕망은 있습니다. 😂
@arkjunJuntai Park 직업으로서 소프트웨어 개발자를 그만 두더라도, 취미로 계속할 수 있는 것 아니겠어요!?
OpenAI は、ClosedAIに名前を変えて欲しい。
퍼블릭도메인 또는 그에 가까운 라이센스를 선호하는 소프트웨어 엔지니어와 좀더 제한적인 라이센스를 선호하는 엔지니어, 비 오픈소스 엔지니어가 AI 코딩을 대하는 생각은 다 다를 것 같다
퍼블릭도메인 또는 그에 가까운 라이센스를 선호하는 소프트웨어 엔지니어와 좀더 제한적인 라이센스를 선호하는 엔지니어, 비 오픈소스 엔지니어가 AI 코딩을 대하는 생각은 다 다를 것 같다
나는 내 코드 가져다 쓰는건 상관없는데 그보다는 기껏 코드 공개해놨더니 말그대로 지구 태워가며 돈버는데 쓰이는게 싫다
@arkjunJuntai Park 직업으로서 소프트웨어 개발자를 그만 두더라도, 취미로 계속할 수 있는 것 아니겠어요!?
@hongminhee洪 民憙 (Hong Minhee) 맞습니다. 정확히는 회사원 (더 정확하게는 현재 회사에서의 생활) 이라고 정정하고 싶습니다. 😅 단어 선택에 조심해야겠습니다. 😅
We're excited to announce the release of Fedify 1.5.0! This version brings several significant improvements to performance, configurability, and developer experience. Let's dive into what's new:
Two-Stage Fan-out Architecture for Efficient Activity Delivery
#Fedify now implements a smart fan-out mechanism for delivering activities to large audiences. This change is particularly valuable for accounts with many followers. When sending activities to many recipients, Fedify now creates a single consolidated message containing the activity payload and recipient list, which a background worker then processes to re-enqueue individual delivery tasks.
This architectural improvement delivers several benefits: Context.sendActivity()
returns almost instantly even with thousands of recipients, memory consumption is dramatically reduced by avoiding payload duplication, UI responsiveness improves since web requests complete quickly, and the system maintains reliability with independent retry logic for each delivery.
For specific requirements, we've added a new fanout
option with three settings:
// Configuring fan-out behavior
await ctx.sendActivity(
{ identifier: "alice" },
recipients,
activity,
{ fanout: "auto" } // Default: automatic based on recipient count
// Other options: "skip" (never use fan-out) or "force" (always use fan-out)
);
Canonical Origin Support for Multi-Domain Setups
You can now explicitly configure a canonical origin for your server, which is especially useful for multi-domain setups. This feature allows you to set different domains for WebFinger handles and #ActivityPub URIs, configured through the new origin
option in createFederation()
. This enhancement prevents unexpected URL construction when requests bypass proxies and improves security by ensuring consistent domain usage.
const federation = createFederation({
// Use example.com for handles but ap.example.com for ActivityPub URIs
origin: {
handleHost: "example.com",
webOrigin: "https://ap.example.com",
},
// Other options...
});
Optional Followers Collection Synchronization
Followers collection synchronization (FEP-8fcf) is now opt-in rather than automatic. This feature must now be explicitly enabled through the syncCollection
option, giving developers more control over when to include followers collection digests. This change improves network efficiency by reducing unnecessary synchronization traffic.
await ctx.sendActivity(
{ identifier: sender },
"followers",
activity,
{
preferSharedInbox: true,
syncCollection: true, // Explicitly enable collection synchronization
}
);
Enhanced Key Format Compatibility
Key format support has been expanded for better interoperability. Fedify now accepts PEM-PKCS#1 format in addition to PEM-SPKI for RSA public keys. We've added importPkcs1()
and importPem()
functions for additional flexibility, which improves compatibility with a wider range of ActivityPub implementations.
Improved Key Selection Logic
The key selection process is now more intelligent. The fetchKey()
function can now select the public key of an actor if keyId
has no fragment and the actor has only one public key. This enhancement simplifies key handling in common scenarios and provides better compatibility with implementations that don't specify fragment identifiers.
New Authorization Options
Authorization handling has been enhanced with new options for the RequestContext.getSignedKey()
and getSignedKeyOwner()
methods. This provides more flexible control over authentication and authorization flows. We've deprecated older parameter-based approaches in favor of the more flexible method-based approach.
Efficient Bulk Message Queueing
Message queue performance is improved with bulk operations. We've added an optional enqueueMany()
method to the MessageQueue
interface, enabling efficient queueing of multiple messages in a single operation. This reduces overhead when processing batches of activities. All our message queue implementations have been updated to support this new operation:
- @fedify/redis 0.4.0
- @fedify/postgres 0.3.0
- @fedify/amqp 0.2.0
If you're using any of these packages, make sure to update them alongside Fedify to take advantage of the more efficient bulk message queueing.
CLI Improvements
The Fedify command-line tools have been enhanced with an improved web interface for the fedify inbox
command. We've added the Fedify logo with the cute dinosaur at the top of the page and made it easier to copy the fediverse handle of the ephemeral actor. We've also fixed issues with the web interface when installed via deno install
from JSR.
Additional Improvements and Bug Fixes
- Updated dependencies, including @js-temporal/polyfill to 0.5.0 for Node.js and Bun
- Fixed bundler errors with uri-template-router on Rollup
- Improved error handling and logging for document loader when KV store operations fail
- Added more log messages using the LogTape library
- Internalized the multibase package for better maintenance and compatibility
For the complete list of changes, please refer to the changelog.
To update to Fedify 1.5.0, run:
# For Deno
deno add jsr:@fedify/fedify@1.5.0
# For npm
npm add @fedify/fedify@1.5.0
# For Bun
bun add @fedify/fedify@1.5.0
Thank you to all contributors who helped make this release possible!