Skip to content

Deprecate @fedify/fedify/x/* modules and extract them into separate packages #375

@dahlia

Description

@dahlia

Summary

We're hitting a wall with the current @fedify/fedify/x/* modules living inside @fedify/fedify. These integrations are starting to affect the package's portability across different platforms and registries. The whole situation reminds me of what happened with issue #271—we can't properly depend on framework-specific types without creating unnecessary dependencies for users who don't need those integrations. Time to bite the bullet and split these out into their own packages.

Affected Area

All modules under @fedify/fedify/x/* including framework integrations like SvelteKit, Hono, and any other adapters currently residing there. This impacts both the main package structure and how users import these integrations.

Reason / Context

The @fedify/fedify/x/* modules were convenient when Fedify was smaller, but they're becoming a maintenance headache. As we saw in #271, we can't add proper type dependencies for frameworks like SvelteKit without forcing all users to install those frameworks—JSR doesn't support devDependencies, and we need to maintain compatibility across npm, JSR, and Deno. Plus, having all these integrations bundled together bloats the main package for users who only need core functionality.

Moving forward, each integration should live in its own package (@fedify/sveltekit, @fedify/hono, etc.) where it can properly declare its dependencies without affecting the core library. We'll deprecate the current x/* exports in favor of these new packages, with complete removal planned for Fedify 2.0.

Checklist

  1. Create separate packages for each @fedify/fedify/x/* module (@fedify/sveltekit, @fedify/hono, etc.)
  2. Move existing code from @fedify/fedify/x/* to the new packages with proper dependencies
  3. Add deprecation warnings to all @fedify/fedify/x/* module exports in @fedify/fedify
  4. Update documentation to point users to the new packages
  5. Maintain backward compatibility through re-exports until 2.0
  6. Plan migration guide for users moving from @fedify/fedify/x/* imports to new packages
  7. Remove @fedify/fedify/x/* modules completely in Fedify 2.0

Sub-issues

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions