MainSDK
Search⌘K
Interfaces

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.

Status
Category

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.

  • Stable Follows semantic versioning; breaking changes need a new major, 12 months of overlap and a codemod.
  • Beta Usable in production; may change before it becomes stable.
  • Experimental May change or go away; needs an explicit opt-in in main.yaml.
Stability levels
Badges show status and target milestone, for example Planned for 0.3. Each interface page also says the stability it ships at.

Identity and access8

Data8

AI and agents7

Messaging and notifications6

Events, jobs and webhooks3

Files, sharing and media6

Payments and plans4

Security and privacy15

ModerationmoderateTake 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+11

Platform, OS and network11

Network permissionsnetworkAllow 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+2

Reliability and operations6

Observability and analytics4

Developer experience8

↑↓ moveEnter openEsc close

Not decided yet