#Fedify

๐•‚๐šž๐š‹๐š’๐š”โ„™๐š’๐šก๐šŽ๐š•'s avatar
๐•‚๐šž๐š‹๐š’๐š”โ„™๐š’๐šก๐šŽ๐š•

@[email protected]

BotKit by Fedify

Simple ActivityPub bot framework. A framework for creating your fediverse bots. Using @botkit, you can create standalone ActivityPub bots rather than Mastodon/Misskey bots. Hence, you are free from the constraints of the existing platforms. BotKit is powered by @fedify, a lower-level rock-solid ActivityPub framework.

๐Ÿข botkit.fedify.dev

๐•‚๐šž๐š‹๐š’๐š”โ„™๐š’๐šก๐šŽ๐š•'s avatar
๐•‚๐šž๐š‹๐š’๐š”โ„™๐š’๐šก๐šŽ๐š•

@[email protected]

BotKit by Fedify

Simple ActivityPub bot framework. A framework for creating your fediverse bots. Using @botkit, you can create standalone ActivityPub bots rather than Mastodon/Misskey bots. Hence, you are free from the constraints of the existing platforms. BotKit is powered by @fedify, a lower-level rock-solid ActivityPub framework.

๐Ÿข botkit.fedify.dev

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedify๋Š” ์ƒˆ๋กœ์šด ํ›„์› ํŒŒํŠธ๋„ˆ๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

:fedify: Fedify๋ž€?

Fedify๋Š” ๊ธฐ๋ฐ˜ ์—ฐํ•ฉํ˜• ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ์ธ ()์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ActivityPub ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œํ‚ต๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ ์Šค ํ•˜์— ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ผ Fedify๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค

๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ด๋ฏธ Fedify๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • Ghost: ์ˆ˜๋ฐฑ๋งŒ ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์œ ํ•œ ์ „๋ฌธ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค(MIT ๋ผ์ด์„ ์Šค) ํผ๋ธ”๋ฆฌ์‹ฑ ํ”Œ๋žซํผ์œผ๋กœ, Fedify์˜ ์ฃผ์š” ํ›„์›์‚ฌ์ด์ž ํŒŒํŠธ๋„ˆ์ž…๋‹ˆ๋‹ค.
  • Hollo: ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊ทธ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Hackers' Pub: ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ฅผ ์œ„ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Encyclia: ORCID ํ•™์ˆ  ๊ธฐ๋ก์„ ActivityPub์„ ํ†ตํ•ด ์ œ๊ณตํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€ ์„œ๋น„์Šค

๐Ÿš€ Fedify๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์น˜

  • ๊ฐœ๋ฐœ ์‹œ๊ฐ„ 80% ๋‹จ์ถ•: ActivityPub์˜ ๋ณต์žกํ•œ ๊ตฌํ˜„ ๋Œ€์‹  ๊ฒ€์ฆ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ํ™œ์šฉ
  • ์ฆ‰๊ฐ์ ์ธ ์—ฐํ•ฉ์šฐ์ฃผ ํ˜ธํ™˜์„ฑ: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube ๋“ฑ ๋‹ค์–‘ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ์„œ๋น„์Šค์™€ ์ฆ‰์‹œ ํ˜ธํ™˜
  • ์ „๋ฌธ ๊ธฐ์ˆ  ์ง€์›: ActivityPub ๋ฐ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ ์ „๋ฌธ๊ฐ€์˜ ์ง์ ‘ ์ง€์›
  • ๋งž์ถคํ˜• ๊ฐœ๋ฐœ: ๊ท€์‚ฌ์˜ ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿค ๊ฐ€๋Šฅํ•œ ํ˜‘๋ ฅ ๋ชจ๋ธ

  • ๋งž์ถคํ˜• ์ปจ์„คํŒ… ๋ฐ ํ†ตํ•ฉ ์ง€์›: ๊ท€์‚ฌ ํ”Œ๋žซํผ์— ํ†ตํ•ฉ์„ ์œ„ํ•œ ์ „๋ฌธ์  ์ง€์›
  • ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์˜๋ขฐ: ๊ท€์‚ฌ์— ํ•„์š”ํ•œ ํŠน์ • ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ตฌํ˜„
  • ์žฅ๊ธฐ์ ์ธ ๊ธฐ์ˆ  ํŒŒํŠธ๋„ˆ์‹ญ: ์ง€์†์ ์ธ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•œ ์žฅ๊ธฐ ํ˜‘๋ ฅ ๊ด€๊ณ„

๐ŸŒŸ Fedify์™€ ํ˜‘๋ ฅํ–ˆ์„ ๋•Œ์˜ ์ด์ 

  • ๊ธฐ์ˆ ์  ์ด์ : ์ž์ฒด ๊ตฌํ˜„ ๋Œ€๋น„ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ
  • ๋ธŒ๋žœ๋“œ ์ด๋ฏธ์ง€: ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„ ์ง€์›์„ ํ†ตํ•œ ๊ธฐ์—… ์ด๋ฏธ์ง€ ๊ฐ•ํ™”
  • ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์ง„์ž…: ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„์— ์‰ฝ๊ฒŒ ์ฐธ์—ฌ
  • ๊ฒฝ์Ÿ ์šฐ์œ„: ์†Œ์…œ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ์ œํ’ˆ ๊ฒฝ์Ÿ๋ ฅ ๊ฐ•ํ™”

๐Ÿ“ฉ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

ActivityPub ๊ตฌํ˜„์„ ๊ณ ๋ ค ์ค‘์ด์‹œ๊ฑฐ๋‚˜, Fedify ํ”„๋กœ์ ํŠธ์™€ ํ˜‘๋ ฅํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์—ฐ๋ฝ ์ฃผ์„ธ์š”:

๊ท€์‚ฌ์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ชฉํ‘œ์— ๋งž๋Š” ๋งž์ถคํ˜• ํ˜‘๋ ฅ ๋ฐฉ์•ˆ์„ ํ•จ๊ป˜ ๋ชจ์ƒ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

๐Ÿ’ผ Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

๐Ÿš€ Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

๐Ÿค Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

๐ŸŒŸ Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

๐Ÿ“ฉ Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

ใ‚‚ใกใ‚‚ใกใšใใ‚“ :teto_zuho: ๐Ÿ†'s avatar
ใ‚‚ใกใ‚‚ใกใšใใ‚“ :teto_zuho: ๐Ÿ†

@[email protected]

ใ€่ผช่ชญไผšใ‚„ใฃใฆใฟใพใ™๏ผใ€‘
:fedilug: ่ผช่ชญไผš๐Ÿ“–็ฌฌ้›ถๅผพใจใ—ใฆ ใฎ้–‹็™บ่€…ใงใ‚ใ‚‹
Hong Minhee (ๆดช ๆฐ‘ๆ†™) @hongminhee ใ•ใ‚“ใฎ่‘—ๆ›ธใ€Ž่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ใฎ่ผช่ชญไผšใ‚’่กŒใ„ใพใ™๏ผ

ใ“ใฎๆฉŸไผšใซ ใ‚’ไฝฟ็”จใ—ใฆ็š†ใ•ใ‚“ใง ใ‚„ ใชใฉใฎ็Ÿฅ่ญ˜ใ‚’ๅผทๅŒ–ใ—ใพใ›ใ‚“ใ‹๏ผŸ

ๆœฌใฏGitHubใ‹ใ‚‰็„กๆ–™ใง่ชญใ‚€ใ“ใจใŒใงใใพใ™๏ผš
github.com/dahlia/fedify-micro
ๅ‚ๅŠ ๏ผš
fedilug.connpass.com/event/348

ใ‚‚ใกใ‚‚ใกใšใใ‚“ :teto_zuho: ๐Ÿ†'s avatar
ใ‚‚ใกใ‚‚ใกใšใใ‚“ :teto_zuho: ๐Ÿ†

@[email protected]

ใ€่ผช่ชญไผšใ‚„ใฃใฆใฟใพใ™๏ผใ€‘
:fedilug: ่ผช่ชญไผš๐Ÿ“–็ฌฌ้›ถๅผพใจใ—ใฆ ใฎ้–‹็™บ่€…ใงใ‚ใ‚‹
Hong Minhee (ๆดช ๆฐ‘ๆ†™) @hongminhee ใ•ใ‚“ใฎ่‘—ๆ›ธใ€Ž่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ใฎ่ผช่ชญไผšใ‚’่กŒใ„ใพใ™๏ผ

ใ“ใฎๆฉŸไผšใซ ใ‚’ไฝฟ็”จใ—ใฆ็š†ใ•ใ‚“ใง ใ‚„ ใชใฉใฎ็Ÿฅ่ญ˜ใ‚’ๅผทๅŒ–ใ—ใพใ›ใ‚“ใ‹๏ผŸ

ๆœฌใฏGitHubใ‹ใ‚‰็„กๆ–™ใง่ชญใ‚€ใ“ใจใŒใงใใพใ™๏ผš
github.com/dahlia/fedify-micro
ๅ‚ๅŠ ๏ผš
fedilug.connpass.com/event/348

ใ‚‚ใกใ‚‚ใกใšใใ‚“ :teto_zuho: ๐Ÿ†'s avatar
ใ‚‚ใกใ‚‚ใกใšใใ‚“ :teto_zuho: ๐Ÿ†

@[email protected]

ใ€่ผช่ชญไผšใ‚„ใฃใฆใฟใพใ™๏ผใ€‘
:fedilug: ่ผช่ชญไผš๐Ÿ“–็ฌฌ้›ถๅผพใจใ—ใฆ ใฎ้–‹็™บ่€…ใงใ‚ใ‚‹
Hong Minhee (ๆดช ๆฐ‘ๆ†™) @hongminhee ใ•ใ‚“ใฎ่‘—ๆ›ธใ€Ž่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ใฎ่ผช่ชญไผšใ‚’่กŒใ„ใพใ™๏ผ

ใ“ใฎๆฉŸไผšใซ ใ‚’ไฝฟ็”จใ—ใฆ็š†ใ•ใ‚“ใง ใ‚„ ใชใฉใฎ็Ÿฅ่ญ˜ใ‚’ๅผทๅŒ–ใ—ใพใ›ใ‚“ใ‹๏ผŸ

ๆœฌใฏGitHubใ‹ใ‚‰็„กๆ–™ใง่ชญใ‚€ใ“ใจใŒใงใใพใ™๏ผš
github.com/dahlia/fedify-micro
ๅ‚ๅŠ ๏ผš
fedilug.connpass.com/event/348

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

๐Ÿ’ผ Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

๐Ÿš€ Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

๐Ÿค Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

๐ŸŒŸ Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

๐Ÿ“ฉ Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

๐Ÿ’ผ Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

๐Ÿš€ Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

๐Ÿค Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

๐ŸŒŸ Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

๐Ÿ“ฉ Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedify๋Š” ์ƒˆ๋กœ์šด ํ›„์› ํŒŒํŠธ๋„ˆ๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

:fedify: Fedify๋ž€?

Fedify๋Š” ๊ธฐ๋ฐ˜ ์—ฐํ•ฉํ˜• ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ์ธ ()์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ActivityPub ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œํ‚ต๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ ์Šค ํ•˜์— ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ผ Fedify๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค

๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ด๋ฏธ Fedify๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • Ghost: ์ˆ˜๋ฐฑ๋งŒ ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์œ ํ•œ ์ „๋ฌธ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค(MIT ๋ผ์ด์„ ์Šค) ํผ๋ธ”๋ฆฌ์‹ฑ ํ”Œ๋žซํผ์œผ๋กœ, Fedify์˜ ์ฃผ์š” ํ›„์›์‚ฌ์ด์ž ํŒŒํŠธ๋„ˆ์ž…๋‹ˆ๋‹ค.
  • Hollo: ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊ทธ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Hackers' Pub: ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ฅผ ์œ„ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Encyclia: ORCID ํ•™์ˆ  ๊ธฐ๋ก์„ ActivityPub์„ ํ†ตํ•ด ์ œ๊ณตํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€ ์„œ๋น„์Šค

๐Ÿš€ Fedify๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์น˜

  • ๊ฐœ๋ฐœ ์‹œ๊ฐ„ 80% ๋‹จ์ถ•: ActivityPub์˜ ๋ณต์žกํ•œ ๊ตฌํ˜„ ๋Œ€์‹  ๊ฒ€์ฆ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ํ™œ์šฉ
  • ์ฆ‰๊ฐ์ ์ธ ์—ฐํ•ฉ์šฐ์ฃผ ํ˜ธํ™˜์„ฑ: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube ๋“ฑ ๋‹ค์–‘ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ์„œ๋น„์Šค์™€ ์ฆ‰์‹œ ํ˜ธํ™˜
  • ์ „๋ฌธ ๊ธฐ์ˆ  ์ง€์›: ActivityPub ๋ฐ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ ์ „๋ฌธ๊ฐ€์˜ ์ง์ ‘ ์ง€์›
  • ๋งž์ถคํ˜• ๊ฐœ๋ฐœ: ๊ท€์‚ฌ์˜ ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿค ๊ฐ€๋Šฅํ•œ ํ˜‘๋ ฅ ๋ชจ๋ธ

  • ๋งž์ถคํ˜• ์ปจ์„คํŒ… ๋ฐ ํ†ตํ•ฉ ์ง€์›: ๊ท€์‚ฌ ํ”Œ๋žซํผ์— ํ†ตํ•ฉ์„ ์œ„ํ•œ ์ „๋ฌธ์  ์ง€์›
  • ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์˜๋ขฐ: ๊ท€์‚ฌ์— ํ•„์š”ํ•œ ํŠน์ • ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ตฌํ˜„
  • ์žฅ๊ธฐ์ ์ธ ๊ธฐ์ˆ  ํŒŒํŠธ๋„ˆ์‹ญ: ์ง€์†์ ์ธ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•œ ์žฅ๊ธฐ ํ˜‘๋ ฅ ๊ด€๊ณ„

๐ŸŒŸ Fedify์™€ ํ˜‘๋ ฅํ–ˆ์„ ๋•Œ์˜ ์ด์ 

  • ๊ธฐ์ˆ ์  ์ด์ : ์ž์ฒด ๊ตฌํ˜„ ๋Œ€๋น„ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ
  • ๋ธŒ๋žœ๋“œ ์ด๋ฏธ์ง€: ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„ ์ง€์›์„ ํ†ตํ•œ ๊ธฐ์—… ์ด๋ฏธ์ง€ ๊ฐ•ํ™”
  • ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์ง„์ž…: ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„์— ์‰ฝ๊ฒŒ ์ฐธ์—ฌ
  • ๊ฒฝ์Ÿ ์šฐ์œ„: ์†Œ์…œ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ์ œํ’ˆ ๊ฒฝ์Ÿ๋ ฅ ๊ฐ•ํ™”

๐Ÿ“ฉ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

ActivityPub ๊ตฌํ˜„์„ ๊ณ ๋ ค ์ค‘์ด์‹œ๊ฑฐ๋‚˜, Fedify ํ”„๋กœ์ ํŠธ์™€ ํ˜‘๋ ฅํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์—ฐ๋ฝ ์ฃผ์„ธ์š”:

๊ท€์‚ฌ์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ชฉํ‘œ์— ๋งž๋Š” ๋งž์ถคํ˜• ํ˜‘๋ ฅ ๋ฐฉ์•ˆ์„ ํ•จ๊ป˜ ๋ชจ์ƒ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

๐Ÿ’ผ Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

๐Ÿš€ Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

๐Ÿค Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

๐ŸŒŸ Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

๐Ÿ“ฉ Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedify๋Š” ์ƒˆ๋กœ์šด ํ›„์› ํŒŒํŠธ๋„ˆ๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

:fedify: Fedify๋ž€?

Fedify๋Š” ๊ธฐ๋ฐ˜ ์—ฐํ•ฉํ˜• ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ์ธ ()์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ActivityPub ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œํ‚ต๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ ์Šค ํ•˜์— ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ผ Fedify๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค

๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ด๋ฏธ Fedify๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • Ghost: ์ˆ˜๋ฐฑ๋งŒ ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์œ ํ•œ ์ „๋ฌธ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค(MIT ๋ผ์ด์„ ์Šค) ํผ๋ธ”๋ฆฌ์‹ฑ ํ”Œ๋žซํผ์œผ๋กœ, Fedify์˜ ์ฃผ์š” ํ›„์›์‚ฌ์ด์ž ํŒŒํŠธ๋„ˆ์ž…๋‹ˆ๋‹ค.
  • Hollo: ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊ทธ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Hackers' Pub: ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ฅผ ์œ„ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Encyclia: ORCID ํ•™์ˆ  ๊ธฐ๋ก์„ ActivityPub์„ ํ†ตํ•ด ์ œ๊ณตํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€ ์„œ๋น„์Šค

๐Ÿš€ Fedify๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์น˜

  • ๊ฐœ๋ฐœ ์‹œ๊ฐ„ 80% ๋‹จ์ถ•: ActivityPub์˜ ๋ณต์žกํ•œ ๊ตฌํ˜„ ๋Œ€์‹  ๊ฒ€์ฆ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ํ™œ์šฉ
  • ์ฆ‰๊ฐ์ ์ธ ์—ฐํ•ฉ์šฐ์ฃผ ํ˜ธํ™˜์„ฑ: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube ๋“ฑ ๋‹ค์–‘ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ์„œ๋น„์Šค์™€ ์ฆ‰์‹œ ํ˜ธํ™˜
  • ์ „๋ฌธ ๊ธฐ์ˆ  ์ง€์›: ActivityPub ๋ฐ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ ์ „๋ฌธ๊ฐ€์˜ ์ง์ ‘ ์ง€์›
  • ๋งž์ถคํ˜• ๊ฐœ๋ฐœ: ๊ท€์‚ฌ์˜ ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿค ๊ฐ€๋Šฅํ•œ ํ˜‘๋ ฅ ๋ชจ๋ธ

  • ๋งž์ถคํ˜• ์ปจ์„คํŒ… ๋ฐ ํ†ตํ•ฉ ์ง€์›: ๊ท€์‚ฌ ํ”Œ๋žซํผ์— ํ†ตํ•ฉ์„ ์œ„ํ•œ ์ „๋ฌธ์  ์ง€์›
  • ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์˜๋ขฐ: ๊ท€์‚ฌ์— ํ•„์š”ํ•œ ํŠน์ • ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ตฌํ˜„
  • ์žฅ๊ธฐ์ ์ธ ๊ธฐ์ˆ  ํŒŒํŠธ๋„ˆ์‹ญ: ์ง€์†์ ์ธ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•œ ์žฅ๊ธฐ ํ˜‘๋ ฅ ๊ด€๊ณ„

๐ŸŒŸ Fedify์™€ ํ˜‘๋ ฅํ–ˆ์„ ๋•Œ์˜ ์ด์ 

  • ๊ธฐ์ˆ ์  ์ด์ : ์ž์ฒด ๊ตฌํ˜„ ๋Œ€๋น„ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ
  • ๋ธŒ๋žœ๋“œ ์ด๋ฏธ์ง€: ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„ ์ง€์›์„ ํ†ตํ•œ ๊ธฐ์—… ์ด๋ฏธ์ง€ ๊ฐ•ํ™”
  • ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์ง„์ž…: ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„์— ์‰ฝ๊ฒŒ ์ฐธ์—ฌ
  • ๊ฒฝ์Ÿ ์šฐ์œ„: ์†Œ์…œ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ์ œํ’ˆ ๊ฒฝ์Ÿ๋ ฅ ๊ฐ•ํ™”

๐Ÿ“ฉ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

ActivityPub ๊ตฌํ˜„์„ ๊ณ ๋ ค ์ค‘์ด์‹œ๊ฑฐ๋‚˜, Fedify ํ”„๋กœ์ ํŠธ์™€ ํ˜‘๋ ฅํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์—ฐ๋ฝ ์ฃผ์„ธ์š”:

๊ท€์‚ฌ์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ชฉํ‘œ์— ๋งž๋Š” ๋งž์ถคํ˜• ํ˜‘๋ ฅ ๋ฐฉ์•ˆ์„ ํ•จ๊ป˜ ๋ชจ์ƒ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

๐Ÿ’ผ Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

๐Ÿš€ Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

๐Ÿค Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

๐ŸŒŸ Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

๐Ÿ“ฉ Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedify๋Š” ์ƒˆ๋กœ์šด ํ›„์› ํŒŒํŠธ๋„ˆ๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

:fedify: Fedify๋ž€?

Fedify๋Š” ๊ธฐ๋ฐ˜ ์—ฐํ•ฉํ˜• ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ์ธ ()์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ActivityPub ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•์‹œํ‚ต๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ ์Šค ํ•˜์— ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ผ Fedify๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค

๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ด๋ฏธ Fedify๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • Ghost: ์ˆ˜๋ฐฑ๋งŒ ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์œ ํ•œ ์ „๋ฌธ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค(MIT ๋ผ์ด์„ ์Šค) ํผ๋ธ”๋ฆฌ์‹ฑ ํ”Œ๋žซํผ์œผ๋กœ, Fedify์˜ ์ฃผ์š” ํ›„์›์‚ฌ์ด์ž ํŒŒํŠธ๋„ˆ์ž…๋‹ˆ๋‹ค.
  • Hollo: ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊ทธ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Hackers' Pub: ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ฅผ ์œ„ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ (์˜คํ”ˆ ์†Œ์Šค, AGPL-3.0)
  • Encyclia: ORCID ํ•™์ˆ  ๊ธฐ๋ก์„ ActivityPub์„ ํ†ตํ•ด ์ œ๊ณตํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€ ์„œ๋น„์Šค

๐Ÿš€ Fedify๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์น˜

  • ๊ฐœ๋ฐœ ์‹œ๊ฐ„ 80% ๋‹จ์ถ•: ActivityPub์˜ ๋ณต์žกํ•œ ๊ตฌํ˜„ ๋Œ€์‹  ๊ฒ€์ฆ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ํ™œ์šฉ
  • ์ฆ‰๊ฐ์ ์ธ ์—ฐํ•ฉ์šฐ์ฃผ ํ˜ธํ™˜์„ฑ: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube ๋“ฑ ๋‹ค์–‘ํ•œ ์—ฐํ•ฉ์šฐ์ฃผ ์„œ๋น„์Šค์™€ ์ฆ‰์‹œ ํ˜ธํ™˜
  • ์ „๋ฌธ ๊ธฐ์ˆ  ์ง€์›: ActivityPub ๋ฐ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ ์ „๋ฌธ๊ฐ€์˜ ์ง์ ‘ ์ง€์›
  • ๋งž์ถคํ˜• ๊ฐœ๋ฐœ: ๊ท€์‚ฌ์˜ ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿค ๊ฐ€๋Šฅํ•œ ํ˜‘๋ ฅ ๋ชจ๋ธ

  • ๋งž์ถคํ˜• ์ปจ์„คํŒ… ๋ฐ ํ†ตํ•ฉ ์ง€์›: ๊ท€์‚ฌ ํ”Œ๋žซํผ์— ํ†ตํ•ฉ์„ ์œ„ํ•œ ์ „๋ฌธ์  ์ง€์›
  • ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์˜๋ขฐ: ๊ท€์‚ฌ์— ํ•„์š”ํ•œ ํŠน์ • ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ตฌํ˜„
  • ์žฅ๊ธฐ์ ์ธ ๊ธฐ์ˆ  ํŒŒํŠธ๋„ˆ์‹ญ: ์ง€์†์ ์ธ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•œ ์žฅ๊ธฐ ํ˜‘๋ ฅ ๊ด€๊ณ„

๐ŸŒŸ Fedify์™€ ํ˜‘๋ ฅํ–ˆ์„ ๋•Œ์˜ ์ด์ 

  • ๊ธฐ์ˆ ์  ์ด์ : ์ž์ฒด ๊ตฌํ˜„ ๋Œ€๋น„ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ
  • ๋ธŒ๋žœ๋“œ ์ด๋ฏธ์ง€: ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„ ์ง€์›์„ ํ†ตํ•œ ๊ธฐ์—… ์ด๋ฏธ์ง€ ๊ฐ•ํ™”
  • ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์ง„์ž…: ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„์— ์‰ฝ๊ฒŒ ์ฐธ์—ฌ
  • ๊ฒฝ์Ÿ ์šฐ์œ„: ์†Œ์…œ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ์ œํ’ˆ ๊ฒฝ์Ÿ๋ ฅ ๊ฐ•ํ™”

๐Ÿ“ฉ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

ActivityPub ๊ตฌํ˜„์„ ๊ณ ๋ ค ์ค‘์ด์‹œ๊ฑฐ๋‚˜, Fedify ํ”„๋กœ์ ํŠธ์™€ ํ˜‘๋ ฅํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์—ฐ๋ฝ ์ฃผ์„ธ์š”:

๊ท€์‚ฌ์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ชฉํ‘œ์— ๋งž๋Š” ๋งž์ถคํ˜• ํ˜‘๋ ฅ ๋ฐฉ์•ˆ์„ ํ•จ๊ป˜ ๋ชจ์ƒ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

๐Ÿ’ผ Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

๐Ÿš€ Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

๐Ÿค Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

๐ŸŒŸ Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

๐Ÿ“ฉ Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

If you answered โ€œNoโ€, which installation method do you prefer?

Your feedback helps us prioritize distribution channels! Thanks for contributing to the Fedify ecosystem.

OptionVoters
npm3 (25%)
Deno3 (25%)
Manual download5 (42%)
Other (please specify in replies)1 (8%)
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering packaging the Fedify CLI for Homebrew to make installation easier on macOS and Linux (via Linuxbrew).

Would you use a formula for CLI?

OptionVoters
Yes, I'd definitely use it on macOS.0 (0%)
Yes, I'd definitely use it on Linux.0 (0%)
Maybe, depending on the implementation.0 (0%)
No, I prefer other installation methods.0 (0%)
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

If you answered โ€œNoโ€, which installation method do you prefer?

Your feedback helps us prioritize distribution channels! Thanks for contributing to the Fedify ecosystem.

OptionVoters
npm3 (25%)
Deno3 (25%)
Manual download5 (42%)
Other (please specify in replies)1 (8%)
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering packaging the Fedify CLI for Homebrew to make installation easier on macOS and Linux (via Linuxbrew).

Would you use a formula for CLI?

OptionVoters
Yes, I'd definitely use it on macOS.0 (0%)
Yes, I'd definitely use it on Linux.0 (0%)
Maybe, depending on the implementation.0 (0%)
No, I prefer other installation methods.0 (0%)
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I talked about and on @guu's wonderful podcast, Software Sessions. I'm embarrassed by my poor English, but if you're interested, please listen!

https://www.softwaresessions.com/episodes/activitypub/

https://notacult.social/@guu/114080341111989473

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I talked about and on @guu's wonderful podcast, Software Sessions. I'm embarrassed by my poor English, but if you're interested, please listen!

https://www.softwaresessions.com/episodes/activitypub/

https://notacult.social/@guu/114080341111989473

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I talked about and on @guu's wonderful podcast, Software Sessions. I'm embarrassed by my poor English, but if you're interested, please listen!

https://www.softwaresessions.com/episodes/activitypub/

https://notacult.social/@guu/114080341111989473

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Love building federated apps with ? Consider supporting its development! We have tiers starting from just $5/month, and every contribution helps keep the project sustainable. :fedify:

https://opencollective.com/fedify

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Excited to share that Fedify CLI is now available on Scoop for users! You can easily install it with scoop install fedify. One more way to get started with development!

https://github.com/ScoopInstaller/Main/pull/6371

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We'd like to introduce the project familyโ€”a set of related tools that make building applications more accessible:

Fedify :fedify:

Fedify (@fedify) is a library for building federated server applications powered by ActivityPub and other standards. It provides type-safe objects for Activity Vocabulary, WebFinger client/server, HTTP Signatures, and moreโ€”eliminating boilerplate code so you can focus on your application logic.

Hollo :hollo:

Hollo (@hollo) is a single-user microblogging server powered by Fedify. While designed for individual users, it's fully federated through ActivityPub, allowing interaction with users across the fediverse. implements Mastodon-compatible APIs, making it compatible with most Mastodon clients without needing its own web interface.

Hollo also serves as our testing ground for bleeding-edge Fedify features before they're officially released.

BotKit :botkit:

BotKit (@botkit) is our newest family memberโ€”a framework specifically designed for creating ActivityPub bots. Unlike traditional Mastodon bots, creates standalone ActivityPub servers that aren't constrained by platform-specific limitations (like character counts).

BotKit's API is intentionally simpleโ€”you can create a complete bot in a single TypeScript file!


All three projects are open source and hosted under the @fedify-dev GitHub organization. While they serve different purposes, they share common goals: making ActivityPub development more accessible and expanding the fediverse ecosystem.

If you're interested in trying any of these projects or contributing to their development, check out:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedifyใฎ้–ข้€ฃใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ”็ดนไป‹ใ—ใŸใ„ใจๆ€ใ„ใพใ™ใ€‚ActivityPubใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–‹็™บใ‚’ใ‚ˆใ‚Š็ฐกๅ˜ใซใ™ใ‚‹ใƒ„ใƒผใƒซ็พคใงใ™๏ผš

Fedify :fedify:

Fedify๏ผˆ@fedify๏ผ‰ใฏActivityPubใ‚„ใใฎไป–ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๆจ™ๆบ–ใ‚’ๆดป็”จใ™ใ‚‹้€ฃๅˆๅž‹ใ‚ตใƒผใƒใƒผใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ๆง‹็ฏ‰ใ™ใ‚‹ใŸใ‚ใฎTypeScriptใƒฉใ‚คใƒ–ใƒฉใƒชใงใ™ใ€‚Activity Vocabularyใฎๅž‹ๅฎ‰ๅ…จใชใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ€WebFingerใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใƒปใ‚ตใƒผใƒใƒผใ€HTTP Signaturesใชใฉใ‚’ๆไพ›ใ—ใ€ใƒœใ‚คใƒฉใƒผใƒ—ใƒฌใƒผใƒˆใ‚ณใƒผใƒ‰ใ‚’ๅ‰Šๆธ›ใ—ใฆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใƒญใ‚ธใƒƒใ‚ฏใซ้›†ไธญใงใใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚

Hollo :hollo:

Hollo๏ผˆ@hollo๏ผ‰ใฏFedifyใงๅ‹•ไฝœใ™ใ‚‹ใŠไธ€ไบบๆง˜็”จใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚ตใƒผใƒใƒผใงใ™ใ€‚ๅ€‹ไบบๅ‘ใ‘ใซ่จญ่จˆใ•ใ‚Œใฆใ„ใพใ™ใŒใ€ActivityPubใ‚’้€šใ˜ใฆๅฎŒๅ…จใซ้€ฃๅˆๅŒ–ใ•ใ‚ŒใฆใŠใ‚Šใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๅ…จไฝ“ใฎใƒฆใƒผใ‚ถใƒผใจไบคๆตใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚HolloใฏMastodonไบ’ๆ›APIใ‚’ๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹ใŸใ‚ใ€็‹ฌ่‡ชใฎใ‚ฆใ‚งใƒ–ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚นใŒใชใใฆใ‚‚ใ€ใปใจใ‚“ใฉใฎMastodonใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใจไบ’ๆ›ๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

HolloใฏใพใŸใ€ๆญฃๅผใƒชใƒชใƒผใ‚นๅ‰ใฎๆœ€ๆ–ฐFedifyๆฉŸ่ƒฝใ‚’ใƒ†ใ‚นใƒˆใ™ใ‚‹ๅฎŸ้จ“ๅ ดใจใ—ใฆใ‚‚ๆดป็”จใ•ใ‚Œใฆใ„ใพใ™ใ€‚

BotKit :botkit:

BotKit๏ผˆ@botkit๏ผ‰ใฏ็งใŸใกใฎๆœ€ใ‚‚ๆ–ฐใ—ใ„ใƒกใƒณใƒใƒผใงใ€ActivityPubใƒœใƒƒใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใŸใ‚ใซ็‰นๅˆฅใซ่จญ่จˆใ•ใ‚ŒใŸใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚ๅพ“ๆฅใฎMastodonใƒœใƒƒใƒˆใจใฏ็•ฐใชใ‚Šใ€BotKitใฏใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰ใฎๅˆถ้™๏ผˆๆ–‡ๅญ—ๆ•ฐๅˆถ้™ใชใฉ๏ผ‰ใซ็ธ›ใ‚‰ใ‚Œใชใ„็‹ฌ็ซ‹ใ—ใŸActivityPubใ‚ตใƒผใƒใƒผใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

BotKitใฎAPIใฏๆ„ๅ›ณ็š„ใซใ‚ทใƒณใƒ—ใƒซใซ่จญ่จˆใ•ใ‚ŒใฆใŠใ‚Šใ€ๅ˜ไธ€ใฎTypeScriptใƒ•ใ‚กใ‚คใƒซใงๅฎŒๅ…จใชใƒœใƒƒใƒˆใ‚’ไฝœๆˆใงใใพใ™๏ผ


ใ“ใ‚Œใ‚‰ไธ‰ใคใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฏใ™ในใฆ@fedify-dev GitHubใ‚ชใƒผใ‚ฌใƒ‹ใ‚ผใƒผใ‚ทใƒงใƒณใงใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใจใ—ใฆๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใใ‚Œใžใ‚Œ็•ฐใชใ‚‹็›ฎ็š„ใ‚’ๆŒใฃใฆใ„ใพใ™ใŒใ€ActivityPub้–‹็™บใ‚’ใ‚ˆใ‚Š่บซ่ฟ‘ใซใ—ใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใ‚’ๆ‹กๅคงใ™ใ‚‹ใจใ„ใ†ๅ…ฑ้€šใฎ็›ฎๆจ™ใ‚’ๅ…ฑๆœ‰ใ—ใฆใ„ใพใ™ใ€‚

ใ“ใ‚Œใ‚‰ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’่ฉฆใ—ใฆใฟใŸใ‚Šใ€้–‹็™บใซ่ฒข็Œฎใ—ใŸใ‚Šใ™ใ‚‹ใ“ใจใซ่ˆˆๅ‘ณใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ไปฅไธ‹ใ‚’ใ”่ฆงใใ ใ•ใ„๏ผš

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

์ž๋งค ํ”„๋กœ์ ํŠธ๋“ค์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ด€๋ จ ๋„๊ตฌ๋“ค์ž…๋‹ˆ๋‹ค:

Fedify :fedify:

Fedify(@fedify)๋Š” ActivityPub์™€ ๋‹ค๋ฅธ () ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐํ•ฉ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Activity Vocabulary๋ฅผ ์œ„ํ•œ ํƒ€์ž… ์•ˆ์ „ํ•œ ๊ฐ์ฒด, WebFinger ํด๋ผ์ด์–ธํŠธ·์„œ๋ฒ„, HTTP Signatures ๋“ฑ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Hollo :hollo:

Hollo(@hollo)๋Š” Fedify๋กœ ๊ตฌ๋™๋˜๋Š” 1์ธ ์‚ฌ์šฉ์ž์šฉ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. 1์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ActivityPub๋ฅผ ํ†ตํ•ด ์™„์ „ํžˆ ์—ฐํ•ฉ๋˜์–ด ์—ฐํ•ฉ์šฐ์ฃผ ์ „์ฒด์˜ ์‚ฌ์šฉ์ž๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hollo๋Š” Mastodon ํ˜ธํ™˜ API๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ž์ฒด ์›น ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด๋„ ๋Œ€๋ถ€๋ถ„์˜ Mastodon ํด๋ผ์ด์–ธํŠธ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

Hollo๋Š” ๋˜ํ•œ ์ •์‹ ์ถœ์‹œ ์ „์— ์ตœ์‹  Fedify ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ์‹คํ—˜์žฅ์œผ๋กœ๋„ ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

BotKit :botkit:

BotKit(@botkit)์€ ์ €ํฌ์˜ ๊ฐ€์žฅ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์›์œผ๋กœ, ActivityPub ๋ด‡์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ Mastodon ๋ด‡๊ณผ ๋‹ฌ๋ฆฌ, BotKit์€ ํ”Œ๋žซํผ๋ณ„ ์ œํ•œ(๊ธ€์ž ์ˆ˜ ์ œํ•œ ๋“ฑ)์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ActivityPub ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

BotKit์˜ API๋Š” ์˜๋„์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๊ณ„๋˜์–ด ๋‹จ์ผ TypeScript ํŒŒ์ผ๋กœ ์™„์ „ํ•œ ๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


์„ธ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ @fedify-dev GitHub ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ActivityPub ๊ฐœ๋ฐœ์„ ๋” ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„๋ฅผ ํ™•์žฅํ•œ๋‹ค๋Š” ๊ณตํ†ต๋œ ๋ชฉํ‘œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์— ๊ธฐ์—ฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ๋‹ค์Œ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We'd like to introduce the project familyโ€”a set of related tools that make building applications more accessible:

Fedify :fedify:

Fedify (@fedify) is a library for building federated server applications powered by ActivityPub and other standards. It provides type-safe objects for Activity Vocabulary, WebFinger client/server, HTTP Signatures, and moreโ€”eliminating boilerplate code so you can focus on your application logic.

Hollo :hollo:

Hollo (@hollo) is a single-user microblogging server powered by Fedify. While designed for individual users, it's fully federated through ActivityPub, allowing interaction with users across the fediverse. implements Mastodon-compatible APIs, making it compatible with most Mastodon clients without needing its own web interface.

Hollo also serves as our testing ground for bleeding-edge Fedify features before they're officially released.

BotKit :botkit:

BotKit (@botkit) is our newest family memberโ€”a framework specifically designed for creating ActivityPub bots. Unlike traditional Mastodon bots, creates standalone ActivityPub servers that aren't constrained by platform-specific limitations (like character counts).

BotKit's API is intentionally simpleโ€”you can create a complete bot in a single TypeScript file!


All three projects are open source and hosted under the @fedify-dev GitHub organization. While they serve different purposes, they share common goals: making ActivityPub development more accessible and expanding the fediverse ecosystem.

If you're interested in trying any of these projects or contributing to their development, check out:

Chris Trottier's avatar
Chris Trottier

@[email protected]

Two new features are coming to #Fedify! Both have to do with controls over domain names:

  1. Different domains for WebFinger handles and server URIs.
  2. Canonical origin support to explicitly set your serverโ€™s authoritative domain

https://hollo.social/@fedify/01953693-1afd-7430-988a-23d649099e1c

@fediversenews

Chris Trottier's avatar
Chris Trottier

@[email protected]

Two new features are coming to #Fedify! Both have to do with controls over domain names:

  1. Different domains for WebFinger handles and server URIs.
  2. Canonical origin support to explicitly set your serverโ€™s authoritative domain

https://hollo.social/@fedify/01953693-1afd-7430-988a-23d649099e1c

@fediversenews

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

์ž๋งค ํ”„๋กœ์ ํŠธ๋“ค์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ด€๋ จ ๋„๊ตฌ๋“ค์ž…๋‹ˆ๋‹ค:

Fedify :fedify:

Fedify(@fedify)๋Š” ActivityPub์™€ ๋‹ค๋ฅธ () ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐํ•ฉ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Activity Vocabulary๋ฅผ ์œ„ํ•œ ํƒ€์ž… ์•ˆ์ „ํ•œ ๊ฐ์ฒด, WebFinger ํด๋ผ์ด์–ธํŠธ·์„œ๋ฒ„, HTTP Signatures ๋“ฑ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Hollo :hollo:

Hollo(@hollo)๋Š” Fedify๋กœ ๊ตฌ๋™๋˜๋Š” 1์ธ ์‚ฌ์šฉ์ž์šฉ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. 1์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ActivityPub๋ฅผ ํ†ตํ•ด ์™„์ „ํžˆ ์—ฐํ•ฉ๋˜์–ด ์—ฐํ•ฉ์šฐ์ฃผ ์ „์ฒด์˜ ์‚ฌ์šฉ์ž๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hollo๋Š” Mastodon ํ˜ธํ™˜ API๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ž์ฒด ์›น ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด๋„ ๋Œ€๋ถ€๋ถ„์˜ Mastodon ํด๋ผ์ด์–ธํŠธ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

Hollo๋Š” ๋˜ํ•œ ์ •์‹ ์ถœ์‹œ ์ „์— ์ตœ์‹  Fedify ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ์‹คํ—˜์žฅ์œผ๋กœ๋„ ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

BotKit :botkit:

BotKit(@botkit)์€ ์ €ํฌ์˜ ๊ฐ€์žฅ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์›์œผ๋กœ, ActivityPub ๋ด‡์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ Mastodon ๋ด‡๊ณผ ๋‹ฌ๋ฆฌ, BotKit์€ ํ”Œ๋žซํผ๋ณ„ ์ œํ•œ(๊ธ€์ž ์ˆ˜ ์ œํ•œ ๋“ฑ)์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ActivityPub ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

