One line, every framework.
SvelteKit, Astro, SolidStart, Qwik, Nuxt, Next.js, Hono. Framework adapters make sign-in integration a one-liner. Standard sign-in endpoints, webhook events, and AI-agent delegation.
Live in 3 minutes.
Install the SDK, create the Auth object, wire the routes. Done in 3 steps on one framework.
Install SDK
bun add @modfolio/connect-sdk@^7.0.0
Configure Auth
import { createSvelteKitAuth } from "@modfolio/connect-sdk/sveltekit";
export const auth = createSvelteKitAuth({ clientId: "my-app" });
export const handle = auth.handle;Wire routes
// src/routes/auth/login/+server.ts export const GET = auth.loginHandler; // src/routes/auth/callback/+server.ts export const GET = auth.callbackHandler; // src/routes/auth/logout/+server.ts export const GET = auth.logoutHandler;
7 adapters, same API.
Adapters tailored to each framework's middleware pattern. All share the same ConnectAuth interface, the same handler pattern.
SvelteKit
auth.tsimport { createSvelteKitAuth } from "@modfolio/connect-sdk/sveltekit";
export const auth = createSvelteKitAuth({ clientId: "my-app" });
export const handle = auth.handle;Astro
auth.tsimport { createAstroAuth } from "@modfolio/connect-sdk/astro";
export const auth = createAstroAuth({ clientId: "my-app" });
export const onRequest = auth.middleware;Nuxt
auth.tsimport { createNuxtAuth } from "@modfolio/connect-sdk/nuxt";
export const auth = createNuxtAuth({ clientId: "my-app" });
export default auth.eventHandler;SolidStart
auth.tsimport { createSolidStartAuth } from "@modfolio/connect-sdk/solidstart";
export const auth = createSolidStartAuth({ clientId: "my-app" });
export const middleware = auth.middleware;Qwik
auth.tsimport { createQwikAuth } from "@modfolio/connect-sdk/qwik";
export const auth = createQwikAuth({ clientId: "my-app" });
export const onRequest = auth.onRequest;Next.js
auth.tsimport { createNextAuth } from "@modfolio/connect-sdk/nextjs";
export const auth = createNextAuth({ clientId: "my-app" });
export const middleware = auth.middleware;Hono
auth.tsimport { createHonoAuth } from "@modfolio/connect-sdk/hono";
export const auth = createHonoAuth({ clientId: "my-app" });
app.use("/*", auth.middleware);13 endpoints, four groups.
OIDC Core, Discovery, FedCM, SCIM. Each endpoint maps to a published standard (RFC).
OIDC Core
| GET | /sso/authorize | Authorization (prompt=none/login/consent) |
| POST | /sso/token | Code/Refresh/Credentials → JWT |
| POST | /sso/par | Pushed Authorization Request |
| POST | /sso/verify | JWT signature verification (DPoP supported) |
| POST | /sso/introspect | Token introspection |
| POST | /sso/revoke | Token revocation |
Discovery
| GET | /.well-known/openid-configuration | OIDC Discovery |
| GET | /.well-known/ssf-configuration | SSF Transmitter |
| GET | /.well-known/web-identity | FedCM Provider |
FedCM
| GET | /fedcm/accounts | FedCM accounts list |
| POST | /fedcm/token | FedCM token issuance |
SCIM
| GET | /scim/v2/Users | User provisioning |
| GET | /scim/v2/Groups | Group sync |
Webhook events, eight categories.
Propagate every activity in real time with webhooks and real-time security signals (SSF). Each event has a defined, typed shape, so the SDK handles it directly.
login.success, login.failure, login.social, logouttoken.issued, token.refreshed, token.revokeduser.created, user.updated, user.lockedorg.created, org.member_added, org.invitation_sentsecurity.mfa_enabled, security.risk_detectedadmin.client_created, admin.policy_updatedscim.user_provisioned, scim.group_updatedsystem.key_rotated, system.cleanupFrequently asked questions.
For further questions, use GitHub Issues or sdk@modfolio.io.
Which frameworks do you support?
We provide adapters for SvelteKit, Astro, SolidStart, Qwik, Nuxt, Next.js, and Hono.
Where is authentication data stored?
It is stored in Modfolio's own PostgreSQL database, which Cloudflare Workers reach over an authenticated private tunnel. It is backed up every day.
Can I migrate existing users?
You can sync with an existing directory through automatic employee-account provisioning (SCIM 2.0), or do a bulk import through the Better Auth sign-up API.
Can I start for free?
Yes — the standard sign-in features you use by signing up directly are free. Enterprise compliance, an SLA, and a data processing agreement (DPA) are arranged separately.
Install now.
bun add @modfolio/connect-sdk — 5 minutes is all it takes.