package isolation
package isolation
Definition
The package-isolation rule states that every external service the family depends on must be wrapped in a typed package, so swapping providers is a single package version bump rather than a per-site rewrite.
Expanded
Examples already in the family: @chirag127/firebase-init wraps
Firebase (swap for Supabase = swap the package); @chirag127/contact-form
wraps Web3Forms (swap for Formspree = swap the package). Planned:
@chirag127/email-send for Resend, @chirag127/ratelimit-recaptcha
for reCAPTCHA Enterprise, @chirag127/billing-razorpay for Razorpay.
The trigger: any new external service that crosses 3+ sites' boundary gets a package wrapping it on first introduction. This pairs with the service catalog's "swap cost" column — the rule's job is to keep that column "Low" or "Medium" forever.