BotKit์˜ API๋Š” ์˜๋„์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๊ณ„๋˜์–ด ๋‹จ์ผ TypeScript ํŒŒ์ผ๋กœ ์™„์ „ํ•œ ๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


์„ธ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ @fedify-dev GitHub ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ActivityPub ๊ฐœ๋ฐœ์„ ๋” ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„๋ฅผ ํ™•์žฅํ•œ๋‹ค๋Š” ๊ณตํ†ต๋œ ๋ชฉํ‘œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์— ๊ธฐ์—ฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ๋‹ค์Œ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedifyใฎ้–ข้€ฃใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ”็ดนไป‹ใ—ใŸใ„ใจๆ€ใ„ใพใ™ใ€‚ActivityPubใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–‹็™บใ‚’ใ‚ˆใ‚Š็ฐกๅ˜ใซใ™ใ‚‹ใƒ„ใƒผใƒซ็พคใงใ™๏ผš

Fedify :fedify:

Fedify๏ผˆ@fedify๏ผ‰ใฏActivityPubใ‚„ใใฎไป–ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๆจ™ๆบ–ใ‚’ๆดป็”จใ™ใ‚‹้€ฃๅˆๅž‹ใ‚ตใƒผใƒใƒผใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ๆง‹็ฏ‰ใ™ใ‚‹ใŸใ‚ใฎTypeScriptใƒฉใ‚คใƒ–ใƒฉใƒชใงใ™ใ€‚Activity Vocabularyใฎๅž‹ๅฎ‰ๅ…จใชใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ€WebFingerใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใƒปใ‚ตใƒผใƒใƒผใ€HTTP Signaturesใชใฉใ‚’ๆไพ›ใ—ใ€ใƒœใ‚คใƒฉใƒผใƒ—ใƒฌใƒผใƒˆใ‚ณใƒผใƒ‰ใ‚’ๅ‰Šๆธ›ใ—ใฆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใƒญใ‚ธใƒƒใ‚ฏใซ้›†ไธญใงใใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚

Hollo :hollo:

Hollo๏ผˆ@hollo๏ผ‰ใฏFedifyใงๅ‹•ไฝœใ™ใ‚‹ใŠไธ€ไบบๆง˜็”จใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚ตใƒผใƒใƒผใงใ™ใ€‚ๅ€‹ไบบๅ‘ใ‘ใซ่จญ่จˆใ•ใ‚Œใฆใ„ใพใ™ใŒใ€ActivityPubใ‚’้€šใ˜ใฆๅฎŒๅ…จใซ้€ฃๅˆๅŒ–ใ•ใ‚ŒใฆใŠใ‚Šใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๅ…จไฝ“ใฎใƒฆใƒผใ‚ถใƒผใจไบคๆตใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚HolloใฏMastodonไบ’ๆ›APIใ‚’ๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹ใŸใ‚ใ€็‹ฌ่‡ชใฎใ‚ฆใ‚งใƒ–ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚นใŒใชใใฆใ‚‚ใ€ใปใจใ‚“ใฉใฎMastodonใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใจไบ’ๆ›ๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

HolloใฏใพใŸใ€ๆญฃๅผใƒชใƒชใƒผใ‚นๅ‰ใฎๆœ€ๆ–ฐFedifyๆฉŸ่ƒฝใ‚’ใƒ†ใ‚นใƒˆใ™ใ‚‹ๅฎŸ้จ“ๅ ดใจใ—ใฆใ‚‚ๆดป็”จใ•ใ‚Œใฆใ„ใพใ™ใ€‚

BotKit :botkit:

BotKit๏ผˆ@botkit๏ผ‰ใฏ็งใŸใกใฎๆœ€ใ‚‚ๆ–ฐใ—ใ„ใƒกใƒณใƒใƒผใงใ€ActivityPubใƒœใƒƒใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใŸใ‚ใซ็‰นๅˆฅใซ่จญ่จˆใ•ใ‚ŒใŸใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚ๅพ“ๆฅใฎMastodonใƒœใƒƒใƒˆใจใฏ็•ฐใชใ‚Šใ€BotKitใฏใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰ใฎๅˆถ้™๏ผˆๆ–‡ๅญ—ๆ•ฐๅˆถ้™ใชใฉ๏ผ‰ใซ็ธ›ใ‚‰ใ‚Œใชใ„็‹ฌ็ซ‹ใ—ใŸActivityPubใ‚ตใƒผใƒใƒผใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

BotKitใฎAPIใฏๆ„ๅ›ณ็š„ใซใ‚ทใƒณใƒ—ใƒซใซ่จญ่จˆใ•ใ‚ŒใฆใŠใ‚Šใ€ๅ˜ไธ€ใฎTypeScriptใƒ•ใ‚กใ‚คใƒซใงๅฎŒๅ…จใชใƒœใƒƒใƒˆใ‚’ไฝœๆˆใงใใพใ™๏ผ


ใ“ใ‚Œใ‚‰ไธ‰ใคใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฏใ™ในใฆ@fedify-dev GitHubใ‚ชใƒผใ‚ฌใƒ‹ใ‚ผใƒผใ‚ทใƒงใƒณใงใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใจใ—ใฆๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใใ‚Œใžใ‚Œ็•ฐใชใ‚‹็›ฎ็š„ใ‚’ๆŒใฃใฆใ„ใพใ™ใŒใ€ActivityPub้–‹็™บใ‚’ใ‚ˆใ‚Š่บซ่ฟ‘ใซใ—ใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใ‚’ๆ‹กๅคงใ™ใ‚‹ใจใ„ใ†ๅ…ฑ้€šใฎ็›ฎๆจ™ใ‚’ๅ…ฑๆœ‰ใ—ใฆใ„ใพใ™ใ€‚

ใ“ใ‚Œใ‚‰ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’่ฉฆใ—ใฆใฟใŸใ‚Šใ€้–‹็™บใซ่ฒข็Œฎใ—ใŸใ‚Šใ™ใ‚‹ใ“ใจใซ่ˆˆๅ‘ณใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ไปฅไธ‹ใ‚’ใ”่ฆงใใ ใ•ใ„๏ผš

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedifyใฎ้–ข้€ฃใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ”็ดนไป‹ใ—ใŸใ„ใจๆ€ใ„ใพใ™ใ€‚ActivityPubใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–‹็™บใ‚’ใ‚ˆใ‚Š็ฐกๅ˜ใซใ™ใ‚‹ใƒ„ใƒผใƒซ็พคใงใ™๏ผš

Fedify :fedify:

Fedify๏ผˆ@fedify๏ผ‰ใฏActivityPubใ‚„ใใฎไป–ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๆจ™ๆบ–ใ‚’ๆดป็”จใ™ใ‚‹้€ฃๅˆๅž‹ใ‚ตใƒผใƒใƒผใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ๆง‹็ฏ‰ใ™ใ‚‹ใŸใ‚ใฎTypeScriptใƒฉใ‚คใƒ–ใƒฉใƒชใงใ™ใ€‚Activity Vocabularyใฎๅž‹ๅฎ‰ๅ…จใชใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ€WebFingerใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใƒปใ‚ตใƒผใƒใƒผใ€HTTP Signaturesใชใฉใ‚’ๆไพ›ใ—ใ€ใƒœใ‚คใƒฉใƒผใƒ—ใƒฌใƒผใƒˆใ‚ณใƒผใƒ‰ใ‚’ๅ‰Šๆธ›ใ—ใฆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใƒญใ‚ธใƒƒใ‚ฏใซ้›†ไธญใงใใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚

Hollo :hollo:

Hollo๏ผˆ@hollo๏ผ‰ใฏFedifyใงๅ‹•ไฝœใ™ใ‚‹ใŠไธ€ไบบๆง˜็”จใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚ตใƒผใƒใƒผใงใ™ใ€‚ๅ€‹ไบบๅ‘ใ‘ใซ่จญ่จˆใ•ใ‚Œใฆใ„ใพใ™ใŒใ€ActivityPubใ‚’้€šใ˜ใฆๅฎŒๅ…จใซ้€ฃๅˆๅŒ–ใ•ใ‚ŒใฆใŠใ‚Šใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๅ…จไฝ“ใฎใƒฆใƒผใ‚ถใƒผใจไบคๆตใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚HolloใฏMastodonไบ’ๆ›APIใ‚’ๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹ใŸใ‚ใ€็‹ฌ่‡ชใฎใ‚ฆใ‚งใƒ–ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚นใŒใชใใฆใ‚‚ใ€ใปใจใ‚“ใฉใฎMastodonใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใจไบ’ๆ›ๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

HolloใฏใพใŸใ€ๆญฃๅผใƒชใƒชใƒผใ‚นๅ‰ใฎๆœ€ๆ–ฐFedifyๆฉŸ่ƒฝใ‚’ใƒ†ใ‚นใƒˆใ™ใ‚‹ๅฎŸ้จ“ๅ ดใจใ—ใฆใ‚‚ๆดป็”จใ•ใ‚Œใฆใ„ใพใ™ใ€‚

BotKit :botkit:

BotKit๏ผˆ@botkit๏ผ‰ใฏ็งใŸใกใฎๆœ€ใ‚‚ๆ–ฐใ—ใ„ใƒกใƒณใƒใƒผใงใ€ActivityPubใƒœใƒƒใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใŸใ‚ใซ็‰นๅˆฅใซ่จญ่จˆใ•ใ‚ŒใŸใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚ๅพ“ๆฅใฎMastodonใƒœใƒƒใƒˆใจใฏ็•ฐใชใ‚Šใ€BotKitใฏใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰ใฎๅˆถ้™๏ผˆๆ–‡ๅญ—ๆ•ฐๅˆถ้™ใชใฉ๏ผ‰ใซ็ธ›ใ‚‰ใ‚Œใชใ„็‹ฌ็ซ‹ใ—ใŸActivityPubใ‚ตใƒผใƒใƒผใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

BotKitใฎAPIใฏๆ„ๅ›ณ็š„ใซใ‚ทใƒณใƒ—ใƒซใซ่จญ่จˆใ•ใ‚ŒใฆใŠใ‚Šใ€ๅ˜ไธ€ใฎTypeScriptใƒ•ใ‚กใ‚คใƒซใงๅฎŒๅ…จใชใƒœใƒƒใƒˆใ‚’ไฝœๆˆใงใใพใ™๏ผ


ใ“ใ‚Œใ‚‰ไธ‰ใคใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฏใ™ในใฆ@fedify-dev GitHubใ‚ชใƒผใ‚ฌใƒ‹ใ‚ผใƒผใ‚ทใƒงใƒณใงใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใจใ—ใฆๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใใ‚Œใžใ‚Œ็•ฐใชใ‚‹็›ฎ็š„ใ‚’ๆŒใฃใฆใ„ใพใ™ใŒใ€ActivityPub้–‹็™บใ‚’ใ‚ˆใ‚Š่บซ่ฟ‘ใซใ—ใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใ‚’ๆ‹กๅคงใ™ใ‚‹ใจใ„ใ†ๅ…ฑ้€šใฎ็›ฎๆจ™ใ‚’ๅ…ฑๆœ‰ใ—ใฆใ„ใพใ™ใ€‚

ใ“ใ‚Œใ‚‰ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’่ฉฆใ—ใฆใฟใŸใ‚Šใ€้–‹็™บใซ่ฒข็Œฎใ—ใŸใ‚Šใ™ใ‚‹ใ“ใจใซ่ˆˆๅ‘ณใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ไปฅไธ‹ใ‚’ใ”่ฆงใใ ใ•ใ„๏ผš

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

์ž๋งค ํ”„๋กœ์ ํŠธ๋“ค์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ด€๋ จ ๋„๊ตฌ๋“ค์ž…๋‹ˆ๋‹ค:

Fedify :fedify:

Fedify(@fedify)๋Š” ActivityPub์™€ ๋‹ค๋ฅธ () ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐํ•ฉ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Activity Vocabulary๋ฅผ ์œ„ํ•œ ํƒ€์ž… ์•ˆ์ „ํ•œ ๊ฐ์ฒด, WebFinger ํด๋ผ์ด์–ธํŠธ·์„œ๋ฒ„, HTTP Signatures ๋“ฑ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Hollo :hollo:

Hollo(@hollo)๋Š” Fedify๋กœ ๊ตฌ๋™๋˜๋Š” 1์ธ ์‚ฌ์šฉ์ž์šฉ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. 1์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ActivityPub๋ฅผ ํ†ตํ•ด ์™„์ „ํžˆ ์—ฐํ•ฉ๋˜์–ด ์—ฐํ•ฉ์šฐ์ฃผ ์ „์ฒด์˜ ์‚ฌ์šฉ์ž๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hollo๋Š” Mastodon ํ˜ธํ™˜ API๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ž์ฒด ์›น ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด๋„ ๋Œ€๋ถ€๋ถ„์˜ Mastodon ํด๋ผ์ด์–ธํŠธ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

Hollo๋Š” ๋˜ํ•œ ์ •์‹ ์ถœ์‹œ ์ „์— ์ตœ์‹  Fedify ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ์‹คํ—˜์žฅ์œผ๋กœ๋„ ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

BotKit :botkit:

BotKit(@botkit)์€ ์ €ํฌ์˜ ๊ฐ€์žฅ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์›์œผ๋กœ, ActivityPub ๋ด‡์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ Mastodon ๋ด‡๊ณผ ๋‹ฌ๋ฆฌ, BotKit์€ ํ”Œ๋žซํผ๋ณ„ ์ œํ•œ(๊ธ€์ž ์ˆ˜ ์ œํ•œ ๋“ฑ)์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ActivityPub ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

BotKit์˜ API๋Š” ์˜๋„์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๊ณ„๋˜์–ด ๋‹จ์ผ TypeScript ํŒŒ์ผ๋กœ ์™„์ „ํ•œ ๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


์„ธ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ @fedify-dev GitHub ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ActivityPub ๊ฐœ๋ฐœ์„ ๋” ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„๋ฅผ ํ™•์žฅํ•œ๋‹ค๋Š” ๊ณตํ†ต๋œ ๋ชฉํ‘œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์— ๊ธฐ์—ฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ๋‹ค์Œ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We'd like to introduce the project familyโ€”a set of related tools that make building applications more accessible:

Fedify :fedify:

Fedify (@fedify) is a library for building federated server applications powered by ActivityPub and other standards. It provides type-safe objects for Activity Vocabulary, WebFinger client/server, HTTP Signatures, and moreโ€”eliminating boilerplate code so you can focus on your application logic.

Hollo :hollo:

Hollo (@hollo) is a single-user microblogging server powered by Fedify. While designed for individual users, it's fully federated through ActivityPub, allowing interaction with users across the fediverse. implements Mastodon-compatible APIs, making it compatible with most Mastodon clients without needing its own web interface.

Hollo also serves as our testing ground for bleeding-edge Fedify features before they're officially released.

BotKit :botkit:

BotKit (@botkit) is our newest family memberโ€”a framework specifically designed for creating ActivityPub bots. Unlike traditional Mastodon bots, creates standalone ActivityPub servers that aren't constrained by platform-specific limitations (like character counts).

BotKit's API is intentionally simpleโ€”you can create a complete bot in a single TypeScript file!


All three projects are open source and hosted under the @fedify-dev GitHub organization. While they serve different purposes, they share common goals: making ActivityPub development more accessible and expanding the fediverse ecosystem.

If you're interested in trying any of these projects or contributing to their development, check out:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

Fedifyใฎ้–ข้€ฃใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ”็ดนไป‹ใ—ใŸใ„ใจๆ€ใ„ใพใ™ใ€‚ActivityPubใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–‹็™บใ‚’ใ‚ˆใ‚Š็ฐกๅ˜ใซใ™ใ‚‹ใƒ„ใƒผใƒซ็พคใงใ™๏ผš

Fedify :fedify:

Fedify๏ผˆ@fedify๏ผ‰ใฏActivityPubใ‚„ใใฎไป–ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๆจ™ๆบ–ใ‚’ๆดป็”จใ™ใ‚‹้€ฃๅˆๅž‹ใ‚ตใƒผใƒใƒผใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’ๆง‹็ฏ‰ใ™ใ‚‹ใŸใ‚ใฎTypeScriptใƒฉใ‚คใƒ–ใƒฉใƒชใงใ™ใ€‚Activity Vocabularyใฎๅž‹ๅฎ‰ๅ…จใชใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ€WebFingerใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใƒปใ‚ตใƒผใƒใƒผใ€HTTP Signaturesใชใฉใ‚’ๆไพ›ใ—ใ€ใƒœใ‚คใƒฉใƒผใƒ—ใƒฌใƒผใƒˆใ‚ณใƒผใƒ‰ใ‚’ๅ‰Šๆธ›ใ—ใฆใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใƒญใ‚ธใƒƒใ‚ฏใซ้›†ไธญใงใใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚

Hollo :hollo:

Hollo๏ผˆ@hollo๏ผ‰ใฏFedifyใงๅ‹•ไฝœใ™ใ‚‹ใŠไธ€ไบบๆง˜็”จใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚ตใƒผใƒใƒผใงใ™ใ€‚ๅ€‹ไบบๅ‘ใ‘ใซ่จญ่จˆใ•ใ‚Œใฆใ„ใพใ™ใŒใ€ActivityPubใ‚’้€šใ˜ใฆๅฎŒๅ…จใซ้€ฃๅˆๅŒ–ใ•ใ‚ŒใฆใŠใ‚Šใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นๅ…จไฝ“ใฎใƒฆใƒผใ‚ถใƒผใจไบคๆตใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚HolloใฏMastodonไบ’ๆ›APIใ‚’ๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹ใŸใ‚ใ€็‹ฌ่‡ชใฎใ‚ฆใ‚งใƒ–ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚นใŒใชใใฆใ‚‚ใ€ใปใจใ‚“ใฉใฎMastodonใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใจไบ’ๆ›ๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

HolloใฏใพใŸใ€ๆญฃๅผใƒชใƒชใƒผใ‚นๅ‰ใฎๆœ€ๆ–ฐFedifyๆฉŸ่ƒฝใ‚’ใƒ†ใ‚นใƒˆใ™ใ‚‹ๅฎŸ้จ“ๅ ดใจใ—ใฆใ‚‚ๆดป็”จใ•ใ‚Œใฆใ„ใพใ™ใ€‚

BotKit :botkit:

BotKit๏ผˆ@botkit๏ผ‰ใฏ็งใŸใกใฎๆœ€ใ‚‚ๆ–ฐใ—ใ„ใƒกใƒณใƒใƒผใงใ€ActivityPubใƒœใƒƒใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใŸใ‚ใซ็‰นๅˆฅใซ่จญ่จˆใ•ใ‚ŒใŸใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚ๅพ“ๆฅใฎMastodonใƒœใƒƒใƒˆใจใฏ็•ฐใชใ‚Šใ€BotKitใฏใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰ใฎๅˆถ้™๏ผˆๆ–‡ๅญ—ๆ•ฐๅˆถ้™ใชใฉ๏ผ‰ใซ็ธ›ใ‚‰ใ‚Œใชใ„็‹ฌ็ซ‹ใ—ใŸActivityPubใ‚ตใƒผใƒใƒผใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

BotKitใฎAPIใฏๆ„ๅ›ณ็š„ใซใ‚ทใƒณใƒ—ใƒซใซ่จญ่จˆใ•ใ‚ŒใฆใŠใ‚Šใ€ๅ˜ไธ€ใฎTypeScriptใƒ•ใ‚กใ‚คใƒซใงๅฎŒๅ…จใชใƒœใƒƒใƒˆใ‚’ไฝœๆˆใงใใพใ™๏ผ


ใ“ใ‚Œใ‚‰ไธ‰ใคใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฏใ™ในใฆ@fedify-dev GitHubใ‚ชใƒผใ‚ฌใƒ‹ใ‚ผใƒผใ‚ทใƒงใƒณใงใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใจใ—ใฆๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใใ‚Œใžใ‚Œ็•ฐใชใ‚‹็›ฎ็š„ใ‚’ๆŒใฃใฆใ„ใพใ™ใŒใ€ActivityPub้–‹็™บใ‚’ใ‚ˆใ‚Š่บซ่ฟ‘ใซใ—ใ€ใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใ‚’ๆ‹กๅคงใ™ใ‚‹ใจใ„ใ†ๅ…ฑ้€šใฎ็›ฎๆจ™ใ‚’ๅ…ฑๆœ‰ใ—ใฆใ„ใพใ™ใ€‚

