Profile img

개발곰

@gaebalgom@hackers.pub · 22 following · 23 followers

개발곰의 해커스펍 계정 - 개발 외적인 내용은 yuri.garden에서 찾아주세요.

프론트엔드를 기반으로 JS/TS 전반에 관심이 많습니다. 요즘에는 홈서버 구축을 어떻게 할지 관심을 두고 있습니다.

GitHub
@dodok8
Misskey
@gaebalgom@yuri.garden
0
0
0
1

Fresh와의 안 좋은 첫 만남: @fedify/fresh 제작기 - 1

개발곰 @gaebalgom@hackers.pub

Deno 팀에서 개발하는 Fresh 프레임워크를 Fedify 프로젝트에 통합하는 과정에서 겪은 문제점을 공유합니다. Fresh 2.X 버전으로 업데이트되면서 기존 코드와의 호환성 문제가 발생했고, Fedify 패키지 구조 변경으로 인해 Fresh 통합을 위한 별도 패키지를 만들어야 했습니다. 개발 환경 설정 중 `node_modules` 관련 오류와 Preact 렌더링 문제가 발생했으며, Fedify 미들웨어 적용 시 Vite의 SSR Module Runner가 CJS를 지원하지 않아 서버 실행에 실패했습니다. Vite 설정에서 외부 의존성을 지정하여 개발 서버 문제를 해결했지만, 빌드 후 실행 시 CJS 관련 문제가 다시 발생하여 Rollup 옵션을 조정해야 했습니다. 이 글은 Fresh와 Fedify를 통합하려는 개발자들이 겪을 수 있는 어려움을 해결하는 데 도움이 될 것입니다.

Read more →
4

개발곰 shared the below article:

브라우저 스터디 기록 (1)

Jaeyeol Lee @kodingwarrior@hackers.pub

이 글은 Web Browser Engineering 교재를 독학하며 연습문제를 풀이하는 과정을 담고 있습니다. 저자는 추상화 수준에 대한 고민을 드러내며, URL 클래스의 request 메서드 대신 Connection 클래스를 도입하여 소켓 관리를 더 자연스럽게 처리했습니다. 또한, 타입 힌트 적용과 pytest를 이용한 유닛 테스트 환경 구축 등 실습 환경을 풍성하게 구성하는 데 LLM의 도움을 받아 효율성을 높였습니다. 연습문제 풀이에서는 keep-alive 지원의 중요성을 강조하며, TCP handshake 비용 절감 여부를 직접 실험해볼 것을 권장합니다. 리다이렉션 문제에서는 Location 헤더의 다양한 케이스 처리와 최대 리다이렉션 횟수 제한을 고려해야 함을 지적합니다. 캐싱 문제에서는 Cache-Control 헤더의 다양한 옵션에 대한 처리 방법을 제시하고, 압축 문제에서는 Transfer-Encoding: chunked 헤더 처리의 중요성을 강조합니다. 전반적으로 이 글은 단순한 문제 풀이를 넘어, 브라우저 엔진의 동작 원리를 깊이 이해하고 실제 코드에 적용하는 과정을 보여줍니다. 독자들은 이 글을 통해 연습문제 풀이에 대한 힌트를 얻을 뿐만 아니라, 브라우저 개발에 대한 실질적인 인사이트를 얻을 수 있을 것입니다.

Read more →
7
1

We're excited to announce that has been awarded a service agreement by the @sovtechfundSovereign Tech Agency! The Sovereign Tech Fund is investing €192,000 in Fedify's development over 2025–2026 to strengthen the fediverse ecosystem.

This investment will enable us to significantly expand Fedify's capabilities and make it easier for developers to build federated applications. The commissioned work focuses on improving developer experience, adding comprehensive debugging tools, and ensuring Fedify remains at the forefront of innovation.

