Interfaces
86 interfaces, each one call shape with swappable drivers. All of them are free in your app. Nothing has shipped yet; each badge says where the work is.
86 interfaces
Status Status is where the work is: Planned (in a milestone, not started), Building (tickets in progress), Preview (usable, may change), then the stability it ships at. Stability The promise an interface ships with.
Stability levels
Identity and access8
authSign people in with GitHub, passkeys, company SSO or WhatsApp, and keep their sessions safe.Building for 0.3+3Connections to other servicesconnectionsLet a person connect Gmail, GitHub or Slack once, so an app agent can act for them within the scopes they agreed to.Building for 0.3+8Phone, email and identity checksverifyConfirm a phone number, an email address or a person's identity at the level a market requires, with no answer that tells who has an account.Building for 0.7+5TenantstenantGive every request a tenant and keep each customer's records, files, keys and logs apart, in the region they chose.Building for 0.3+1API keys for your customersapikeysIssue each customer API keys with scopes, rotation without downtime, instant revoke and a rate limit, and verify them on every call.Building for 0.3+2PermissionsaccessDecide who can do what to which record, with roles, attributes or relations on any engine.Building for 0.3+7Policy decisionspolicyDecide every sensitive call in process from policies kept in git, and explain each decision.Building for 0.2+2Context and shared contextcontextOne request context every interface reads, and consent-gated, first-party shared context (settings and progress) between peer apps of one owner on one machine.Building for 0.4+1Data8
dbRead and write records that are private to their owner, stored in the owner's region, with labelled fields.Building for 0.3+1CalendarscalendarStore events with recurrence and time zones, import and export iCalendar, and show free/busy without showing details.Building for 1.2+3Import files and pull dataimportsRead CSV, XLSX, JSON and NDJSON files, map their columns with a confirmed mapping, and pull from outside sources on a schedule.Building for 0.4+4Key-value store and cachekvKeep small values and counters under a key with an optional expiry, scoped to the tenant.Building for 0.3+1CachecacheMemoise any call with keys that always carry the tenant and region, and keep personal responses out of shared caches.Building for 0.4+2SearchsearchIndex records and search them with facets, highlighting and typo tolerance, filtered by tenant and access inside the query.Building for 0.4+2Feeds and timelinesfeedsFollows, blocks and mutes, home timelines that fan out on write and on read, and trending per region, with a feed that has an end.Building for 0.4+2Offline-first replicationsyncKeep a local copy of a person's rows on their device, work offline, and merge changes back to the server without losing edits.Building for 1.1+3AI and agents7
aiCall any model through one interface, with keys out of your code, limits per user and every call audited.Building for 0.3+4Actions and agent toolsactionWrite an action once and get an API endpoint, a server action, a CLI command and an MCP tool with the same checks.Preview+4App agentsagentsGive each agent your app runs an identity in the audit log, a budget, a person's approval for risky steps and a kill switch.Building for 0.3+1Agent memorymemoryLet app agents remember the people they serve, inside the tenant and the app, with untrusted recall, versions and forgetting you can prove.Building for 0.4+7Playbook advisoradvisorOptionally let a model read signals and norms and propose one of the app's declared playbooks with a reason a person approves; off by default.Building for 0.6+1Remote GPU and long jobscomputeRun GPU and long jobs on your own Modal, Replicate or RunPod account, or a local program, as workflows with progress, cancel, cost limits and results in files.Building for 0.6+4Ops serveropsLet a coding agent ask a running app how it is, what it has seen and what a playbook would do, through nine MCP tools on a user-only socket, with every change waiting for a person.Building for 0.4+1Messaging and notifications6
notifyReach a person on push, WhatsApp, SMS or email with one call that respects their preferences and quiet hours.Building for 0.3+10Engagement journeysengagementBring people back with reminder ladders that obey a weekly limit, quiet hours and a stop after ignored messages, with strict rules for children and no dark patterns.Building for 0.4+1EmailemailSend transactional and marketing email, with one-click unsubscribe and no tracking pixels by default.Building for 0.3+4Inbound mail and mailboxesmailReceive email through your mail provider's webhook, keep it in mailboxes with threads and attachments, and pull people's existing mailboxes over IMAP or JMAP.Building for 1.2+5Realtime updatesrealtimePush live updates from your server to browsers over server-sent events, checked per channel and tenant.Building for 0.3+3Feedback and supportfeedbackLet users report a problem or open a ticket, with the trace attached and screenshots redacted.Building for 0.6+2Events, jobs and webhooks3
webhooksSend signed webhooks with retries and verify incoming ones before your handler runs.Preview+2Durable workflowsworkflowsWrite a multi-step flow as one function that waits for days and resumes after a crash, with each finished step journaled and never run twice.Preview+4Events and background jobsjobsPublish events, fan small messages out to every instance, and run background jobs that retry, survive restarts and never run twice for the same key.Building for 0.3+4Files, sharing and media6
filesUpload files to your own bucket, Uploadthing, Vercel Blob or getqr.id, scanned and private to their owner, with short-lived links to read them.Building for 0.3+4Share links and QR codesshareShare any record, file or screen as a private, expiring getqr.id link and QR code, run offline QR placements, and get first-party open counts with consent; the only way an app hands out a link.Building for 0.3+2Invite, deep and sign-in linkslinksSend invite links, deep links that open the right screen on the web, Android and iOS, and sign-in links that hand off to auth, all minted by getqr.id through share.Building for 0.4+2Images, video and audiomediaResize images to AVIF and WebP and transcode video and audio to HLS as workflows, with output through files and metadata stripped by default.Building for 0.4+4PDF documentspdfRender PDFs from templates in the reader's language; the rendering half of documents.Preview+4Document readingdocumentsRead PDFs, Office files and scans into text, tables and layout, with OCR from the driver you pick and active content never run.Preview+4Payments and plans4
payTake payments and subscriptions on the provider's hosted checkout, routed by market, with no card data in your app.Building for 0.3+1Usage meteringmeterRecord what each tenant uses, idempotently and without slowing a request, read it back by window, and export it to pay for usage billing.Building for 0.3+3Plans and entitlementsentitlementsSay what each plan includes, check it in one line, and set a tenant's plan from its subscription.Building for 0.3+2App licensinglicenceSell your app with signed licence files that switch features on, verify offline against a pinned key, and keep serving through a grace period.Building for 0.4+3Security and privacy15
moderateTake reports, review them in a queue, decide and take appeals with a statement of reasons, and hold uploads until a pre-screen clears them.Building for 0.4+4SecretssecretsRead provider keys on the server from your secrets manager, never from code or the browser.Building for 0.2+5Encryption keyskeysEncrypt records with their own data keys, wrapped by a regional KMS key, with per-user keys for erasure.Building for 0.3+2CryptographycryptoEncrypt fields, sign and verify, hash passwords and make tokens with modern algorithms only.Building for 0.3+3End-to-end encryptione2eEncrypt messages and records on people's devices with keys only they hold, using MLS for groups, so the server can't read them.Building for 1.2+2Code sandboxessandboxRun untrusted or AI-written code in a sandbox with time, memory and cost limits, no secrets, and only the hosts you allow.Building for 0.4+2Rate limits and quotaslimitsRate-limit requests, enforce quotas and take locks from named policies, with standard 429 answers and a declared mode for when the store is down.Building for 0.3+2Protected filesprotectProtect a file so it opens only under its policy, at its release time, can be revoked in seconds and shows who opened it.Building for 0.4+4Privacy and data rightsprivacyExport or erase a person's data across every driver with one call, and record their consent.Building for 0.3+1Security eventssecurityWrite security events in OCSF with ATT&CK tags, detect brute force, stuffing and probing in the app, and stream them to your own SIEM.Building for 0.3+1Incident controlsincidentSwitch off one action, route, interface, driver or agent, put the app in read-only mode, or sign everyone out, in seconds and without a deploy.Building for 0.4+1Exfiltration guard and canariescanaryStop a stolen secret or a bulk copy of personal data leaving your app, and plant records and keys that raise an alarm when an intruder touches them.Building for 0.4+1Dependency checksdepsCatch made-up, brand-new and look-alike packages, known advisories, denied licences and unreviewed install scripts in your dependencies when you run mainsdk check, offline-friendly and never in the app.Building for 0.5+2Bot defencebotsScore the sign-in, sign-up, reset and invite doors in process, challenge or refuse bots with a proof-of-work, and stop SMS and WhatsApp pumping before a message is paid for.Building for 0.3+4Connectors to GRC, privacy, vulnerability and ticket toolsconnectorsPush assure evidence to your GRC tool, run privacy requests from Transcend or OneTrust, send SBOM and VEX to your vulnerability tool, and open one ticket per failure.Building for 1.2+11Platform, OS and network11
networkAllow outbound calls only to the hosts you and your drivers declare, and block everything else.Building for 0.3+1Local filesdiskRead and write only the folders your server app declares; user uploads go through files, not here.Building for 0.3+1Server facts and programssystemRead the facts about the server and run the programs you declare, with every URL they are given checked against the network list.Building for 0.3+1TCP, UDP and unix socketsnetOpen TCP connections, run TCP servers, send UDP datagrams and use unix domain sockets, each checked against the protocols, ports and directions main.yaml declares.Building for 0.4+1Worker threads and clusterworkersRun CPU-heavy work on a pool of worker threads or processes, and run one server instance per core, declared in main.yaml and carrying the tenant.Building for 0.4+1Languages and formatsi18nTranslate messages and format money, dates and numbers for each locale, with right-to-left and Indian scripts.Preview+4LocationgeoGet a coarse location hint from the declared platform's headers and geocode addresses through network, never for access decisions.Building for 0.7+2App updates and version blockingupdatesTell users an update is ready, block old versions on the server as well as in the app, and roll releases out by percentage and market.Building for 0.7+1Neighbour appsneighboursLet MainSDK apps on one machine hear each other's signals on user-only sockets and, between declared peers, ask for status, a raised posture or shed load, and nothing else.Building for 0.4+1App registry and linkappsSee every MainSDK app on a machine from one local folder, and let two apps that declare each other prove who they are and call each other's exposed actions.Building for 0.4+1Connected devicesdeviceOptional plumbing for any fleet of devices or agents your app manages - enrolment, device identity and attestation, signed telemetry, policy sync, approved commands and health - with nothing loaded until you declare it.Building for 1.3+2Reliability and operations6
backupDeclare how much data you can lose and how fast you must restore, and prove it with timed restore drills.Building for 1.2+4Deploy config and serverless schedulesdeployWrite the platform's own deploy files from main.yaml for Vercel, Cloudflare Workers, Fly.io and Docker, wake schedules through one tick route, check the build before it ships and diff two environments.Building for 0.4+2Health, resources and status pagestatusServe health probes, drain cleanly on shutdown, track SLO burn, watch CPU, event-loop delay and memory. An app status page with incidents is planned for phase 2 and not built yet.Building for 0.4+2AlertsalertsRoute SLO burn, downed dependencies, security detections and your own alerts to email, Slack, PagerDuty, Opsgenie or a webhook, once.Building for 0.4+1SignalssignalsSay what the app noticed (an attack, CPU pressure, a downed dependency, a rotated key, an anomaly) as one typed, signed, short-lived signal that the app, its other instances and its neighbour apps hear.Building for 0.4+1PlaybooksplaybooksDeclare in main.yaml what the app does when a signal arrives, with dry-run, approval, an audit trail and automatic rollback; every step only tightens and expires.Building for 0.4+1Observability and analytics4
logLog with redaction built in, keep a tamper-evident audit log and export telemetry to any OpenTelemetry backend.Building for 0.2+3Observe the SDKobserveSubscribe to every decision and side effect the SDK makes on node:diagnostics_channel, with a bounded queue, redacted payloads and no cost when nobody listens.Building for 0.3+1Product analyticsanalyticsTrack product events, metrics and usage, private by default, with nothing recorded before consent where it is required.Building for 0.3+1Behaviour normsnormsLearn what normal looks like for the app (traffic, errors, latency, CPU, loop delay, memory) by hour of week, deterministically and with no model, and emit an anomaly signal when it leaves the range.Building for 0.4+1Developer experience8
configChange typed runtime settings without a deploy, with every change audited.Building for 0.2+2Schema and parsersschemaDescribe app data once with s, get a strict check, a type and a JSON Schema, and turn raw text into checked values without a model.Building for 0.2+1Feature flagsflagsTurn features on for some users, a market or a share of users, and change them while the app runs.Preview+2Typed API and OpenAPI documentapiTurn the app's actions into REST routes, one OpenAPI document and a typed client, with idempotent writes and breaking changes caught before release.Building for 0.3+1Testing kittestingTest against in-memory fakes of every interface, control time and inject provider outages.Building for 0.4+1Framework adaptersadaptersOne import wires MainSDK into Next.js, Hono or Express, with a request context, a trace, ordered hooks and problem-detail errors.Building for 0.2+3UpgradesupgradeMove every MainSDK package to a new release together with one command that applies the release's codemods and main.yaml moves and opens a pull request, and learn when a security release is out.Building for 0.5+2Adopt an existing appadoptBring an existing Next.js or Node app, including one from Lovable, Bolt or v0, onto MainSDK one module and one pull request at a time, with its behaviour locked first and its coding agent driving the steps.Building for 0.5+1No interface matches. Clear a filter to see more.