ใ“ใ‚Œใ‚‰ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’่ฉฆใ—ใฆใฟใŸใ‚Šใ€้–‹็™บใซ่ฒข็Œฎใ—ใŸใ‚Šใ™ใ‚‹ใ“ใจใซ่ˆˆๅ‘ณใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ไปฅไธ‹ใ‚’ใ”่ฆงใใ ใ•ใ„๏ผš

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

์ž๋งค ํ”„๋กœ์ ํŠธ๋“ค์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ด€๋ จ ๋„๊ตฌ๋“ค์ž…๋‹ˆ๋‹ค:

Fedify :fedify:

Fedify(@fedify)๋Š” ActivityPub์™€ ๋‹ค๋ฅธ () ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐํ•ฉ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Activity Vocabulary๋ฅผ ์œ„ํ•œ ํƒ€์ž… ์•ˆ์ „ํ•œ ๊ฐ์ฒด, WebFinger ํด๋ผ์ด์–ธํŠธ·์„œ๋ฒ„, HTTP Signatures ๋“ฑ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Hollo :hollo:

Hollo(@hollo)๋Š” Fedify๋กœ ๊ตฌ๋™๋˜๋Š” 1์ธ ์‚ฌ์šฉ์ž์šฉ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. 1์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ActivityPub๋ฅผ ํ†ตํ•ด ์™„์ „ํžˆ ์—ฐํ•ฉ๋˜์–ด ์—ฐํ•ฉ์šฐ์ฃผ ์ „์ฒด์˜ ์‚ฌ์šฉ์ž๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hollo๋Š” Mastodon ํ˜ธํ™˜ API๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ž์ฒด ์›น ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด๋„ ๋Œ€๋ถ€๋ถ„์˜ Mastodon ํด๋ผ์ด์–ธํŠธ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

Hollo๋Š” ๋˜ํ•œ ์ •์‹ ์ถœ์‹œ ์ „์— ์ตœ์‹  Fedify ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ์‹คํ—˜์žฅ์œผ๋กœ๋„ ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

BotKit :botkit:

BotKit(@botkit)์€ ์ €ํฌ์˜ ๊ฐ€์žฅ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์›์œผ๋กœ, ActivityPub ๋ด‡์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ Mastodon ๋ด‡๊ณผ ๋‹ฌ๋ฆฌ, BotKit์€ ํ”Œ๋žซํผ๋ณ„ ์ œํ•œ(๊ธ€์ž ์ˆ˜ ์ œํ•œ ๋“ฑ)์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ActivityPub ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

BotKit์˜ API๋Š” ์˜๋„์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๊ณ„๋˜์–ด ๋‹จ์ผ TypeScript ํŒŒ์ผ๋กœ ์™„์ „ํ•œ ๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


์„ธ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ @fedify-dev GitHub ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ActivityPub ๊ฐœ๋ฐœ์„ ๋” ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ์—ฐํ•ฉ์šฐ์ฃผ ์ƒํƒœ๊ณ„๋ฅผ ํ™•์žฅํ•œ๋‹ค๋Š” ๊ณตํ†ต๋œ ๋ชฉํ‘œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์— ๊ธฐ์—ฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ๋‹ค์Œ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We'd like to introduce the project familyโ€”a set of related tools that make building applications more accessible:

Fedify :fedify:

Fedify (@fedify) is a library for building federated server applications powered by ActivityPub and other standards. It provides type-safe objects for Activity Vocabulary, WebFinger client/server, HTTP Signatures, and moreโ€”eliminating boilerplate code so you can focus on your application logic.

Hollo :hollo:

Hollo (@hollo) is a single-user microblogging server powered by Fedify. While designed for individual users, it's fully federated through ActivityPub, allowing interaction with users across the fediverse. implements Mastodon-compatible APIs, making it compatible with most Mastodon clients without needing its own web interface.

Hollo also serves as our testing ground for bleeding-edge Fedify features before they're officially released.

BotKit :botkit:

BotKit (@botkit) is our newest family memberโ€”a framework specifically designed for creating ActivityPub bots. Unlike traditional Mastodon bots, creates standalone ActivityPub servers that aren't constrained by platform-specific limitations (like character counts).

BotKit's API is intentionally simpleโ€”you can create a complete bot in a single TypeScript file!


All three projects are open source and hosted under the @fedify-dev GitHub organization. While they serve different purposes, they share common goals: making ActivityPub development more accessible and expanding the fediverse ecosystem.

If you're interested in trying any of these projects or contributing to their development, check out:

Chris Trottier's avatar
Chris Trottier

@[email protected]

Two new features are coming to #Fedify! Both have to do with controls over domain names:

  1. Different domains for WebFinger handles and server URIs.
  2. Canonical origin support to explicitly set your serverโ€™s authoritative domain

https://hollo.social/@fedify/01953693-1afd-7430-988a-23d649099e1c

@fediversenews

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Yes, we probably should have had this soonerโ€ฆ but hey, proper domain handling is coming to 1.5.0!

https://hollo.social/@fedify/01953693-1afd-7430-988a-23d649099e1c

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're excited to announce two major features coming in 1.5.0, focused on giving you more control over domain names in your federated apps:

Separate WebFinger Host from Server Origin

Want different domains for your WebFinger handles and server URIs? Fedify 1.5.0 will let you use domains like @[email protected] as fediverse handles while serving content from https://ap.example.com. This gives you more flexibility in how you structure your federated services.

Canonical Origin Support

Need to ensure consistent URLs across your infrastructure? The new canonical origin support lets you explicitly set your server's authoritative domain. This is particularly useful when running behind reverse proxies or load balancersโ€”no more unexpected URLs generated from internal hostnames.


These features represent our ongoing commitment to making Fedify more flexible and production-ready.

Can't wait to try these features? You can experiment with them today using our unstable release v1.5.0-dev.680+562e3dc0 (JSR & npm). Keep in mind that this is an unstable release intended for testingโ€”use it in production at your own risk.

Otherwise, stay tuned for the stable Fedify 1.5.0 release!

Separating WebFinger host from the server origin

This API is available since Fedify 1.5.0.

Sometimes you may want to use different domain names for WebFinger handles (i.e., fediverse handles) and the server origin. For example, you may want to use https://ap.example.com/actors/alice as an actor URI but want to use @alice@example.com as its fediverse handle.

In such cases, you can set the handleHost different from the webOrigin in the origin option. The handleHost is used to construct the WebFinger handles, and the webOrigin is used to construct the URLs in the Context object:

const federation = createFederation({
  origin: {
    handleHost: "example.com",
    webOrigin: "https://ap.example.com",
  },
});

NOTE

Even if you set the handleHost different from the webOrigin, the other fediverse handle with the same domain name as the webOrigin will still be recognized.

In the above example, two fediverse handles are recognized as the same:

โ€ข @alice@example.com
โ€ข @alice@ap.example.comExplicitly setting the canonical origin

This API is available since Fedify 1.5.0.

Or you can explicitly set the canonical origin of the server by passing the origin option to the createFederation() function. The origin option is either a string or a FederationOrigin object, which consists of two fields: handleHost and webOrigin.

For example, if you want to set the canonical origin to https://example.com, you can pass the string:

const federation = createFederation({
  origin: "https://example.com",
});

NOTE

The origin option has to include the leading https:// or http:// scheme.

Such a configuration leads the constructed URLs using Context to use the canonical origin instead of the origin from the incoming HTTP requests, which avoids constructing unexpected URLs when a request bypasses a reverse proxy or a load balancer.

CAUTION

For example, suppose that your federated server (upstream) is accessible at the http://1.2.3.4:8000 and your load balancer (downstream) is accessible at the https://example.com and forwards the requests to the upstream server. In this case, you should set the canonical origin to https://example.com to construct the correct URLs. Otherwise, when some malicious actor directly sends a request to the upstream server, the constructed URLs will start with http://1.2.3.4:8000 instead of https://example.com, which can lead to security issues.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're excited to announce two major features coming in 1.5.0, focused on giving you more control over domain names in your federated apps:

Separate WebFinger Host from Server Origin

Want different domains for your WebFinger handles and server URIs? Fedify 1.5.0 will let you use domains like @[email protected] as fediverse handles while serving content from https://ap.example.com. This gives you more flexibility in how you structure your federated services.

Canonical Origin Support

Need to ensure consistent URLs across your infrastructure? The new canonical origin support lets you explicitly set your server's authoritative domain. This is particularly useful when running behind reverse proxies or load balancersโ€”no more unexpected URLs generated from internal hostnames.


These features represent our ongoing commitment to making Fedify more flexible and production-ready.

Can't wait to try these features? You can experiment with them today using our unstable release v1.5.0-dev.680+562e3dc0 (JSR & npm). Keep in mind that this is an unstable release intended for testingโ€”use it in production at your own risk.

Otherwise, stay tuned for the stable Fedify 1.5.0 release!

Separating WebFinger host from the server origin

This API is available since Fedify 1.5.0.

Sometimes you may want to use different domain names for WebFinger handles (i.e., fediverse handles) and the server origin. For example, you may want to use https://ap.example.com/actors/alice as an actor URI but want to use @alice@example.com as its fediverse handle.

In such cases, you can set the handleHost different from the webOrigin in the origin option. The handleHost is used to construct the WebFinger handles, and the webOrigin is used to construct the URLs in the Context object:

const federation = createFederation({
  origin: {
    handleHost: "example.com",
    webOrigin: "https://ap.example.com",
  },
});

NOTE

Even if you set the handleHost different from the webOrigin, the other fediverse handle with the same domain name as the webOrigin will still be recognized.

In the above example, two fediverse handles are recognized as the same:

โ€ข @alice@example.com
โ€ข @alice@ap.example.comExplicitly setting the canonical origin

This API is available since Fedify 1.5.0.

Or you can explicitly set the canonical origin of the server by passing the origin option to the createFederation() function. The origin option is either a string or a FederationOrigin object, which consists of two fields: handleHost and webOrigin.

For example, if you want to set the canonical origin to https://example.com, you can pass the string:

const federation = createFederation({
  origin: "https://example.com",
});

NOTE

The origin option has to include the leading https:// or http:// scheme.

Such a configuration leads the constructed URLs using Context to use the canonical origin instead of the origin from the incoming HTTP requests, which avoids constructing unexpected URLs when a request bypasses a reverse proxy or a load balancer.

CAUTION

For example, suppose that your federated server (upstream) is accessible at the http://1.2.3.4:8000 and your load balancer (downstream) is accessible at the https://example.com and forwards the requests to the upstream server. In this case, you should set the canonical origin to https://example.com to construct the correct URLs. Otherwise, when some malicious actor directly sends a request to the upstream server, the constructed URLs will start with http://1.2.3.4:8000 instead of https://example.com, which can lead to security issues.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're excited to announce two major features coming in 1.5.0, focused on giving you more control over domain names in your federated apps:

Separate WebFinger Host from Server Origin

Want different domains for your WebFinger handles and server URIs? Fedify 1.5.0 will let you use domains like @[email protected] as fediverse handles while serving content from https://ap.example.com. This gives you more flexibility in how you structure your federated services.

Canonical Origin Support

Need to ensure consistent URLs across your infrastructure? The new canonical origin support lets you explicitly set your server's authoritative domain. This is particularly useful when running behind reverse proxies or load balancersโ€”no more unexpected URLs generated from internal hostnames.


These features represent our ongoing commitment to making Fedify more flexible and production-ready.

Can't wait to try these features? You can experiment with them today using our unstable release v1.5.0-dev.680+562e3dc0 (JSR & npm). Keep in mind that this is an unstable release intended for testingโ€”use it in production at your own risk.

Otherwise, stay tuned for the stable Fedify 1.5.0 release!

Separating WebFinger host from the server origin

This API is available since Fedify 1.5.0.

Sometimes you may want to use different domain names for WebFinger handles (i.e., fediverse handles) and the server origin. For example, you may want to use https://ap.example.com/actors/alice as an actor URI but want to use @alice@example.com as its fediverse handle.

In such cases, you can set the handleHost different from the webOrigin in the origin option. The handleHost is used to construct the WebFinger handles, and the webOrigin is used to construct the URLs in the Context object:

const federation = createFederation({
  origin: {
    handleHost: "example.com",
    webOrigin: "https://ap.example.com",
  },
});

NOTE

Even if you set the handleHost different from the webOrigin, the other fediverse handle with the same domain name as the webOrigin will still be recognized.

In the above example, two fediverse handles are recognized as the same:

โ€ข @alice@example.com
โ€ข @alice@ap.example.comExplicitly setting the canonical origin

This API is available since Fedify 1.5.0.

Or you can explicitly set the canonical origin of the server by passing the origin option to the createFederation() function. The origin option is either a string or a FederationOrigin object, which consists of two fields: handleHost and webOrigin.

For example, if you want to set the canonical origin to https://example.com, you can pass the string:

const federation = createFederation({
  origin: "https://example.com",
});

NOTE

The origin option has to include the leading https:// or http:// scheme.

Such a configuration leads the constructed URLs using Context to use the canonical origin instead of the origin from the incoming HTTP requests, which avoids constructing unexpected URLs when a request bypasses a reverse proxy or a load balancer.

CAUTION

For example, suppose that your federated server (upstream) is accessible at the http://1.2.3.4:8000 and your load balancer (downstream) is accessible at the https://example.com and forwards the requests to the upstream server. In this case, you should set the canonical origin to https://example.com to construct the correct URLs. Otherwise, when some malicious actor directly sends a request to the upstream server, the constructed URLs will start with http://1.2.3.4:8000 instead of https://example.com, which can lead to security issues.
Dr James Ravenscroft's avatar
Dr James Ravenscroft

@[email protected]

I set up a fedi bot that creates Severance "facts about your outie" after I saw some amusing ones floating around this morning. Good opportunity to get familiar with and outiebot.jamesravey.me/message

Dr James Ravenscroft's avatar
Dr James Ravenscroft

@[email protected]

I set up a fedi bot that creates Severance "facts about your outie" after I saw some amusing ones floating around this morning. Good opportunity to get familiar with and outiebot.jamesravey.me/message

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Today's my work on : Support PEM-PKCS#1 besides PEM-SPKI for RSA public keys.

