Docs How-to guides What MainSDK covers What MainSDK covers A map from the needs of a modern app to the MainSDK interfaces, drivers and status that cover them, plus what MainSDK leaves out on purpose.
Use this page to find which interface covers a need, which drivers sit behind it and how far along it is. It is built from the interface catalog, so every row names a real interface and its real drivers. Where a need has no catalog row yet, the row says so.
Identity and sign-in
Need Interface Drivers Status Notes Sign-in with passkeys, social, company SSO or WhatsApp codes, and safe sessions authgithub, clerk, auth0, better-auth, workos, supabase, localPlanned for 0.3 Passkeys by default. SAML, OIDC and SCIM are in the same interface. Native passkeys are planned for a later milestone . Confirm a phone, an email or an identity verifybird, twilio-verify, digilocker, onfido, personaPlanned (milestone )No spec yet. Wallet sign-in auth with a wallet methodWallet driver Planned for 0.7 Spec web3-ready. The catalog has no wallet driver yet. See Wallets and agent payments .
Access and policy
Need Interface Drivers Status Notes Decide who can do what to which record accesscedar, opa, openfga, spicedb, cerbos, permit, oso, avpPlanned for 0.3 Deny by default. Lists are filtered in the database. Decide sensitive calls in process from policies in git policycedar, opaPlanned for 0.2 Observe, warn and enforce modes.
Data
Need Interface Drivers Status Notes Private records, stored in the owner's region dbpostgres, neon, supabase, sqlitePlanned for 0.3 sqlite is for local use only. Prisma and Drizzle work through adapters.Small values and cached results with an expiry kvupstash, redis, vercel-runtime-cache, cloudflare-kvPlanned (milestone )No spec yet. Search and vector search searchtypesense, meilisearch, algolia, pgvectorPlanned (milestone )No spec yet. Results are limited to the person searching. Runtime settings without a deploy configfiles, vercel-global-config, aws-appconfig, cloudflare-kvPlanned for 0.2 Typed against a schema.
Files and uploads
Need Interface Drivers Status Notes Upload files, private to their owner and scanned filesgetqr, s3, uploadthing, vercel-blob, localPlanned for 0.3 s3 also covers R2, MinIO and B2. See Upload files .Private, expiring share links and QR codes sharegetqrPlanned for 0.3 Always getqr.id (ADR-0009). Links that open the right screen on web, Android and iOS linksgetqrPlanned (milestone )No spec yet. Resize images, transcode video mediagetqr, cloudinary, muxPlanned (milestone )No spec yet. Render and sign PDFs pdfbuiltin, docraptor, documensoPlanned (milestone )No spec yet. Protected files that can be revoked protecttaps-node, taps-hosted, sovedocsPlanned for 1.6 Stability experimental.
Payments
Need Interface Drivers Status Notes Cards and subscriptions on a hosted checkout paystripe, razorpay, paddle, localPlanned for 0.3 No card data in your app. Routed by market. UPI in India payrazorpayPlanned for 0.3 payments: { driver: razorpay, methods: [upi, cards] } in the India overlay.Agent payments inside an agent budget pay with an agent-payment driverDriver Planned for 0.7 Spec web3-ready. Not yet a catalog call. Usage metering meterstripe-meters, lagoPlanned (milestone )No spec yet.
Email, notifications and WhatsApp
Need Interface Drivers Status Notes Transactional and marketing email emailresend, ses, local, postmark, bird, smtpPlanned for 0.3 One-click unsubscribe, no tracking pixels by default. Push, WhatsApp, SMS and email with preferences notifywhatsapp-cloud, bird, msg91, twilio, local, fcm, apns, expo, resend, ses, onesignalPlanned for 0.3 WhatsApp only with recorded consent and approved templates. Push through FCM, APNs and Expo is planned for milestone 1.1.
Realtime
Need Interface Drivers Status Notes Live updates to connected clients realtimepusher, ably, supabase-realtimePlanned (milestone )No spec yet. Collaboration and presence come later .
AI and LLMs
Need Interface Drivers Status Notes Call a model with keys out of code, spend limits per user and an audit aibedrock, anthropic, openai, gateway, localPlanned for 0.3 Streaming, typed output, spend limits and the prompt-injection check are in the spec. Embeddings aiSame drivers Planned for 0.3 ai.embed().Tools a model may call actionmcp, http, server-action, cliPlanned for 0.3 ai.tool() only takes actions declared with action().Budgets, approvals and a kill switch for app agents Spec agent-governance None Planned for 0.3 A main.yaml key, not an interface in the catalog. See Agents with an identity, a budget and approvals .
MCP server and client
Need Interface Drivers Status Notes Expose actions as MCP tools actionmcp, http, server-action, cliPlanned for 0.3 OAuth 2.1 on the endpoint, signed tool descriptions, a person's yes for destructive actions. Call other MCP servers from your app Spec mcp-client None Planned for 0.3 mcp.client(name), stability experimental. No catalog row yet.
Background jobs, workflows and webhooks
Need Interface Drivers Status Notes Events and background jobs that retry and never run twice jobsinngest, vercel-queues, local, trigger-dev, sqsPlanned for 0.3 trigger-dev and sqs are deferred to the driver kit. Multi-step workflows as a separate interface are not in the catalog.Send and receive signed webhooks webhooksbuiltin, svixPlanned for 0.3 Replays older than 5 minutes are refused.
Feature flags, analytics and i18n
Need Interface Drivers Status Notes Feature flags per user or market flagsopenfeature, posthog, vercel-flagsPlanned (milestone )No spec yet. Targeting stays in your tool. Product analytics with consent analyticsposthog, plausible, google-analytics, segment, mainsdkPlanned (milestone )No spec yet. Active users by country and version analytics (analytics.query)builtinPlanned for 0.3 (spec analytics) Folded into analytics (ADR-0031). Translation and locale formats i18nfiles, tolgee, crowdin, lokalise, ai-draftPlanned (milestone )No spec yet. See Languages and formats . Coarse location hint geoplatform-headers, mapbox, google-mapsPlanned (milestone )Never used for access. Update prompts and version blocking updatesexpo-updates, app-store, google-play, tauriPlanned (milestone )No spec yet. Feedback and support tickets feedbackbuiltin, intercom, zendesk, plainPlanned (milestone )No spec yet.
Observability and audit
Need Interface Drivers Status Notes Logs with redaction, a tamper-evident audit log, OpenTelemetry export logterminal, otel, mainsdkPlanned for 0.2 Nothing goes to MainSDK Cloud without login and opt-in. Health checks and a status page statusbuiltin, providerPlanned (milestone )No spec yet. Backups and timed restore drills backupneon-pitr, supabase-pitr, pgbackrest, aws-backup, object-lockPlanned for 1.2 The provider runs backups, not MainSDK.
Secrets, keys and security
Need Interface Drivers Status Notes Provider keys from your secrets manager, never from code secretsvault, aws-secrets-manager, gcp-secret-manager, azure-key-vault, doppler, infisical, env, localPlanned for 0.2 A key in code fails the check. Encryption keys, per-user keys and crypto-erasure keysaws-kms, gcp-kms, azure-keyvault, vault-transit, localPlanned for 0.3 Chain signing profiles are spec web3-ready, planned for 0.7. Encrypt fields, sign, hash passwords cryptocloud-kms, vault-transit, libsodiumPlanned (milestone )No spec yet. Allow outbound calls only to declared hosts networkbuiltinPlanned for 0.3 Deny by default. Rate limits, locks and quotas limitsbuiltin, upstash, arcjetPlanned (milestone )No spec yet.
Privacy and erasure
Need Interface Drivers Status Notes Export or erase a person's data, record consent privacybuiltinPlanned for 0.3 Erasure is confirmed by every driver, with a signed record.
Testing
Need Interface Drivers Status Notes Test against fakes of every interface, control time, inject outages testingfakesPlanned for 0.4 createTestApp() from @mainsdk/testing. See Testing .
Deploy on Vercel
MainSDK is a library, not a host, so there is no deploy interface. Vercel is covered by guidance and by drivers: vercel-queues for jobs, vercel-global-config for config, vercel-runtime-cache for kv, vercel-flags for flags and vercel-blob for files. See Deploy on Vercel .
Mobile (Expo)
Need Interface Drivers Status Notes An Expo app with sign-in, consent and push Spec expo-adapter expo, fcm, apns (for notify), expo-updates (for updates)Planned for 1.1 Imports from mainsdk/expo. An adapter, not an interface.
Web3
Need Interface Drivers Status Notes Wallet sign-in, token gates, chain signing keys, agent payments Spec web3-ready across auth, access, keys and pay Chain and wallet drivers Planned for 0.7 Stability experimental. No Web3 interface in the catalog. Chains are drivers (ADR-0011). See Wallets and agent payments .
Not covered, by design
Hosting. MainSDK runs inside your app. You deploy on Vercel or anywhere else.
UI components. MainSDK ships no design system. The only components are <Upload/>, <ShareBar/> and <QRCode/> from @getqr/react.
ORM design. db enforces owner scope, labels and regions. You keep Prisma or Drizzle through adapters; MainSDK does not replace them.
A CMS. There is no content-management interface.
Chain RPC, indexing and contract tooling. Use your own library through raw() (ADR-0011).
Custody and token issuance. MainSDK never holds funds or private keys and never issues tokens.
Running your backups. The provider does that; backup only declares and proves it.
Covered by escape hatch
When a need falls outside an interface, raw() returns the provider's own client: auth.raw(), db.raw(), files.raw(), pay.raw(), email.raw(), ai.raw() and access.raw(). Every use is logged and listed by mainsdk check, so you always know where your app depends on one provider.
Next
Open questions 23 values are not decided yet
Previous How-to guidesNext Recipes by app type