Here are the key milestones we'll be delivering:

  • Web framework integrations: Official adapters for Next.js, Elysia, Fastify, and Koa, making it seamless to add federation to existing applications

  • ActivityPub debug & development tools: Real-time debug dashboard with WebSocket monitoring, federation lifecycle hooks, and implementation checklist CLI to make federation interactions transparent and debuggable

  • Storage & infrastructure enhancements: SQLiteKvStore for robust file-based storage across Node.js, Deno, and Bun, plus performance optimizations for production deployments

  • Comprehensive documentation & examples: Specialized tutorials for building federated blogs, social networks, and content platforms, with complete working examples and migration guides

  • Observability & monitoring: Full OpenTelemetry metrics, performance benchmarking tools, and federation health dashboards for production environments

  • Advanced features & standards: FEP-ef61 (Portable Objects) support and implementation of emerging Fediverse Enhancement Proposals to keep Fedify at the cutting edge

All developments will be open source and available for the entire community to use, contribute to, and build upon.

https://www.sovereign.tech/tech/fedify

7
13
3
0
6
0
1
1
2

The monorepo has grown to 16 packages!

We've been working hard to make Fedify more modular and easier to integrate with your favorite tools and platforms. From the core framework to database drivers, from CLI tools to web framework integrations—we've got you covered.

Our packages now include:

  • Core framework and CLI tools
  • Web framework integrations: Express, Hono, H3, Elysia, NestJS, Next.js, SvelteKit
  • Database drivers: PostgreSQL, Redis, SQLite, AMQP/RabbitMQ
  • Platform integrations: Cloudflare Workers, Deno KV
  • Testing utilities

Each package is available on JSR and/or npm, making it easy to pick exactly what you need for your ActivityPub implementation.

What integration would you like to see next? Let us know!

A table showing 16 Fedify packages with three columns: Package name, registry availability (JSR and npm links), and Description. The packages include the core @fedify/fedify framework, CLI toolchain, database drivers (PostgreSQL, Redis, SQLite, AMQP/RabbitMQ), web framework integrations (Express, Hono, H3, Elysia, NestJS, Next.js, SvelteKit, Cloudflare Workers), Deno KV integration, and testing utilities. Most packages are available on both JSR and npm registries, with some exceptions like @fedify/denokv (JSR only) and @fedify/elysia, @fedify/nestjs, @fedify/next (npm only).
1
0
1

We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as now supports .js alongside , making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred runtime while building with the same powerful BotKit APIs.

One of the most requested features has landed: poll support! You can now create interactive polls in your messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question objects with proper expiration times, and your bot can react to votes through the new onVote event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major platforms like Mastodon and Misskey.

// Create a poll with multiple choices
await session.publish(text`What's your favorite programming language?`, {
  class: Question,
  poll: {
    multiple: true,  // Allow multiple selections
    options: ["JavaScript", "TypeScript", "Python", "Rust"],
    endTime: Temporal.Now.instant().add({ hours: 24 }),
  },
});

// Handle votes
bot.onVote = async (session, vote) => {
  console.log(`${vote.actor} voted for "${vote.option}"`);
};

The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom개발곰)! The /followers route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.

For developers looking for alternative storage backends, we've introduced the SqliteRepository through the new @fedify/botkit-sqlite package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository module offers MemoryCachedRepository for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.

This release also includes an important security update: we've upgraded to 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions, RepositoryGetFollowersOptions, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls option, providing more flexibility for custom implementations.

2
1
0

systemd와 bash를 이용해서 재부팅 시 현재 저장소가 최신이면 빌드를 생략하고 아니면 빌드를 하도록 한 다음 실행되도록 스크립트를 짰습니다. 나름 배포 파이프 라인을 구성해본건데 이게 베스트 프랙티스인지는 확신이 안서네요.

사실 작성은 claude가 거의 다 했죠. 특히 systemd 설정은요. https://claude.ai/share/124ada60-168e-4c01-ad64-74bc67de6e54

3
0
0
1
3

단문(Note)과 긴 게시글(Article) 모두에서 Markdown을 지원할 뿐만 아니라 구문강조와 TeX 수식을 지원한다는 점에서 Hackers' Pub은 연합우주에서 가장 소프트웨어 프로그래머가 쓰기에 적합한 플랫폼이라고 자부합니다.

5

홈서버 곧 도착하면 어떤 서비스를 올려볼지 고민이네요 혹시 추천해 주실만한 서비스 있으신가요? 일단 아래는 생각 중인 목록입니다.

2