Although the vast majority of ActivityPub software encodes RSA public keys in PEM-SPKI format, some software encodes RSA public keys in PEM-PKCS format (see: https://github.com/fedify-dev/hollo/pull/109#issuecomment-2662591619). Fedify currently only accepts PEM-SPKI format, so it needs to accept PEM-PKCS format as well for better interoperability.

https://github.com/fedify-dev/fedify/issues/209

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Today's my work on : Support PEM-PKCS#1 besides PEM-SPKI for RSA public keys.

Although the vast majority of ActivityPub software encodes RSA public keys in PEM-SPKI format, some software encodes RSA public keys in PEM-PKCS format (see: https://github.com/fedify-dev/hollo/pull/109#issuecomment-2662591619). Fedify currently only accepts PEM-SPKI format, so it needs to accept PEM-PKCS format as well for better interoperability.

https://github.com/fedify-dev/fedify/issues/209

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข Fedifyใง็‹ฌ่‡ชใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใ‚ตใƒผใƒใƒผใ‚’ๆง‹็ฏ‰ใ—ใพใ—ใ‚‡ใ†๏ผ

FedifyใฏActivityPubใƒ—ใƒญใƒˆใ‚ณใƒซใฎๅฎŸ่ฃ…ใ‚’็ฐกๅ˜ใซใ™ใ‚‹TypeScriptใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚้€ฃๅˆใƒ—ใƒญใƒˆใ‚ณใƒซใฎ่ค‡้›‘ใชๅฎŸ่ฃ…ใซๅ›ฐใฃใฆใ„ใพใ›ใ‚“ใ‹๏ผŸFedifyใŒใŠๆ‰‹ไผใ„ใ—ใพใ™๏ผ

โœจ ไธปใชๆฉŸ่ƒฝ

๐Ÿ”ง CLIใƒ„ใƒผใƒซ

๐Ÿš€ ใƒฉใƒณใ‚ฟใ‚คใƒ ใ‚ตใƒใƒผใƒˆ

๐Ÿ“š ๅญฆ็ฟ’ใŒ็ฐกๅ˜

MITใƒฉใ‚คใ‚ปใƒณใ‚นใง่‡ช็”ฑใซๅˆฉ็”จๅฏ่ƒฝใชใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใ™๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข ์—ฌ๋Ÿฌ๋ถ„๋งŒ์˜ ์„œ๋ฒ„๋ฅผ Fedify๋กœ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”!

Fedify๋Š” ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? Fedify๊ฐ€ ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค!

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ”ง CLI ๋„๊ตฌ

๐Ÿš€ ๋Ÿฐํƒ€์ž„ ์ง€์›

๐Ÿ“š ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค

์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค๋กœ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Build your own server with !

Fedify is a framework that simplifies implementation. Want to build a federated server without the complexity? Fedify has got you covered!

โœจ Key features

๐Ÿ”ง CLI toolchain

๐Ÿš€ Runtime support

๐Ÿ“š Easy to learn

Available under the licenseโ€”free and open source!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข Fedifyใง็‹ฌ่‡ชใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใ‚ตใƒผใƒใƒผใ‚’ๆง‹็ฏ‰ใ—ใพใ—ใ‚‡ใ†๏ผ

FedifyใฏActivityPubใƒ—ใƒญใƒˆใ‚ณใƒซใฎๅฎŸ่ฃ…ใ‚’็ฐกๅ˜ใซใ™ใ‚‹TypeScriptใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚้€ฃๅˆใƒ—ใƒญใƒˆใ‚ณใƒซใฎ่ค‡้›‘ใชๅฎŸ่ฃ…ใซๅ›ฐใฃใฆใ„ใพใ›ใ‚“ใ‹๏ผŸFedifyใŒใŠๆ‰‹ไผใ„ใ—ใพใ™๏ผ

โœจ ไธปใชๆฉŸ่ƒฝ

๐Ÿ”ง CLIใƒ„ใƒผใƒซ

๐Ÿš€ ใƒฉใƒณใ‚ฟใ‚คใƒ ใ‚ตใƒใƒผใƒˆ

๐Ÿ“š ๅญฆ็ฟ’ใŒ็ฐกๅ˜

MITใƒฉใ‚คใ‚ปใƒณใ‚นใง่‡ช็”ฑใซๅˆฉ็”จๅฏ่ƒฝใชใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใ™๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข Fedifyใง็‹ฌ่‡ชใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใ‚ตใƒผใƒใƒผใ‚’ๆง‹็ฏ‰ใ—ใพใ—ใ‚‡ใ†๏ผ

FedifyใฏActivityPubใƒ—ใƒญใƒˆใ‚ณใƒซใฎๅฎŸ่ฃ…ใ‚’็ฐกๅ˜ใซใ™ใ‚‹TypeScriptใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚้€ฃๅˆใƒ—ใƒญใƒˆใ‚ณใƒซใฎ่ค‡้›‘ใชๅฎŸ่ฃ…ใซๅ›ฐใฃใฆใ„ใพใ›ใ‚“ใ‹๏ผŸFedifyใŒใŠๆ‰‹ไผใ„ใ—ใพใ™๏ผ

โœจ ไธปใชๆฉŸ่ƒฝ

๐Ÿ”ง CLIใƒ„ใƒผใƒซ

๐Ÿš€ ใƒฉใƒณใ‚ฟใ‚คใƒ ใ‚ตใƒใƒผใƒˆ

๐Ÿ“š ๅญฆ็ฟ’ใŒ็ฐกๅ˜

MITใƒฉใ‚คใ‚ปใƒณใ‚นใง่‡ช็”ฑใซๅˆฉ็”จๅฏ่ƒฝใชใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใ™๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข Fedifyใง็‹ฌ่‡ชใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใ‚ตใƒผใƒใƒผใ‚’ๆง‹็ฏ‰ใ—ใพใ—ใ‚‡ใ†๏ผ

FedifyใฏActivityPubใƒ—ใƒญใƒˆใ‚ณใƒซใฎๅฎŸ่ฃ…ใ‚’็ฐกๅ˜ใซใ™ใ‚‹TypeScriptใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚้€ฃๅˆใƒ—ใƒญใƒˆใ‚ณใƒซใฎ่ค‡้›‘ใชๅฎŸ่ฃ…ใซๅ›ฐใฃใฆใ„ใพใ›ใ‚“ใ‹๏ผŸFedifyใŒใŠๆ‰‹ไผใ„ใ—ใพใ™๏ผ

โœจ ไธปใชๆฉŸ่ƒฝ

๐Ÿ”ง CLIใƒ„ใƒผใƒซ

๐Ÿš€ ใƒฉใƒณใ‚ฟใ‚คใƒ ใ‚ตใƒใƒผใƒˆ

๐Ÿ“š ๅญฆ็ฟ’ใŒ็ฐกๅ˜

MITใƒฉใ‚คใ‚ปใƒณใ‚นใง่‡ช็”ฑใซๅˆฉ็”จๅฏ่ƒฝใชใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใ™๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข ์—ฌ๋Ÿฌ๋ถ„๋งŒ์˜ ์„œ๋ฒ„๋ฅผ Fedify๋กœ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”!

Fedify๋Š” ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? Fedify๊ฐ€ ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค!

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ”ง CLI ๋„๊ตฌ

๐Ÿš€ ๋Ÿฐํƒ€์ž„ ์ง€์›

๐Ÿ“š ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค

์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค๋กœ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Build your own server with !

Fedify is a framework that simplifies implementation. Want to build a federated server without the complexity? Fedify has got you covered!

โœจ Key features

๐Ÿ”ง CLI toolchain

๐Ÿš€ Runtime support

๐Ÿ“š Easy to learn

Available under the licenseโ€”free and open source!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข Fedifyใง็‹ฌ่‡ชใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใ‚ตใƒผใƒใƒผใ‚’ๆง‹็ฏ‰ใ—ใพใ—ใ‚‡ใ†๏ผ

FedifyใฏActivityPubใƒ—ใƒญใƒˆใ‚ณใƒซใฎๅฎŸ่ฃ…ใ‚’็ฐกๅ˜ใซใ™ใ‚‹TypeScriptใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚้€ฃๅˆใƒ—ใƒญใƒˆใ‚ณใƒซใฎ่ค‡้›‘ใชๅฎŸ่ฃ…ใซๅ›ฐใฃใฆใ„ใพใ›ใ‚“ใ‹๏ผŸFedifyใŒใŠๆ‰‹ไผใ„ใ—ใพใ™๏ผ

โœจ ไธปใชๆฉŸ่ƒฝ

๐Ÿ”ง CLIใƒ„ใƒผใƒซ

๐Ÿš€ ใƒฉใƒณใ‚ฟใ‚คใƒ ใ‚ตใƒใƒผใƒˆ

๐Ÿ“š ๅญฆ็ฟ’ใŒ็ฐกๅ˜

MITใƒฉใ‚คใ‚ปใƒณใ‚นใง่‡ช็”ฑใซๅˆฉ็”จๅฏ่ƒฝใชใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใ™๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

๐Ÿ“ข ์—ฌ๋Ÿฌ๋ถ„๋งŒ์˜ ์„œ๋ฒ„๋ฅผ Fedify๋กœ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”!

Fedify๋Š” ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์„ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์—ฐํ•ฉ ํ”„๋กœํ† ์ฝœ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? Fedify๊ฐ€ ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค!

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ”ง CLI ๋„๊ตฌ

๐Ÿš€ ๋Ÿฐํƒ€์ž„ ์ง€์›

๐Ÿ“š ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค

์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค๋กœ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Build your own server with !

Fedify is a framework that simplifies implementation. Want to build a federated server without the complexity? Fedify has got you covered!

โœจ Key features

๐Ÿ”ง CLI toolchain

๐Ÿš€ Runtime support

๐Ÿ“š Easy to learn

Available under the licenseโ€”free and open source!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Excited to share that Fedify CLI is now available on Scoop for users! You can easily install it with scoop install fedify. One more way to get started with development!

https://github.com/ScoopInstaller/Main/pull/6371

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Excited to share that Fedify CLI is now available on Scoop for users! You can easily install it with scoop install fedify. One more way to get started with development!

https://github.com/ScoopInstaller/Main/pull/6371

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Just integrated 's new workspaces feature into the repository! This means we can now manage the main package, CLI tool, and examples all in one place. The best part? No more custom import map generatorsโ€”everything's simpler and more intuitive for new contributors. Loving how Deno 2.0's workspace support makes managing monorepos so much cleaner.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Love building federated apps with ? Consider supporting its development! We have tiers starting from just $5/month, and every contribution helps keep the project sustainable. :fedify:

https://opencollective.com/fedify

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Love building federated apps with ? Consider supporting its development! We have tiers starting from just $5/month, and every contribution helps keep the project sustainable. :fedify:

https://opencollective.com/fedify

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

We're considering adding custom background task support to 1.5.0. Got thoughts on whether Fedify should support user-defined background tasks alongside ActivityPub operations? Check out the proposal and share your feedback: https://github.com/fedify-dev/fedify/issues/206.

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Following Mastodon's plan to adopt HTTP Message Signatures (RFC 9421), we will implement the same standard in . We'll use โ€œdouble-knockingโ€ to maintain compatibility with servers using older signature versions (draft-cavage-http-signatures-12).

Julian Fietkau's avatar
Julian Fietkau

@[email protected] ยท Reply to @reiver โŠผ (Charles) :batman:'s post

@reiver @andypiper @rwg @andresmh Re: which networks, I haven't personally done any academic research about social platforms. Pondering questions, yes, written anything down, no.

But my FOSS work has been centered on ActivityPub lately: fietkau.software/tag/fediverse

I have a project cooking that I think you'll like, for which I'm hoping to run a semi-public alpha test within the next few months. Join the @fedify Matrix room at -users:matrix.org to witness my implementation struggles. ๐Ÿ‘

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

A milestone worth celebratingโ€” just hit 100+ releases! From day one, we've been committed to building a robust framework, and each release has brought us closer to that goal. Here's to many more releases as we continue growing the together! :fedify:

Screenshot shows release stats for Fedify: latest version 1.4.1 was released 6 minutes ago, with a green tag showing โ€œLatest.โ€ Total release count shows โ€œ+ 100 releases.โ€ A green icon resembling a tag appears next to the Fedify name.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Following Mastodon's plan to adopt HTTP Message Signatures (RFC 9421), we will implement the same standard in . We'll use โ€œdouble-knockingโ€ to maintain compatibility with servers using older signature versions (draft-cavage-http-signatures-12).

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Following Mastodon's plan to adopt HTTP Message Signatures (RFC 9421), we will implement the same standard in . We'll use โ€œdouble-knockingโ€ to maintain compatibility with servers using older signature versions (draft-cavage-http-signatures-12).

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

ใŠ—๏ธ ็ธฝ(์ด) ๋ฆด๋ฆฌ์Šค ๆ•ธ(์ˆ˜) 100็•ช(๋ฒˆ) ๋„˜๋‹ค! :fedify:

https://hollo.social/@fedify/0194efd6-a7c2-79f6-925b-737fc57138b8

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

A milestone worth celebratingโ€” just hit 100+ releases! From day one, we've been committed to building a robust framework, and each release has brought us closer to that goal. Here's to many more releases as we continue growing the together! :fedify:

Screenshot shows release stats for Fedify: latest version 1.4.1 was released 6 minutes ago, with a green tag showing โ€œLatest.โ€ Total release count shows โ€œ+ 100 releases.โ€ A green icon resembling a tag appears next to the Fedify name.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

We're considering adding custom background task support to 1.5.0. Got thoughts on whether Fedify should support user-defined background tasks alongside ActivityPub operations? Check out the proposal and share your feedback: https://github.com/fedify-dev/fedify/issues/206.

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@[email protected]

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@[email protected]

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@[email protected]

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Just released 1.4.0!

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Just released 1.4.0!

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

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!

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Okay, I'm about to release 1.4.0. Probably today or tomorrow?

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Okay, I'm about to release 1.4.0. Probably today or tomorrow?

Julian Fietkau's avatar
Julian Fietkau

@[email protected]

Made a little bit of progress on my project yesterday. Spun my wheels testing a few ORMs and running into compatibility problems with each of them. By the time I went to bed, the preferences page was capable of storing and loading account-local form data for the first time. ๐Ÿฅณ

For this project, when progress looks slow from the outside, it's because I'm learning the ecosystem pretty much from scratch. Not letting myself get discouraged. ๐Ÿ™‚

Julian Fietkau's avatar
Julian Fietkau

@[email protected]

Made a little bit of progress on my project yesterday. Spun my wheels testing a few ORMs and running into compatibility problems with each of them. By the time I went to bed, the preferences page was capable of storing and loading account-local form data for the first time. ๐Ÿฅณ

For this project, when progress looks slow from the outside, it's because I'm learning the ecosystem pretty much from scratch. Not letting myself get discouraged. ๐Ÿ™‚

Markus ๐ŸŒฑ:fosse:'s avatar
Markus ๐ŸŒฑ:fosse:

@[email protected]

Eg har nett stรธtta @fedify ! Dei har fleire kule prosjekt. @[email protected] kรธyrer pรฅ deira teneste @hollo.

English:
I've just contributed to They have several cool projects. @[email protected] runs on their service .

opencollective.com/fedify

Markus ๐ŸŒฑ:fosse:'s avatar
Markus ๐ŸŒฑ:fosse:

@[email protected]

Eg har nett stรธtta @fedify ! Dei har fleire kule prosjekt. @[email protected] kรธyrer pรฅ deira teneste @hollo.

English:
I've just contributed to They have several cool projects. @[email protected] runs on their service .

opencollective.com/fedify

Markus ๐ŸŒฑ:fosse:'s avatar
Markus ๐ŸŒฑ:fosse:

@[email protected]

Eg har nett stรธtta @fedify ! Dei har fleire kule prosjekt. @[email protected] kรธyrer pรฅ deira teneste @hollo.

English:
I've just contributed to They have several cool projects. @[email protected] runs on their service .

opencollective.com/fedify

Markus ๐ŸŒฑ:fosse:'s avatar
Markus ๐ŸŒฑ:fosse:

@[email protected]

Eg har nett stรธtta @fedify ! Dei har fleire kule prosjekt. @[email protected] kรธyrer pรฅ deira teneste @hollo.

English:
I've just contributed to They have several cool projects. @[email protected] runs on their service .

opencollective.com/fedify

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just set up our sponsors showcase! You can now find our wonderful sponsors:

These pages are automatically updated every hour. Thank you to all our sponsors for supporting 's development!

Want to be listed? Support us on Open Collective: https://opencollective.com/fedify.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

As the maintainer of , I'd be grateful for your support to help keep the project sustainable! :fedify:

https://hollo.social/@fedify/0194b112-b604-7d03-84e0-4faaf4ab46cd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just set up our sponsors showcase! You can now find our wonderful sponsors:

These pages are automatically updated every hour. Thank you to all our sponsors for supporting 's development!

Want to be listed? Support us on Open Collective: https://opencollective.com/fedify.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

As the maintainer of , I'd be grateful for your support to help keep the project sustainable! :fedify:

https://hollo.social/@fedify/0194b112-b604-7d03-84e0-4faaf4ab46cd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just set up our sponsors showcase! You can now find our wonderful sponsors:

These pages are automatically updated every hour. Thank you to all our sponsors for supporting 's development!

Want to be listed? Support us on Open Collective: https://opencollective.com/fedify.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

As the maintainer of , I'd be grateful for your support to help keep the project sustainable! :fedify:

https://hollo.social/@fedify/0194b112-b604-7d03-84e0-4faaf4ab46cd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

๐ŸŽ‰ Excited to announce that is now on Open Collective! Support the project's development starting at:

  • Backer (from $5/mo)
  • Supporter (from $25/mo)
  • Sponsor (from $100/mo)
  • Corporate Sponsor (from $500/mo)
  • Custom donations welcome

Your support will help us maintain and improve Fedify. Check it out here:

https://opencollective.com/fedify

:fedify:

Fedify's Open Collective page showing the project logo, description as โ€œA TypeScript library for building federated server apps powered by ActivityPub and other standardsโ€, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just set up our sponsors showcase! You can now find our wonderful sponsors:

These pages are automatically updated every hour. Thank you to all our sponsors for supporting 's development!

Want to be listed? Support us on Open Collective: https://opencollective.com/fedify.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just set up our sponsors showcase! You can now find our wonderful sponsors:

These pages are automatically updated every hour. Thank you to all our sponsors for supporting 's development!

Want to be listed? Support us on Open Collective: https://opencollective.com/fedify.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I want to automatically list the names of people who have sponsored with Open Collective in README.md. Is there a good way to do this? (I think I can use GitHub Actions or Open Collective's webhooks, but it's a bit of a hassle to create it myself.)

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

As the maintainer of , I'd be grateful for your support to help keep the project sustainable! :fedify:

https://hollo.social/@fedify/0194b112-b604-7d03-84e0-4faaf4ab46cd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

๐ŸŽ‰ Excited to announce that is now on Open Collective! Support the project's development starting at:

  • Backer (from $5/mo)
  • Supporter (from $25/mo)
  • Sponsor (from $100/mo)
  • Corporate Sponsor (from $500/mo)
  • Custom donations welcome

Your support will help us maintain and improve Fedify. Check it out here:

https://opencollective.com/fedify

:fedify:

Fedify's Open Collective page showing the project logo, description as โ€œA TypeScript library for building federated server apps powered by ActivityPub and other standardsโ€, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

As the maintainer of , I'd be grateful for your support to help keep the project sustainable! :fedify:

https://hollo.social/@fedify/0194b112-b604-7d03-84e0-4faaf4ab46cd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

๐ŸŽ‰ Excited to announce that is now on Open Collective! Support the project's development starting at:

  • Backer (from $5/mo)
  • Supporter (from $25/mo)
  • Sponsor (from $100/mo)
  • Corporate Sponsor (from $500/mo)
  • Custom donations welcome

Your support will help us maintain and improve Fedify. Check it out here:

https://opencollective.com/fedify

:fedify:

Fedify's Open Collective page showing the project logo, description as โ€œA TypeScript library for building federated server apps powered by ActivityPub and other standardsโ€, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

๐ŸŽ‰ Excited to announce that is now on Open Collective! Support the project's development starting at:

  • Backer (from $5/mo)
  • Supporter (from $25/mo)
  • Sponsor (from $100/mo)
  • Corporate Sponsor (from $500/mo)
  • Custom donations welcome

Your support will help us maintain and improve Fedify. Check it out here:

https://opencollective.com/fedify

:fedify:

Fedify's Open Collective page showing the project logo, description as โ€œA TypeScript library for building federated server apps powered by ActivityPub and other standardsโ€, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Valtteri Laitinen (@valtlai) managed to get running on Workers!

https://fedi.valtlai.fi/@valtlai/113906145660141267

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Valtteri Laitinen (@valtlai) managed to get running on Workers!

https://fedi.valtlai.fi/@valtlai/113906145660141267

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I passed the review to open a :fedify: collective on Open Collective, and now I'm thinking about how to structure the contribution tiers. ๐Ÿค”

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I passed the review to open a :fedify: collective on Open Collective, and now I'm thinking about how to structure the contribution tiers. ๐Ÿค”

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@[email protected]

๐Ÿ“ข Important announcement! 's repository has moved to a new home! ๐Ÿ 

The repository is now located at @fedify-dev/botkit (previously @dahlia/botkit). All future development will continue at the new location.

Don't worryโ€”everything's the same, just a new address! Please update your bookmarks and project references. Thanks for being part of our community! :botkit:

https://hollo.social/@fedify/0194a851-581d-779c-b777-dc39e753ef14

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@[email protected]

๐Ÿ“ข Important announcement! 's repository has moved to a new home! ๐Ÿ 

The repository is now located at @fedify-dev/botkit (previously @dahlia/botkit). All future development will continue at the new location.

Don't worryโ€”everything's the same, just a new address! Please update your bookmarks and project references. Thanks for being part of our community! :botkit:

https://hollo.social/@fedify/0194a851-581d-779c-b777-dc39e753ef14

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

We've just moved the project and related repositories to our new GitHub organization account, @fedify-dev! ๐ŸŽ‰

Here's what moved:

All repositories have been transferred and GitHub's automatic redirects are in place, so existing links will continue to work. Also, the project's core functionality and development process remain unchanged.

Thanks to everyone who participated in our naming poll. Looking forward to Fedify's continued growth under its new organizational home!

:fedify: New GitHub organization: https://github.com/fedify-dev.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

already uses the API exclusively for representing temporal data.

https://developer.mozilla.org/en-US/blog/javascript-temporal-is-coming/

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

If you'd like to support the development of @fedify or @hollo or @botkit, you can sponsor me on GitHub!

https://github.com/sponsors/dahlia

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

If you'd like to support the development of @fedify or @hollo or @botkit, you can sponsor me on GitHub!

https://github.com/sponsors/dahlia

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

If you'd like to support the development of @fedify or @hollo or @botkit, you can sponsor me on GitHub!

https://github.com/sponsors/dahlia

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected] ยท Reply to ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s post

ใ€Œ@fedifyใ€ใ‚„ใ€Œ@holloใ€ใ‚„ใ€Œ@botkitใ€ใฎ้–‹็™บใ‚’ๆ”ฏๆดใ—ใŸใ„ๆ–นใฏใ€GitHubใงใ‚นใƒใƒณใ‚ตใƒผใซใชใฃใฆใใ ใ•ใ„๏ผ

https://github.com/sponsors/dahlia

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected] ยท Reply to ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s post

์ œ ํ”„๋กœ์ ํŠธ์ธ @fedify, @hollo, @botkit ็ญ‰(๋“ฑ)์˜ ้–‹็™ผ(๊ฐœ๋ฐœ)์„ ๅพŒๆด(ํ›„์›)ํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค๊ป˜์„œ๋Š”, GitHub์—์„œ ์ œ ์Šคํฐ์„œ๊ฐ€ ๋˜์–ด ์ฃผ์„ธ์š”!

https://github.com/sponsors/dahlia

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected] ยท Reply to ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s post

ใ€Œ@fedifyใ€ใ‚„ใ€Œ@holloใ€ใ‚„ใ€Œ@botkitใ€ใฎ้–‹็™บใ‚’ๆ”ฏๆดใ—ใŸใ„ๆ–นใฏใ€GitHubใงใ‚นใƒใƒณใ‚ตใƒผใซใชใฃใฆใใ ใ•ใ„๏ผ

https://github.com/sponsors/dahlia

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

If you'd like to support the development of @fedify or @hollo or @botkit, you can sponsor me on GitHub!

https://github.com/sponsors/dahlia

08956495

@[email protected]

If you are a admin running libraries on keep an eye on this: nvd.nist.gov/vuln/detail/CVE-2

08956495

@[email protected]

If you are a admin running libraries on keep an eye on this: nvd.nist.gov/vuln/detail/CVE-2

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

FedifyใฎWebFingerๅฎŸ่ฃ…ใซใŠใ‘ใ‚‹่„†ๅผฑๆ€งCVE-2025-23221ใซๅฏพใ™ใ‚‹ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ๏ผˆ1.0.14ใ€1.1.11ใ€1.2.11ใ€1.3.4๏ผ‰ใ‚’ใƒชใƒชใƒผใ‚นใ„ใŸใ—ใพใ—ใŸใ€‚ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผๆง˜ใซใŠใ‹ใ‚Œใพใ—ใฆใฏใ€ใŠไฝฟใ„ใฎใƒใƒผใ‚ธใƒงใƒณใซๅฟœใ˜ใŸๆœ€ๆ–ฐ็‰ˆใธใฎ้€Ÿใ‚„ใ‹ใชใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ‚’ๆŽจๅฅจใ„ใŸใ—ใพใ™ใ€‚

่„†ๅผฑๆ€งใฎ่ฉณ็ดฐ

ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใซใ‚ˆใ‚Šใ€FedifyใฎlookupWebFinger()้–ขๆ•ฐใซใŠใ„ใฆไปฅไธ‹ใฎใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃไธŠใฎๅ•้กŒใŒ็™บ่ฆ‹ใ•ใ‚Œใพใ—ใŸ๏ผš

  • ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใซใ‚ˆใ‚‹ใ‚ตใƒผใƒ“ใ‚นๆ‹’ๅฆๆ”ปๆ’ƒ๏ผˆDoS๏ผ‰ใฎๅฏ่ƒฝๆ€ง
  • ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆฉ็”จใ—ใŸSSRF๏ผˆใ‚ตใƒผใƒใƒผใ‚ตใ‚คใƒ‰ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒ•ใ‚ฉใƒผใ‚ธใ‚งใƒช๏ผ‰ๆ”ปๆ’ƒใฎๅฏ่ƒฝๆ€ง
  • ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๆ“ไฝœใซใ‚ˆใ‚‹ๆ„ๅ›ณใ—ใชใ„URLใ‚นใ‚ญใƒผใƒ ใธใฎใ‚ขใ‚ฏใ‚ปใ‚นใฎๅฏ่ƒฝๆ€ง

ไฟฎๆญฃใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณ

  • 1.3.xใ‚ทใƒชใƒผใ‚บ๏ผš1.3.4ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.2.xใ‚ทใƒชใƒผใ‚บ๏ผš1.2.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.1.xใ‚ทใƒชใƒผใ‚บ๏ผš1.1.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.0.xใ‚ทใƒชใƒผใ‚บ๏ผš1.0.14ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ

ๅค‰ๆ›ดๅ†…ๅฎน

ๆœฌใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใฏใ€ไปฅไธ‹ใฎไฟฎๆญฃใŒๅฎŸๆ–ฝใ•ใ‚Œใพใ—ใŸ๏ผš

  1. ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใ‚’้˜ฒใใŸใ‚ใ€ๆœ€ๅคงใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๅ›žๆ•ฐ๏ผˆ5ๅ›ž๏ผ‰ใฎๅˆถ้™ใ‚’ๅฐŽๅ…ฅ
  2. ๅ…ƒใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใจๅŒใ˜ใ‚นใ‚ญใƒผใƒ ๏ผˆHTTP/HTTPS๏ผ‰ใฎใฟใซใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆถ้™
  3. SSRFใ‚’้˜ฒๆญขใ™ใ‚‹ใŸใ‚ใ€ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ใƒ–ใƒญใƒƒใ‚ฏ

ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ•

ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใงๆœ€ๆ–ฐใฎใ‚ปใ‚ญใƒฅใ‚ขใƒใƒผใ‚ธใƒงใƒณใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใใพใ™๏ผš

# npmใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
npm update @fedify/fedify

# Denoใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
deno add jsr:@fedify/fedify

ใ“ใฎ่„†ๅผฑๆ€งใ‚’่ฒฌไปปใ‚’ๆŒใฃใฆๅ ฑๅ‘Šใ—ใฆใ„ใŸใ ใ„ใŸใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใฎๆ–นใซๆ„Ÿ่ฌ็”ณใ—ไธŠใ’ใพใ™ใ€‚่ฟ…้€ŸใชๅฏพๅฟœใŒๅฏ่ƒฝใจใชใ‚Šใพใ—ใŸใ€‚

ๆœฌ่„†ๅผฑๆ€งใฎ่ฉณ็ดฐใซใคใ„ใฆใฏใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅ‹งๅ‘Šใ‚’ใ”ๅ‚็…งใใ ใ•ใ„ใ€‚


ใ”่ณชๅ•ใ‚„ใ”ๆ‡ธๅฟตใŒใ”ใ–ใ„ใพใ—ใŸใ‚‰ใ€GitHub Discussionsใ€Matrixใƒใƒฃใƒƒใƒˆใ‚นใƒšใƒผใ‚นใ€ใพใŸใฏDiscordใ‚ตใƒผใƒใƒผใพใงใŠๆฐ—่ปฝใซใ”้€ฃ็ตกใใ ใ•ใ„ใ€‚

08956495

@[email protected]

If you are a admin running libraries on keep an eye on this: nvd.nist.gov/vuln/detail/CVE-2

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

FedifyใฎWebFingerๅฎŸ่ฃ…ใซใŠใ‘ใ‚‹่„†ๅผฑๆ€งCVE-2025-23221ใซๅฏพใ™ใ‚‹ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ๏ผˆ1.0.14ใ€1.1.11ใ€1.2.11ใ€1.3.4๏ผ‰ใ‚’ใƒชใƒชใƒผใ‚นใ„ใŸใ—ใพใ—ใŸใ€‚ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผๆง˜ใซใŠใ‹ใ‚Œใพใ—ใฆใฏใ€ใŠไฝฟใ„ใฎใƒใƒผใ‚ธใƒงใƒณใซๅฟœใ˜ใŸๆœ€ๆ–ฐ็‰ˆใธใฎ้€Ÿใ‚„ใ‹ใชใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ‚’ๆŽจๅฅจใ„ใŸใ—ใพใ™ใ€‚

่„†ๅผฑๆ€งใฎ่ฉณ็ดฐ

ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใซใ‚ˆใ‚Šใ€FedifyใฎlookupWebFinger()้–ขๆ•ฐใซใŠใ„ใฆไปฅไธ‹ใฎใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃไธŠใฎๅ•้กŒใŒ็™บ่ฆ‹ใ•ใ‚Œใพใ—ใŸ๏ผš

  • ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใซใ‚ˆใ‚‹ใ‚ตใƒผใƒ“ใ‚นๆ‹’ๅฆๆ”ปๆ’ƒ๏ผˆDoS๏ผ‰ใฎๅฏ่ƒฝๆ€ง
  • ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆฉ็”จใ—ใŸSSRF๏ผˆใ‚ตใƒผใƒใƒผใ‚ตใ‚คใƒ‰ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒ•ใ‚ฉใƒผใ‚ธใ‚งใƒช๏ผ‰ๆ”ปๆ’ƒใฎๅฏ่ƒฝๆ€ง
  • ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๆ“ไฝœใซใ‚ˆใ‚‹ๆ„ๅ›ณใ—ใชใ„URLใ‚นใ‚ญใƒผใƒ ใธใฎใ‚ขใ‚ฏใ‚ปใ‚นใฎๅฏ่ƒฝๆ€ง

ไฟฎๆญฃใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณ

  • 1.3.xใ‚ทใƒชใƒผใ‚บ๏ผš1.3.4ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.2.xใ‚ทใƒชใƒผใ‚บ๏ผš1.2.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.1.xใ‚ทใƒชใƒผใ‚บ๏ผš1.1.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.0.xใ‚ทใƒชใƒผใ‚บ๏ผš1.0.14ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ

ๅค‰ๆ›ดๅ†…ๅฎน

ๆœฌใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใฏใ€ไปฅไธ‹ใฎไฟฎๆญฃใŒๅฎŸๆ–ฝใ•ใ‚Œใพใ—ใŸ๏ผš

  1. ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใ‚’้˜ฒใใŸใ‚ใ€ๆœ€ๅคงใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๅ›žๆ•ฐ๏ผˆ5ๅ›ž๏ผ‰ใฎๅˆถ้™ใ‚’ๅฐŽๅ…ฅ
  2. ๅ…ƒใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใจๅŒใ˜ใ‚นใ‚ญใƒผใƒ ๏ผˆHTTP/HTTPS๏ผ‰ใฎใฟใซใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆถ้™
  3. SSRFใ‚’้˜ฒๆญขใ™ใ‚‹ใŸใ‚ใ€ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ใƒ–ใƒญใƒƒใ‚ฏ

ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ•

ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใงๆœ€ๆ–ฐใฎใ‚ปใ‚ญใƒฅใ‚ขใƒใƒผใ‚ธใƒงใƒณใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใใพใ™๏ผš

# npmใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
npm update @fedify/fedify

# Denoใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
deno add jsr:@fedify/fedify

ใ“ใฎ่„†ๅผฑๆ€งใ‚’่ฒฌไปปใ‚’ๆŒใฃใฆๅ ฑๅ‘Šใ—ใฆใ„ใŸใ ใ„ใŸใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใฎๆ–นใซๆ„Ÿ่ฌ็”ณใ—ไธŠใ’ใพใ™ใ€‚่ฟ…้€ŸใชๅฏพๅฟœใŒๅฏ่ƒฝใจใชใ‚Šใพใ—ใŸใ€‚

ๆœฌ่„†ๅผฑๆ€งใฎ่ฉณ็ดฐใซใคใ„ใฆใฏใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅ‹งๅ‘Šใ‚’ใ”ๅ‚็…งใใ ใ•ใ„ใ€‚


ใ”่ณชๅ•ใ‚„ใ”ๆ‡ธๅฟตใŒใ”ใ–ใ„ใพใ—ใŸใ‚‰ใ€GitHub Discussionsใ€Matrixใƒใƒฃใƒƒใƒˆใ‚นใƒšใƒผใ‚นใ€ใพใŸใฏDiscordใ‚ตใƒผใƒใƒผใพใงใŠๆฐ—่ปฝใซใ”้€ฃ็ตกใใ ใ•ใ„ใ€‚

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

FedifyใฎWebFingerๅฎŸ่ฃ…ใซใŠใ‘ใ‚‹่„†ๅผฑๆ€งCVE-2025-23221ใซๅฏพใ™ใ‚‹ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ๏ผˆ1.0.14ใ€1.1.11ใ€1.2.11ใ€1.3.4๏ผ‰ใ‚’ใƒชใƒชใƒผใ‚นใ„ใŸใ—ใพใ—ใŸใ€‚ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผๆง˜ใซใŠใ‹ใ‚Œใพใ—ใฆใฏใ€ใŠไฝฟใ„ใฎใƒใƒผใ‚ธใƒงใƒณใซๅฟœใ˜ใŸๆœ€ๆ–ฐ็‰ˆใธใฎ้€Ÿใ‚„ใ‹ใชใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ‚’ๆŽจๅฅจใ„ใŸใ—ใพใ™ใ€‚

่„†ๅผฑๆ€งใฎ่ฉณ็ดฐ

ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใซใ‚ˆใ‚Šใ€FedifyใฎlookupWebFinger()้–ขๆ•ฐใซใŠใ„ใฆไปฅไธ‹ใฎใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃไธŠใฎๅ•้กŒใŒ็™บ่ฆ‹ใ•ใ‚Œใพใ—ใŸ๏ผš

  • ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใซใ‚ˆใ‚‹ใ‚ตใƒผใƒ“ใ‚นๆ‹’ๅฆๆ”ปๆ’ƒ๏ผˆDoS๏ผ‰ใฎๅฏ่ƒฝๆ€ง
  • ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆฉ็”จใ—ใŸSSRF๏ผˆใ‚ตใƒผใƒใƒผใ‚ตใ‚คใƒ‰ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒ•ใ‚ฉใƒผใ‚ธใ‚งใƒช๏ผ‰ๆ”ปๆ’ƒใฎๅฏ่ƒฝๆ€ง
  • ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๆ“ไฝœใซใ‚ˆใ‚‹ๆ„ๅ›ณใ—ใชใ„URLใ‚นใ‚ญใƒผใƒ ใธใฎใ‚ขใ‚ฏใ‚ปใ‚นใฎๅฏ่ƒฝๆ€ง

ไฟฎๆญฃใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณ

  • 1.3.xใ‚ทใƒชใƒผใ‚บ๏ผš1.3.4ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.2.xใ‚ทใƒชใƒผใ‚บ๏ผš1.2.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.1.xใ‚ทใƒชใƒผใ‚บ๏ผš1.1.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.0.xใ‚ทใƒชใƒผใ‚บ๏ผš1.0.14ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ

ๅค‰ๆ›ดๅ†…ๅฎน

ๆœฌใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใฏใ€ไปฅไธ‹ใฎไฟฎๆญฃใŒๅฎŸๆ–ฝใ•ใ‚Œใพใ—ใŸ๏ผš

  1. ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใ‚’้˜ฒใใŸใ‚ใ€ๆœ€ๅคงใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๅ›žๆ•ฐ๏ผˆ5ๅ›ž๏ผ‰ใฎๅˆถ้™ใ‚’ๅฐŽๅ…ฅ
  2. ๅ…ƒใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใจๅŒใ˜ใ‚นใ‚ญใƒผใƒ ๏ผˆHTTP/HTTPS๏ผ‰ใฎใฟใซใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆถ้™
  3. SSRFใ‚’้˜ฒๆญขใ™ใ‚‹ใŸใ‚ใ€ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ใƒ–ใƒญใƒƒใ‚ฏ

ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ•

ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใงๆœ€ๆ–ฐใฎใ‚ปใ‚ญใƒฅใ‚ขใƒใƒผใ‚ธใƒงใƒณใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใใพใ™๏ผš

# npmใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
npm update @fedify/fedify

# Denoใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
deno add jsr:@fedify/fedify

ใ“ใฎ่„†ๅผฑๆ€งใ‚’่ฒฌไปปใ‚’ๆŒใฃใฆๅ ฑๅ‘Šใ—ใฆใ„ใŸใ ใ„ใŸใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใฎๆ–นใซๆ„Ÿ่ฌ็”ณใ—ไธŠใ’ใพใ™ใ€‚่ฟ…้€ŸใชๅฏพๅฟœใŒๅฏ่ƒฝใจใชใ‚Šใพใ—ใŸใ€‚

ๆœฌ่„†ๅผฑๆ€งใฎ่ฉณ็ดฐใซใคใ„ใฆใฏใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅ‹งๅ‘Šใ‚’ใ”ๅ‚็…งใใ ใ•ใ„ใ€‚


ใ”่ณชๅ•ใ‚„ใ”ๆ‡ธๅฟตใŒใ”ใ–ใ„ใพใ—ใŸใ‚‰ใ€GitHub Discussionsใ€Matrixใƒใƒฃใƒƒใƒˆใ‚นใƒšใƒผใ‚นใ€ใพใŸใฏDiscordใ‚ตใƒผใƒใƒผใพใงใŠๆฐ—่ปฝใซใ”้€ฃ็ตกใใ ใ•ใ„ใ€‚

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ตฌํ˜„์—์„œ ๋ฐœ๊ฒฌ๋œ ๋ณด์•ˆ ์ทจ์•ฝ์  CVE-2025-23221์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ(1.0.14, 1.1.11, 1.2.11, 1.3.4)๋ฅผ ๋ฐฐํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ป˜์„œ๋Š” ๊ฐ์ž ์‚ฌ์šฉ ์ค‘์ธ ๋ฒ„์ „์— ํ•ด๋‹นํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ฆ‰์‹œ ์—…๋ฐ์ดํŠธํ•˜์‹œ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ทจ์•ฝ์  ๋‚ด์šฉ

๋ณด์•ˆ ์—ฐ๊ตฌ์ž๊ฐ€ Fedify์˜ lookupWebFinger() ํ•จ์ˆ˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ๋ฌธ์ œ์ ๋“ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ๋ฌดํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฃจํ”„๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ ๊ฐ€๋Šฅ
  • ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ์˜ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ํ†ตํ•œ SSRF (์„œ๋ฒ„์ธก ์š”์ฒญ ์œ„์กฐ) ๊ณต๊ฒฉ ๊ฐ€๋Šฅ
  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์กฐ์ž‘์„ ํ†ตํ•œ ์˜๋„ํ•˜์ง€ ์•Š์€ URL ์Šคํ‚ด ์ ‘๊ทผ ๊ฐ€๋Šฅ

์ˆ˜์ •๋œ ๋ฒ„์ „

  • 1.3.x ์‹œ๋ฆฌ์ฆˆ: 1.3.4๋กœ ์—…๋ฐ์ดํŠธ
  • 1.2.x ์‹œ๋ฆฌ์ฆˆ: 1.2.11๋กœ ์—…๋ฐ์ดํŠธ
  • 1.1.x ์‹œ๋ฆฌ์ฆˆ: 1.1.11๋กœ ์—…๋ฐ์ดํŠธ
  • 1.0.x ์‹œ๋ฆฌ์ฆˆ: 1.0.14๋กœ ์—…๋ฐ์ดํŠธ

๋ณ€๊ฒฝ ์‚ฌํ•ญ

์ด๋ฒˆ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๋ฌดํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฃจํ”„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํšŸ์ˆ˜ ์ œํ•œ(5ํšŒ) ๋„์ž…
  2. ์›๋ž˜ ์š”์ฒญ๊ณผ ๋™์ผํ•œ ์Šคํ‚ด(HTTP/HTTPS)์œผ๋กœ๋งŒ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ—ˆ์šฉํ•˜๋„๋ก ์ œํ•œ
  3. SSRF ๊ณต๊ฒฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ์˜ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฐจ๋‹จ

์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•

๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์ตœ์‹  ๋ณด์•ˆ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# npm ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ
npm update @fedify/fedify

# Deno ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ
deno add jsr:@fedify/fedify

์ด ์ทจ์•ฝ์ ์„ ์ฑ…์ž„๊ฐ ์žˆ๊ฒŒ ๋ณด๊ณ ํ•ด ์ฃผ์‹  ๋ณด์•ˆ ์—ฐ๊ตฌ์ž๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋•๋ถ„์— ์‹ ์†ํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ถŒ๊ณ ๋ฌธ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.


๋ฌธ์˜ ์‚ฌํ•ญ์ด๋‚˜ ์šฐ๋ ค ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด GitHub Discussions๋‚˜ Matrix ์ฑ„ํŒ…๋ฐฉ, ๋˜๋Š” Discord ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์–ธ์ œ๋“  ์—ฐ๋ฝํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

FedifyใฎWebFingerๅฎŸ่ฃ…ใซใŠใ‘ใ‚‹่„†ๅผฑๆ€งCVE-2025-23221ใซๅฏพใ™ใ‚‹ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ๏ผˆ1.0.14ใ€1.1.11ใ€1.2.11ใ€1.3.4๏ผ‰ใ‚’ใƒชใƒชใƒผใ‚นใ„ใŸใ—ใพใ—ใŸใ€‚ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผๆง˜ใซใŠใ‹ใ‚Œใพใ—ใฆใฏใ€ใŠไฝฟใ„ใฎใƒใƒผใ‚ธใƒงใƒณใซๅฟœใ˜ใŸๆœ€ๆ–ฐ็‰ˆใธใฎ้€Ÿใ‚„ใ‹ใชใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ‚’ๆŽจๅฅจใ„ใŸใ—ใพใ™ใ€‚

่„†ๅผฑๆ€งใฎ่ฉณ็ดฐ

ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใซใ‚ˆใ‚Šใ€FedifyใฎlookupWebFinger()้–ขๆ•ฐใซใŠใ„ใฆไปฅไธ‹ใฎใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃไธŠใฎๅ•้กŒใŒ็™บ่ฆ‹ใ•ใ‚Œใพใ—ใŸ๏ผš

  • ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใซใ‚ˆใ‚‹ใ‚ตใƒผใƒ“ใ‚นๆ‹’ๅฆๆ”ปๆ’ƒ๏ผˆDoS๏ผ‰ใฎๅฏ่ƒฝๆ€ง
  • ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆฉ็”จใ—ใŸSSRF๏ผˆใ‚ตใƒผใƒใƒผใ‚ตใ‚คใƒ‰ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒ•ใ‚ฉใƒผใ‚ธใ‚งใƒช๏ผ‰ๆ”ปๆ’ƒใฎๅฏ่ƒฝๆ€ง
  • ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๆ“ไฝœใซใ‚ˆใ‚‹ๆ„ๅ›ณใ—ใชใ„URLใ‚นใ‚ญใƒผใƒ ใธใฎใ‚ขใ‚ฏใ‚ปใ‚นใฎๅฏ่ƒฝๆ€ง

ไฟฎๆญฃใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณ

  • 1.3.xใ‚ทใƒชใƒผใ‚บ๏ผš1.3.4ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.2.xใ‚ทใƒชใƒผใ‚บ๏ผš1.2.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.1.xใ‚ทใƒชใƒผใ‚บ๏ผš1.1.11ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ
  • 1.0.xใ‚ทใƒชใƒผใ‚บ๏ผš1.0.14ใธใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ

ๅค‰ๆ›ดๅ†…ๅฎน

ๆœฌใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใฏใ€ไปฅไธ‹ใฎไฟฎๆญฃใŒๅฎŸๆ–ฝใ•ใ‚Œใพใ—ใŸ๏ผš

  1. ็„ก้™ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใƒซใƒผใƒ—ใ‚’้˜ฒใใŸใ‚ใ€ๆœ€ๅคงใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆๅ›žๆ•ฐ๏ผˆ5ๅ›ž๏ผ‰ใฎๅˆถ้™ใ‚’ๅฐŽๅ…ฅ
  2. ๅ…ƒใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใจๅŒใ˜ใ‚นใ‚ญใƒผใƒ ๏ผˆHTTP/HTTPS๏ผ‰ใฎใฟใซใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ๅˆถ้™
  3. SSRFใ‚’้˜ฒๆญขใ™ใ‚‹ใŸใ‚ใ€ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ขใƒ‰ใƒฌใ‚นใธใฎใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ‚’ใƒ–ใƒญใƒƒใ‚ฏ

ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ•

ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใงๆœ€ๆ–ฐใฎใ‚ปใ‚ญใƒฅใ‚ขใƒใƒผใ‚ธใƒงใƒณใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใงใใพใ™๏ผš

# npmใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
npm update @fedify/fedify

# Denoใƒฆใƒผใ‚ถใƒผใฎๅ ดๅˆ
deno add jsr:@fedify/fedify

ใ“ใฎ่„†ๅผฑๆ€งใ‚’่ฒฌไปปใ‚’ๆŒใฃใฆๅ ฑๅ‘Šใ—ใฆใ„ใŸใ ใ„ใŸใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็ ”็ฉถ่€…ใฎๆ–นใซๆ„Ÿ่ฌ็”ณใ—ไธŠใ’ใพใ™ใ€‚่ฟ…้€ŸใชๅฏพๅฟœใŒๅฏ่ƒฝใจใชใ‚Šใพใ—ใŸใ€‚

ๆœฌ่„†ๅผฑๆ€งใฎ่ฉณ็ดฐใซใคใ„ใฆใฏใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅ‹งๅ‘Šใ‚’ใ”ๅ‚็…งใใ ใ•ใ„ใ€‚


ใ”่ณชๅ•ใ‚„ใ”ๆ‡ธๅฟตใŒใ”ใ–ใ„ใพใ—ใŸใ‚‰ใ€GitHub Discussionsใ€Matrixใƒใƒฃใƒƒใƒˆใ‚นใƒšใƒผใ‚นใ€ใพใŸใฏDiscordใ‚ตใƒผใƒใƒผใพใงใŠๆฐ—่ปฝใซใ”้€ฃ็ตกใใ ใ•ใ„ใ€‚

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ตฌํ˜„์—์„œ ๋ฐœ๊ฒฌ๋œ ๋ณด์•ˆ ์ทจ์•ฝ์  CVE-2025-23221์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ(1.0.14, 1.1.11, 1.2.11, 1.3.4)๋ฅผ ๋ฐฐํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ป˜์„œ๋Š” ๊ฐ์ž ์‚ฌ์šฉ ์ค‘์ธ ๋ฒ„์ „์— ํ•ด๋‹นํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ฆ‰์‹œ ์—…๋ฐ์ดํŠธํ•˜์‹œ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ทจ์•ฝ์  ๋‚ด์šฉ

๋ณด์•ˆ ์—ฐ๊ตฌ์ž๊ฐ€ Fedify์˜ lookupWebFinger() ํ•จ์ˆ˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ๋ฌธ์ œ์ ๋“ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ๋ฌดํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฃจํ”„๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ ๊ฐ€๋Šฅ
  • ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ์˜ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ํ†ตํ•œ SSRF (์„œ๋ฒ„์ธก ์š”์ฒญ ์œ„์กฐ) ๊ณต๊ฒฉ ๊ฐ€๋Šฅ
  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์กฐ์ž‘์„ ํ†ตํ•œ ์˜๋„ํ•˜์ง€ ์•Š์€ URL ์Šคํ‚ด ์ ‘๊ทผ ๊ฐ€๋Šฅ

์ˆ˜์ •๋œ ๋ฒ„์ „

  • 1.3.x ์‹œ๋ฆฌ์ฆˆ: 1.3.4๋กœ ์—…๋ฐ์ดํŠธ
  • 1.2.x ์‹œ๋ฆฌ์ฆˆ: 1.2.11๋กœ ์—…๋ฐ์ดํŠธ
  • 1.1.x ์‹œ๋ฆฌ์ฆˆ: 1.1.11๋กœ ์—…๋ฐ์ดํŠธ
  • 1.0.x ์‹œ๋ฆฌ์ฆˆ: 1.0.14๋กœ ์—…๋ฐ์ดํŠธ

๋ณ€๊ฒฝ ์‚ฌํ•ญ

์ด๋ฒˆ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๋ฌดํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฃจํ”„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํšŸ์ˆ˜ ์ œํ•œ(5ํšŒ) ๋„์ž…
  2. ์›๋ž˜ ์š”์ฒญ๊ณผ ๋™์ผํ•œ ์Šคํ‚ด(HTTP/HTTPS)์œผ๋กœ๋งŒ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ—ˆ์šฉํ•˜๋„๋ก ์ œํ•œ
  3. SSRF ๊ณต๊ฒฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ์˜ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฐจ๋‹จ

์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•

๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์ตœ์‹  ๋ณด์•ˆ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# npm ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ
npm update @fedify/fedify

# Deno ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ
deno add jsr:@fedify/fedify

์ด ์ทจ์•ฝ์ ์„ ์ฑ…์ž„๊ฐ ์žˆ๊ฒŒ ๋ณด๊ณ ํ•ด ์ฃผ์‹  ๋ณด์•ˆ ์—ฐ๊ตฌ์ž๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋•๋ถ„์— ์‹ ์†ํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ถŒ๊ณ ๋ฌธ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.


๋ฌธ์˜ ์‚ฌํ•ญ์ด๋‚˜ ์šฐ๋ ค ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด GitHub Discussions๋‚˜ Matrix ์ฑ„ํŒ…๋ฐฉ, ๋˜๋Š” Discord ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์–ธ์ œ๋“  ์—ฐ๋ฝํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We have released updates (1.0.14, 1.1.11, 1.2.11, 1.3.4) to address CVE-2025-23221, a in 's implementation. We recommend all users update to the latest version of their respective release series immediately.

The Vulnerability

A security researcher identified multiple security issues in Fedify's lookupWebFinger() function that could be exploited to:

  • Perform denial of service attacks through infinite redirect loops
  • Execute server-side request forgery () attacks via redirects to private network addresses
  • Access unintended URL schemes through redirect manipulation

Fixed Versions

  • 1.3.x series: Update to 1.3.4
  • 1.2.x series: Update to 1.2.11
  • 1.1.x series: Update to 1.1.11
  • 1.0.x series: Update to 1.0.14

Changes

The security updates implement the following fixes:

  1. Added a maximum redirect limit (5) to prevent infinite redirect loops
  2. Restricted redirects to only follow the same scheme as the original request (HTTP/HTTPS)
  3. Blocked redirects to private network addresses to prevent SSRF attacks

How to Update

To update to the latest secure version:

# For npm users
npm update @fedify/fedify

# For Deno users
deno add jsr:@fedify/fedify

We thank the security researcher who responsibly disclosed this vulnerability, allowing us to address these issues promptly.

For more details about this vulnerability, please refer to our security advisory.


If you have any questions or concerns, please don't hesitate to reach out through our GitHub Discussions, join our Matrix chat space, or our Discord server.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We have released updates (1.0.14, 1.1.11, 1.2.11, 1.3.4) to address CVE-2025-23221, a in 's implementation. We recommend all users update to the latest version of their respective release series immediately.

The Vulnerability

A security researcher identified multiple security issues in Fedify's lookupWebFinger() function that could be exploited to:

  • Perform denial of service attacks through infinite redirect loops
  • Execute server-side request forgery () attacks via redirects to private network addresses
  • Access unintended URL schemes through redirect manipulation

Fixed Versions

  • 1.3.x series: Update to 1.3.4
  • 1.2.x series: Update to 1.2.11
  • 1.1.x series: Update to 1.1.11
  • 1.0.x series: Update to 1.0.14

Changes

The security updates implement the following fixes:

  1. Added a maximum redirect limit (5) to prevent infinite redirect loops
  2. Restricted redirects to only follow the same scheme as the original request (HTTP/HTTPS)
  3. Blocked redirects to private network addresses to prevent SSRF attacks

How to Update

To update to the latest secure version:

# For npm users
npm update @fedify/fedify

# For Deno users
deno add jsr:@fedify/fedify

We thank the security researcher who responsibly disclosed this vulnerability, allowing us to address these issues promptly.

For more details about this vulnerability, please refer to our security advisory.


If you have any questions or concerns, please don't hesitate to reach out through our GitHub Discussions, join our Matrix chat space, or our Discord server.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

่‡ชๅˆ†ใ ใ‘ใฎActivityPubใ‚’ไฝœใ‚ŠใŸใ„ใ‘ใฉใ€ไฝ•ใ‹ใ‚‰ๅง‹ใ‚ใ‚Œใฐ่‰ฏใ„ใฎใ‹ๅˆ†ใ‹ใ‚‰ใชใ„ใงใ™ใ‹๏ผŸFedifyใฎๅ…ฌๅผใƒใƒฅใƒผใƒˆใƒชใ‚ขใƒซใ€Œ่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ใ‚’่ชญใ‚“ใงใฟใฆใใ ใ•ใ„๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

์ž์‹ ๋งŒ์˜ ๊ตฌํ˜„์„ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ์–ด๋””์„œ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋‚˜์š”? ๊ณต์‹ ํŠœํ† ๋ฆฌ์–ผ์ธ 〈๋‚˜๋งŒ์˜ ์—ฐํ•ฉ์šฐ์ฃผ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ〉๋ฅผ ์ฝ๊ณ  ๋”ฐ๋ผํ•ด ๋ณด์„ธ์š”!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Want to build your own implementation, but don't know where to start? Read and follow 's official tutorial, Creating your own federated microblog, and get started!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

่‡ชๅˆ†ใ ใ‘ใฎActivityPubใ‚’ไฝœใ‚ŠใŸใ„ใ‘ใฉใ€ไฝ•ใ‹ใ‚‰ๅง‹ใ‚ใ‚Œใฐ่‰ฏใ„ใฎใ‹ๅˆ†ใ‹ใ‚‰ใชใ„ใงใ™ใ‹๏ผŸFedifyใฎๅ…ฌๅผใƒใƒฅใƒผใƒˆใƒชใ‚ขใƒซใ€Œ่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ใ‚’่ชญใ‚“ใงใฟใฆใใ ใ•ใ„๏ผ

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

์ž์‹ ๋งŒ์˜ ๊ตฌํ˜„์„ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ์–ด๋””์„œ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋‚˜์š”? ๊ณต์‹ ํŠœํ† ๋ฆฌ์–ผ์ธ 〈๋‚˜๋งŒ์˜ ์—ฐํ•ฉ์šฐ์ฃผ ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ〉๋ฅผ ์ฝ๊ณ  ๋”ฐ๋ผํ•ด ๋ณด์„ธ์š”!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Want to build your own implementation, but don't know where to start? Read and follow 's official tutorial, Creating your own federated microblog, and get started!

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

็งใ‚‚ๅพฎๅŠ›ใชใŒใ‚‰ใ€ŽThinking Penguin Magazine Vol.0ใ€ใซใ€Œๅ›ฝๆผขๆ–‡ๆทท็”จไฝ“ใ‹ใ‚‰Holloใพใงใ€ใจใ„ใ†ๆ‹™็จฟใ‚’ๅฏ„็จฟใ—ใพใ—ใŸใ€‚่ˆˆๅ‘ณใฎๆœ‰ใ‚‹ๆ–นใฏใ€็ฌฌๅไธ€ๅ›žๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผšใงๆ‰‹ใซๅ…ฅใ‚Œใ‚‹ไบ‹ใŒๅ‡บๆฅใพใ™ใ€‚

https://msky.ospn.jp/notes/a35ankd6m2p80nev

Fediverse Linux Users Group's avatar
Fediverse Linux Users Group

@[email protected]

ใ€ๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผšใพใงใ‚ใจ๏ผ‘้€ฑ้–“โ€ผ๏ธใ€‘
ใฏๆฅ้€ฑใฎไปŠๆ—ฅใ€2025ๅนด1ๆœˆ25ๆ—ฅใซๆจชๆตœ็”ฃ่ฒฟใƒ›ใƒผใƒซ ใƒžใƒชใƒใƒชใ‚ขใง้–‹ๅ‚ฌใ•ใ‚Œใ‚‹็ฌฌ11ๅ›žๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผš๏ผˆ ๏ผ‰ใซๅ‡บๅฑ•ใ—ใพใ™ใ€‚
ๆ–ฐๅˆŠใจใ—ใฆใ€ŽThinkng Penguin Magazine vol.0ใ€ใ‚’้ ’ๅธƒใ—ใพใ™๏ผ๏ผˆ124ใƒšใƒผใ‚ธใƒป500ๅ††๏ผ‰
ๅง”่จ—ใจใ—ใฆ
@[email protected] ใ•ใ‚“ใฎใ€Žใ•ใฐใ‹ใ‚“ใƒฉใ‚คใƒ•๏ผใ€ใ‚‚้ ’ๅธƒใ„ใŸใ—ใพใ™๏ผ

็š†ใ•ใ‚“ใฎใŠ่ถŠใ—ใ‚’ๅฟƒๅพ…ใกใซใ—ใฆใ„ใพใ™๏ผ๏ผ๏ผ

่ฉณใ—ใใฏๆŠ€่ก“ๆ›ธๅšใฎๅ…ฌๅผใ‚ตใ‚คใƒˆใŠใ‚ˆใณใ€ใ‚ตใƒผใ‚ฏใƒซๆฆ‚่ฆใ‚’ใ”่ฆงใใ ใ•ใ„๏ผ
https://gishohaku.dev/gishohaku11/circles/LOmokXEikphsDCEG9OEb

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

็งใ‚‚ๅพฎๅŠ›ใชใŒใ‚‰ใ€ŽThinking Penguin Magazine Vol.0ใ€ใซใ€Œๅ›ฝๆผขๆ–‡ๆทท็”จไฝ“ใ‹ใ‚‰Holloใพใงใ€ใจใ„ใ†ๆ‹™็จฟใ‚’ๅฏ„็จฟใ—ใพใ—ใŸใ€‚่ˆˆๅ‘ณใฎๆœ‰ใ‚‹ๆ–นใฏใ€็ฌฌๅไธ€ๅ›žๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผšใงๆ‰‹ใซๅ…ฅใ‚Œใ‚‹ไบ‹ใŒๅ‡บๆฅใพใ™ใ€‚

https://msky.ospn.jp/notes/a35ankd6m2p80nev

Fediverse Linux Users Group's avatar
Fediverse Linux Users Group

@[email protected]

ใ€ๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผšใพใงใ‚ใจ๏ผ‘้€ฑ้–“โ€ผ๏ธใ€‘
ใฏๆฅ้€ฑใฎไปŠๆ—ฅใ€2025ๅนด1ๆœˆ25ๆ—ฅใซๆจชๆตœ็”ฃ่ฒฟใƒ›ใƒผใƒซ ใƒžใƒชใƒใƒชใ‚ขใง้–‹ๅ‚ฌใ•ใ‚Œใ‚‹็ฌฌ11ๅ›žๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผš๏ผˆ ๏ผ‰ใซๅ‡บๅฑ•ใ—ใพใ™ใ€‚
ๆ–ฐๅˆŠใจใ—ใฆใ€ŽThinkng Penguin Magazine vol.0ใ€ใ‚’้ ’ๅธƒใ—ใพใ™๏ผ๏ผˆ124ใƒšใƒผใ‚ธใƒป500ๅ††๏ผ‰
ๅง”่จ—ใจใ—ใฆ
@[email protected] ใ•ใ‚“ใฎใ€Žใ•ใฐใ‹ใ‚“ใƒฉใ‚คใƒ•๏ผใ€ใ‚‚้ ’ๅธƒใ„ใŸใ—ใพใ™๏ผ

็š†ใ•ใ‚“ใฎใŠ่ถŠใ—ใ‚’ๅฟƒๅพ…ใกใซใ—ใฆใ„ใพใ™๏ผ๏ผ๏ผ

่ฉณใ—ใใฏๆŠ€่ก“ๆ›ธๅšใฎๅ…ฌๅผใ‚ตใ‚คใƒˆใŠใ‚ˆใณใ€ใ‚ตใƒผใ‚ฏใƒซๆฆ‚่ฆใ‚’ใ”่ฆงใใ ใ•ใ„๏ผ
https://gishohaku.dev/gishohaku11/circles/LOmokXEikphsDCEG9OEb

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

็งใ‚‚ๅพฎๅŠ›ใชใŒใ‚‰ใ€ŽThinking Penguin Magazine Vol.0ใ€ใซใ€Œๅ›ฝๆผขๆ–‡ๆทท็”จไฝ“ใ‹ใ‚‰Holloใพใงใ€ใจใ„ใ†ๆ‹™็จฟใ‚’ๅฏ„็จฟใ—ใพใ—ใŸใ€‚่ˆˆๅ‘ณใฎๆœ‰ใ‚‹ๆ–นใฏใ€็ฌฌๅไธ€ๅ›žๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผšใงๆ‰‹ใซๅ…ฅใ‚Œใ‚‹ไบ‹ใŒๅ‡บๆฅใพใ™ใ€‚

https://msky.ospn.jp/notes/a35ankd6m2p80nev

Fediverse Linux Users Group's avatar
Fediverse Linux Users Group

@[email protected]

ใ€ๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผšใพใงใ‚ใจ๏ผ‘้€ฑ้–“โ€ผ๏ธใ€‘
ใฏๆฅ้€ฑใฎไปŠๆ—ฅใ€2025ๅนด1ๆœˆ25ๆ—ฅใซๆจชๆตœ็”ฃ่ฒฟใƒ›ใƒผใƒซ ใƒžใƒชใƒใƒชใ‚ขใง้–‹ๅ‚ฌใ•ใ‚Œใ‚‹็ฌฌ11ๅ›žๆŠ€่ก“ๆ›ธๅŒไบบ่ชŒๅš่ฆงไผš๏ผˆ ๏ผ‰ใซๅ‡บๅฑ•ใ—ใพใ™ใ€‚
ๆ–ฐๅˆŠใจใ—ใฆใ€ŽThinkng Penguin Magazine vol.0ใ€ใ‚’้ ’ๅธƒใ—ใพใ™๏ผ๏ผˆ124ใƒšใƒผใ‚ธใƒป500ๅ††๏ผ‰
ๅง”่จ—ใจใ—ใฆ
@[email protected] ใ•ใ‚“ใฎใ€Žใ•ใฐใ‹ใ‚“ใƒฉใ‚คใƒ•๏ผใ€ใ‚‚้ ’ๅธƒใ„ใŸใ—ใพใ™๏ผ

็š†ใ•ใ‚“ใฎใŠ่ถŠใ—ใ‚’ๅฟƒๅพ…ใกใซใ—ใฆใ„ใพใ™๏ผ๏ผ๏ผ

่ฉณใ—ใใฏๆŠ€่ก“ๆ›ธๅšใฎๅ…ฌๅผใ‚ตใ‚คใƒˆใŠใ‚ˆใณใ€ใ‚ตใƒผใ‚ฏใƒซๆฆ‚่ฆใ‚’ใ”่ฆงใใ ใ•ใ„๏ผ
https://gishohaku.dev/gishohaku11/circles/LOmokXEikphsDCEG9OEb

WetHat๐Ÿ’ฆ's avatar
WetHat๐Ÿ’ฆ

@[email protected]

Key Points:
โžก๏ธ BotKit enables the creation of standalone ActivityPub bots, free from platform constraints.
โžก๏ธ It is user-friendly and written in TypeScript, ensuring type safety.
โžก๏ธ BotKit is easy to deploy with minimal dependencies on various virtual servers.
โžก๏ธ Powered by , a robust framework.

botkit.fedify.dev/

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

One of 's long-term challenges is to get it to run on Cloudflare Workers as well.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

One of 's long-term challenges is to get it to run on Cloudflare Workers as well.

WetHat๐Ÿ’ฆ's avatar
WetHat๐Ÿ’ฆ

@[email protected]

Key Points:
โžก๏ธ BotKit enables the creation of standalone ActivityPub bots, free from platform constraints.
โžก๏ธ It is user-friendly and written in TypeScript, ensuring type safety.
โžก๏ธ BotKit is easy to deploy with minimal dependencies on various virtual servers.
โžก๏ธ Powered by , a robust framework.

botkit.fedify.dev/

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected] ยท Reply to FediChatBot's post

@FediChatBot The attached image is the logo for (@fedify), let us know what you think of it.

The logo for Fedify
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust foundation.

https://botkit.fedify.dev/

import {
  createBot,
  InProcessMessageQueue,
  MemoryKvStore,
  mention,
  text,
} from "@fedify/botkit";

