Public roadmap
What's shipping, what's next
Honest plan, not promises. Updated whenever the order shifts, including the "considered but not committed" stuff at the bottom.
Status legend
Shipped In progress Planned ConsideredShipping now
Live and live-updated
What's already in production today.
-
Public launch
ShippedPaperkey is live. Managed API on paperkey.dev, dashboard, SDK, MCP server. Free tier open to anyone. May 2026.
-
Self-host edition (MIT)
ShippedFull monorepo on github.com/paperkeyhq/paperkey. MIT-licensed, single Docker compose, zero telemetry. Same SDK and API as the managed version. See /self-host.
-
TypeScript SDK
Shipped@paperkeyhq/sdk on npm. Validate, activate, deactivate. MIT-licensed and audit-friendly.
-
MCP server for Claude / Cursor
ShippedDrop @paperkeyhq/mcp into your AI client and drive Paperkey from natural language. Stdio transport, dashboard JWT auth.
-
HMAC-signed webhooks
ShippedSix events for license + activation lifecycle. SHA-256 signing, 5-second timeout, auto-pause after 10 consecutive failures.
-
llms-full.txt for AI agents
ShippedAuto-generated integration spec the LLM reads to wire Paperkey end-to-end. Cursor, Claude Desktop, n8n flows pick it up automatically.
-
Activation fingerprinting + 72 h offline grace
ShippedBind a license to a device fingerprint. Since SDK v0.3, validate() caches the last positive verdict on disk and replays it for up to 72 hours when the API is unreachable, so your customers stay running through any Paperkey outage.
-
Two-factor authentication
ShippedTOTP + 10 single-use recovery codes on dashboard accounts. Required for sensitive ops (account deletion, sign-out everywhere).
-
Stripe billing on managed tiers
ShippedFree, Pro, Business tiers backed by Stripe Checkout + Customer Portal. Grace period on cancel, parallel-sub prevention, watermarked webhooks.
-
Python SDK on PyPI
Shipped`paperkey` package on PyPI. Sync + async client, same surface as the TS SDK, cross-language HMAC test vector, 72 h offline grace, machine fingerprint helper on macOS / Linux / Windows. MIT-licensed.
-
PHP SDK on Packagist
Shipped`paperkeyhq/paperkey` on Packagist. PHP 8.1+, Guzzle HTTP, readonly DTOs, PHPStan level 9, cross-language HMAC test vector aligned with TS / Python. Composer install for the WordPress / Laravel crowd.
-
Team accounts
ShippedMulti-user dashboard with roles (owner / admin / viewer). Audit log enriched with actor and team. Transparent migration: every existing user keeps their personal team.
Up next
Next 2-3 months
Committed and scoped. Being built or about to start.
-
Audit-log retention extension
PlannedPro and Business tiers can extend the 90-day default to 1 year for compliance.
-
Pre-built Docker images on GHCR
PlannedSelf-hosters can skip the build step. ghcr.io/paperkeyhq/api and /dashboard, signed with cosign.
Later
6+ months
Direction is clear, scope is loose. Order can shift on real demand.
-
n8n, Make, and Zapier templates
PlannedOne-click flows for "issue license on Stripe payment", "revoke on refund", "send onboarding email on activation".
-
Custom email branding
PlannedBring your own SMTP and From address for the license-issued email. For when "from @paperkey.dev" is not on-brand for your customers.
-
Multi-product license groups
PlannedA single key unlocks several products. Useful for bundles or upgrades from a base SKU to an add-on.
-
One-click installers (Railway, Coolify, Dokku)
PlannedFor the self-host crowd that wants click-not-curl. A button per platform that provisions the stack.
Considered
On the table
Worth doing if real demand shows up. Not committed yet.
-
Go SDK
ConsideredFor CLI tools and Go-based plugins. Would land if there is community pull.
-
GraphQL endpoint
ConsideredThe REST API covers 95 % of cases. GraphQL would only land if a real customer use case shows up.
-
SAML SSO
ConsideredFor enterprise sales. Would arrive with a Pro+ tier and per-seat pricing tweak.
-
White-label custom domain
ConsideredRun the dashboard on your own subdomain (app.yourbrand.com). Caddy on-demand TLS, branded login. Needs paying-customer demand first.
Nudge something up?
Honest demand signal moves things up the list. Open a discussion on GitHub or send a one-liner. Both get read.
Still evaluating?
Read the 5-minute quickstart. Or skip it: the SDK has decent defaults and the dashboard explains itself.