// Create a bot instance:
const bot = createBot<void>({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the display name:
  name: "Greet Bot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  summary: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social")}.`,
  // Store data in memory (for development):
  kv: new MemoryKvStore(),
  // Use in-process message queue (for development):
  queue: new InProcessMessageQueue(),
});

// A bot can respond to a mention:
bot.onMention = async (session, message) => {
  await message.reply(text`Hi, ${message.actor}!`);
};

// Or, a bot also can actively publish a post:
const session = bot.getSession("https://mydomain/");
setInterval(async () => {
  await session.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected] ยท Reply to ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s post

Okay, I finished the groundwork of today. It's -only yet though. It's on GitHub!

Even though it's built on , its API looks completely different from Fedify's one. I intended to make it resembles more Discord/Telegram bot frameworks than Fedify. I think it's close to my intention.

https://github.com/dahlia/botkit

Julian Fietkau's avatar
Julian Fietkau

@[email protected]

The last "big" code thing I need to get done before the alpha test of my current @fedify project is the task queue - make sure routine data updates happen, consider individual importance and urgency, respect external API rate limits, etc.

But that's super intimidating so I'm currently procrastinating by making it a cute lil home page instead. ๐Ÿ™ƒ

Photo of a monitor showing some CSS code. The code hints at a website where images are animated and zoomed.
Julian Fietkau's avatar
Julian Fietkau

@[email protected]

The last "big" code thing I need to get done before the alpha test of my current @fedify project is the task queue - make sure routine data updates happen, consider individual importance and urgency, respect external API rate limits, etc.

But that's super intimidating so I'm currently procrastinating by making it a cute lil home page instead. ๐Ÿ™ƒ

Photo of a monitor showing some CSS code. The code hints at a website where images are animated and zoomed.
Julian Fietkau's avatar
Julian Fietkau

@[email protected]

The last "big" code thing I need to get done before the alpha test of my current @fedify project is the task queue - make sure routine data updates happen, consider individual importance and urgency, respect external API rate limits, etc.

But that's super intimidating so I'm currently procrastinating by making it a cute lil home page instead. ๐Ÿ™ƒ

Photo of a monitor showing some CSS code. The code hints at a website where images are animated and zoomed.
Alejandro Baez's avatar
Alejandro Baez

@[email protected]

Now that I got some fond memories of (read: Stockholm Syndrome), I sort of want to build stuff with . ๐Ÿ˜…

Though what I *really* want is an option like it for . Maybe a project for the new year. ๐Ÿค”

Not like we don't have , , , and as examples of what could be a standard library. ๐Ÿ˜„

fedify.dev/

Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

Hollo 0.4.0 released! is a single-user federated microblogging software which is -enabled and powered by .

The key changes of this release include:

  • Hollo is now powered by Node.js 23+ instead of Bun for more efficient memory usage.

  • Added an experimental feature flag TIMELINE_INBOXES to store all posts visible to your timeline in the database, rather than filtering them in real-time as they are displayed. This is useful for relatively larger instances with many incoming posts, but as of now it may have several bugs. It is expected to be the default behavior in the future after it is stabilized.

  • Now you can import and export your data from the administration dashboard in CSV format: follows, lists, accounts you muted, accounts you blocked, and bookmarks.

  • You can now make your profile discoverable.

  • The profile page now shows an account's cover image if it has one.

  • Many bug fixes.

For the details, see also the full changelog.

You can upgrade to Hollo 0.4.0 using the following ways:

Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

is currently testing .js instead of . (In fact, the hollo.social server is already running on Node.js!) If this test is successful, starting with the next release, Hollo will be powered by Node.js instead of Bun.

The main reason for switching to Node.js is to optimize memory usage. As you can see in the graph image below, Node.js uses significantly less memory than Bun. With this switch, Hollo is expected to be even more lightweight than before!

Are you interested in trying out the Node.js version of Hollo early? Try to pull ghcr.io/dahlia/hollo:0.4.0-dev.290!

Hollo's memory usage graph. When I was running on Bun, it used about 4GB of memory, but after switching to Node.js, it uses about 0.5GB of memory.
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I'm currently brainstorming a framework for creating fediverse bots called , based on . It's less flexible than Fedify, but the goal is to make it possible to create simple fediverse bots with much less code. What do you think?

import { createBot, mention, text } from "@fedify/botkit";
import { RedisKvStore } from "@fedify/redis";
import { Redis } from "ioredis";

// Create a bot instance:
const bot = createBot({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  bio: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social").}`,
  // Use Redis as a key-value store:
  kv: new RedisKvStore(new Redis()),
  // Use Redis as a message queue:
  queue: new RedisMessageQueue(() => new Redis()),
});

// A bot can respond to a mention:
bot.on(/hi|hello|what'?s\s+up/i, (ctx) => {
  return ctx.reply(text`Hi, ${ctx.actor}!`);
});

// Or, a bot also can actively publish a post:
setInterval(async () => {
  await bot.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I'm currently brainstorming a framework for creating fediverse bots called , based on . It's less flexible than Fedify, but the goal is to make it possible to create simple fediverse bots with much less code. What do you think?

import { createBot, mention, text } from "@fedify/botkit";
import { RedisKvStore } from "@fedify/redis";
import { Redis } from "ioredis";

// Create a bot instance:
const bot = createBot({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  bio: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social").}`,
  // Use Redis as a key-value store:
  kv: new RedisKvStore(new Redis()),
  // Use Redis as a message queue:
  queue: new RedisMessageQueue(() => new Redis()),
});

// A bot can respond to a mention:
bot.on(/hi|hello|what'?s\s+up/i, (ctx) => {
  return ctx.reply(text`Hi, ${ctx.actor}!`);
});

// Or, a bot also can actively publish a post:
setInterval(async () => {
  await bot.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected] ยท Reply to ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s post

I wrote a blog post to wrap up the year 2024: A year with the fediverse.

https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.en.html

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Looking for a side project to do over the holidays? Why not create your own server with ?

https://fedify.dev/tutorial/microblog

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I'd like to translate 's docs into multiple languages, at least into Korean and Japanese, which are languages I speak, but I'm not sure how useful it would be compared to the cost. Fedify's docs are already pretty extensive, so translating them would be difficult, plus the cost of updating them would be quite high. ๐Ÿค”

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Since 1.4.0, our next release, the fedify lookup command will have the -t/--traverse option! It takes a URL of the collection, and traverse its items from the beginning to the end. Here's a demo:

The demo session of the -t/--traverse option which will be introduced to the fedify lookup command since Fedify 1.4.0.
Chrisโ€‹โ€Œโ€‹โ€ฌ Hayesโ€Œโ€‹โ€‹โ€‹'s avatar
Chrisโ€‹โ€Œโ€‹โ€ฌ Hayesโ€Œโ€‹โ€‹โ€‹

@[email protected]

I made a thing. You can put a Mastodon post URL in the search box and it will show the post.

fediverse.hayes.software

I was learning and I wanted to make a minimal Next.js example of a "read-only" app that was for consuming the Fediverse and didn't mess with interactions. It started as a boilerplate to benefit other devs, but the act of making it forced me to learn a lot more about Fedify and ActivityPub.

A screenshot showing 2 browser windows, one in landscape format, one in portrait format, to represent desktop and mobile viewports. The design is very yellow and sepia-ish showing a toot and an image next to it. A lot of brush and marker strokes are incorporated into the design. Otherwise the design is minimal.
Chrisโ€‹โ€Œโ€‹โ€ฌ Hayesโ€Œโ€‹โ€‹โ€‹'s avatar
Chrisโ€‹โ€Œโ€‹โ€ฌ Hayesโ€Œโ€‹โ€‹โ€‹

@[email protected]

I was looking at the properties on the Person object implemented by , and wasn't expecting this one, haha!

I'm presuming this is related? The quirks of having to implement many different versions of a spec!

A screenshot of a code editor showing a TypeScript class Person with a property get cat(): boolean | null. The accompanying comment explains that the property is "used on actors to indicate that they in some way identify as a cat, expressed as a boolean value. If this property is set to true, displaying the actor or their notes will have some special effects attached in some clients."
Chrisโ€‹โ€Œโ€‹โ€ฌ Hayesโ€Œโ€‹โ€‹โ€‹'s avatar
Chrisโ€‹โ€Œโ€‹โ€ฌ Hayesโ€Œโ€‹โ€‹โ€‹

@[email protected]

- I'm learning ActivityPub for a larger project, but taking a moment to and code a minimal fediverse reader.

I found it tricky learning to make a read-only app with , so wanted to make this example Next.js project available. Got a little carried away with the design.

Mockup in , it's a better prototyping tool than one might expect.

Hopefully @tamami doesn't mind me using her nice post in my mockup :blobcatfingergun:.

A design mockup of a minimalistic "Fediverse Reader" app created in Inkscape, showcasing layouts for desktop and mobile screens. The designs include variations of a homepage and post view with text and images. The interface uses light yellow tones and emphasizes simplicity with modern, clean lines.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

The repository has reached 600 stars! Thank you everyone!

https://github.com/dahlia/fedify

The Fedify repository has reached 602 stars.
Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

Hollo 0.3.0 released! is a single-user federated microblogging software which is -enabled and powered by .

The key changes of this release include:

  • Thanks to @joschi, Hollo now support local filesystem storage for media files. You can configure DRIVE_DISK=fs and FS_ASSET_PATH to store media files in the local filesystem. For users who've used S3, no further action is requiredโ€”but, it's recommended to configure DRIVE_DISK=s3 as DRIVE_DISK will be required in the future releases.
  • Added support for Sentry. If you want to see error reports and instrumented traces in Sentry, please configure SENTRY_DSN.
  • Added pagination to the profile page.
  • Minor performance improvements and bug fixes due to upgrading Fedify to 1.3.0.

You can upgrade to Hollo 0.3.0 using the following ways:

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

1.3.0์ด ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„œํฌํŠธ๋“ค ๋น„๋กฏํ•ด ๋งŽ์€ ๊ฒƒ์ด ๋ฐ”๋€Œ์—ˆ์œผ๋‹ˆ, ์•„๋ž˜ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์—์„œ ์‚ดํŽด๋ณด์„ธ์š”!

velog.io/@hongminhee/fedify-1.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

The version 1.3.0 of , an server framework, released! The key changes include:

For details, see the full changelog as well!

Fedify 1.3.0 is available at JSR and npm.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

I would like to translate 's docs into Korean and Japanese, the languages I can speak, but the amount of the docs is quite much, so I can't even think of doing it. The maintenance costs for updating the docs also cannot be ignored. :blobcatnotlikethis:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

's @opentelemetry instrumentation works like a charm with @getsentry! :opentelemetry: :sentry:

A trace view on Sentry. Many spans are on the instrumentation timeline.A trace view on Sentry. Many spans are on the instrumentation timeline.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected] ยท Reply to Fedify: an ActivityPub server framework's post

:opentelemetry: @opentelemetry instruments are being added one by one to โ€ฆ!

Instrumented spans

Fedify automatically instruments the following operations with OpenTelemetry spans:

Operation	Span type	Description
Federation.fetch()	Server	Serves the incoming HTTP request.
lookupObject()	Client	Looks up the Activity Streams object.
lookupWebFinger()	Client	Looks up the WebFinger resource.
handleWebFinger()	Server	Handles the WebFinger request.

More operations will be instrumented in the future releases.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Though we have OpenTelemetry Semantic Conventions 1.28.0, it does not yet define attributes related to the fediverse. So is taking the initiative to define semantic attributes related to the ActivityPub protocol and its related protocols. If you have any ideas, please leave a comment!

https://gist.github.com/dahlia/7ad0f197a3a87072707996b2ee14a749

Semantic attributes for ActivityPub

The OpenTelemetry Semantic Conventions currently do not have a specification for ActivityPub.  However, Fedify provides a set of semantic attributes for ActivityPub.  The following table shows the semantic attributes for ActivityPub:

Attribute 	Type 	Description 	Examples
activitypub.activity.id 	string 	The IRI of the activity object. 	"https://example.com/activity/1"
activitypub.activity.type 	string[] 	The qualified IRI(s) of the activity type(s). 	["https://www.w3.org/ns/activitystreams#Create"]
activitypub.activity.to 	string[] 	The IRI(s) of the recipient collections/actors of the activity. 	["https://example.com/1/followers/2"]
activitypub.activity.cc 	string[] 	The IRI(s) of the carbon-copied recipient collections/actors of the activity. 	["https://www.w3.org/ns/activitystreams#Public"]
activitypub.activity.resend_count 	int 	The ordinal number of activity resending attempt (if and only if it's retried). 	3
activitypub.actor.id 	string 	The IRI of the actor object. 	"https://example.com/actor/1"
activitypub.actor.type 	string[] 	The qualified IRI(s) of the actor type(s). 	["https://www.w3.org/ns/activitystreams#Person"]
activitypub.object.id 	string 	The IRI of the object or the object enclosed by the activity. 	"https://example.com/object/1"
activitypub.object.type 	string[] 	The qualified IRI(s) of the object type(s). 	["https://www.w3.org/ns/activitystreams#Note"]
activitypub.object.in_reply_to 	string[] 	The IRI(s) of the orig
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

If you are using on , the minimum supported Deno version will be raised to 2.0.0 starting with Fedify 1.3.0.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Thanks to @robin_maki, integration support has been added to ! This feature will be included in Fedify 1.3.0.

https://unstable.fedify.dev/manual/integration#sveltekit

SvelteKit

This API is available since Fedify 1.3.0.

SvelteKit is a framework for building web applications with Svelte. Fedify has the @fedify/fedify/x/sveltekit module that provides a hook handler to integrate Fedify with SvelteKit. Put the following code in your hooks.server.ts file:

import { createFederation } from "@fedify/fedify";
import { fedifyHook } from "@fedify/fedify/x/sveltekit";

const federation = createFederation<string>({
  // Omitted for brevity; see the related section for details.
});

// This is the entry point to the Fedify hook from the SvelteKit framework:
export const handle = fedifyHook(federation, (req) => "context data");
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Did you know the CLI can help debug federation?

Learn about hidden features like:

โ€ข Smart object lookup with content negotiation
โ€ข Interactive inbox testing with a web UI
โ€ข NodeInfo visualization
โ€ข Local development tunneling
โ€ข And more!

dev.to/hongminhee/hidden-gems-

Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

The v0.2.3 has been released, which fixes a few bugs and brings to the latest version, v1.2.7. If you are using the Docker image, you can upgrade by using the ghcr.io/dahlia/hollo:0.2.3.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

๋‚ด์ผ ์„œ์šธ ์„œ์ดˆ๊ตฌ ์˜คํ”ˆ์—… ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ์—์„œ ์ด๋ค„์ง€๋Š” Open Contribution Jam 2024์— ๋ฉ”์ธํ…Œ์ด๋„ˆ(@hongminhee)๊ฐ€ ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. Fedify์— ๊ธฐ์—ฌํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„๋“ค์€ ์™€์ฃผ์‹œ๋ฉด ๋ฉ”์ธํ…Œ์ด๋„ˆ๊ฐ€ ์„ฑ์‹ฌ๊ป ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค! ์ž์„ธํ•œ ํ–‰์‚ฌ ์ •๋ณด๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

https://festa.io/events/6342

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We are going to add instrumentation support for to . What kind of spans or events would you like to be instrumented?

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Starting with 1.3.0, you'll be able to use different message queues for incoming and outgoing activities!

https://unstable.fedify.dev/manual/mq#using-different-message-queues-for-different-tasks

Using different message queues for different tasks

This API is available since Fedify 1.3.0.

In some cases, you may want to use different message queues for different tasks, such as using a faster-but-less-persistent queue for outgoing activities and a slower-but-more-persistent queue for incoming activities. To achieve this, you can pass FederationQueueOptions to the CreateFederationOptions.queue option.

For example, the following code shows how to use a PostgresMessageQueue for the inbox and a RedisMessageQueue for the outbox:

const federation = createFederation<void>({
  queue: {
    inbox: new PostgresMessageQueue(
      postgres("postgresql://user:pass@localhost/db")
    ),
    outbox: new RedisMessageQueue(() => new Redis()),
  },
  // ... other options
});

Or, you can provide a message queue for only the inbox or outbox by omitting the other:

const federation = createFederation<void>({
  queue: {
    inbox: new PostgresMessageQueue(
      postgres("postgresql://user:pass@localhost/db")
    ),
    // outbox is not provided; outgoing activities will not be queued
  },
  // ... other options
});
์—ผ์‚ฐํ•˜

@[email protected]

๋กœ ํŽ˜๋””๋ฒ„์Šค ํฌ์ŠคํŠธ๋“ค ๋ฐฑ์—…์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ.

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

Star History of , , and :

star-history.com/#dahlia/fedif

Star History of Fedify, Hollo, and LogTape.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Flyers for and to be used at an open source event in Japan!

https://mstdn.y-zu.org/@Yohei_Zuho/113440544215822210

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Have you heard of Val Town? Val Town is a kind of code pastebin + serverless function.

Actually, works just fine with Val Town. Here's a piece of ActivityPub software, implemented in about 170 lines of code, running on Val Town. Of course, it's built with Fedify!

Give it a follow @demo, and it will follow you back.

Curious to see how it was implemented? Check out the source code!

https://www.val.town/v/minhee/FedifyOnValTown

Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

We now have and 's official server! Join us now!

https://discord.gg/hGXXxUq2jK

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

We now have and 's official server! Join us now!

https://discord.gg/bhtwpzURwd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

10ๆœˆ26ๆ—ฅ๏ผˆๅœŸ๏ผ‰ใซ้–‹ๅ‚ฌใ•ใ‚Œใ‚‹OSC 2024 Tokyo/FallใซFedify/HolloๅˆๅŒใงๅ‡บๅฑ•ใ—ใพใ™๏ผๅฏๆ„›ใ„Fedifyใฎใƒญใ‚ดใฎใ‚ทใƒผใƒซใจใ€Ž่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ๆ—ฅๆœฌ่ชž็‰ˆใฎ็ด™ใฎๆœฌใ‚’ๆŒใฃใฆ่กŒใไบˆๅฎšใงใ™ใ€‚ใ‚ˆใ‚ใ—ใใŠ้ก˜ใ„ใ—ใพใ™ใ€‚

https://event.ospn.jp/osc2024-fall/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

In the next version of , the Article, ChatMessage, Note, and Question classes will have a quoteUrl property. This property corresponds to the following three JSON-LD properties all at once:

Available for preview in version 0.15.0-dev.384+6c39741b (JSR & npm).

ๆดช ๆฐ‘ๆ†™๏ผˆใƒ›ใƒณใƒปใƒŸใƒณใƒ’๏ผ‰'s avatar
ๆดช ๆฐ‘ๆ†™๏ผˆใƒ›ใƒณใƒปใƒŸใƒณใƒ’๏ผ‰

@[email protected]

ๆ—ฅๆœฌ่ชž็‰ˆFedifyใƒใƒฅใƒผใƒˆใƒชใ‚ขใƒซใ€Ž่‡ชๅˆ†ใ ใ‘ใฎใƒ•ใ‚งใƒ‡ใ‚ฃใƒใƒผใ‚นใฎใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚ใ†๏ผใ€ใ‚’Zennใงๅ…ฌ้–‹ใ—ใพใ—ใŸ๏ผActivityPubใฎๅฎŸ่ฃ…ใซ่ˆˆๅ‘ณใฎๆœ‰ใ‚‹ๆ–นใ€…ใฏๆ˜ฏ้žใ”่ฆงใใ ใ•ใ„๏ผ

zenn.dev/hongminhee/books/4a38

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Fedify is an server framework in & . It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.

The key features it provides currently are:

If you're curious, take a look at the website! There's comprehensive docs, a demo, a tutorial, example code, and more:

https://fedify.dev/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Hello, ! It's the official fedi account of the Fedify, an server framework!

ๆดช ๆฐ‘ๆ†™ (Hong Minhee)'s avatar
ๆดช ๆฐ‘ๆ†™ (Hong Minhee)

@[email protected]

If you'd like to support the development of or , you can sponsor me on GitHub!

github.com/sponsors/dahlia

Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

Introducing . Hollo is an -enabled single-user microblogging software. Although it's for a single user, it also supports creating and running multiple accounts for different topics.

It's headless, meaning you can use existing client apps instead, with its Mastodon-compatible APIs. It has most feature parity with Mastodon. Two big differences with Mastodon is that you can use in the content of your posts and you can quote another post.

Oh, and Hollo is built using and .

https://github.com/dahlia/hollo