Your code, next to your identity
A Deno runtime with npm support, deployed to every edge, with the session already resolved when your handler runs. The custom logic that identity always needs, without a backend to operate
Functions
TypeScript deployed to every edge, next to your identity data.
export default async function (req) {const { user } = req.session;await crm.upsert(user.email);return Response.json({ ok: true });}
Writing them
An editor in the dashboard for a quick change, and a CLI for everything real
Overview
How your functions behaved over the last 30 days.
Invocations
2.6M
+12%
p95 latency
11ms
-3ms
Error rate
0.04%
-0.01%
Edges
31
all live
Invocations per day
p95 latency
Invocations, p95 and error rate per function — the numbers you check before and after a deploy
TypeScript first
No build step to configure; types are the default, not an add-on
npm support
Import from npm directly, with the packages you already depend on
In-dashboard editor
Full editor with autocomplete for a fix you do not want to redeploy for
Secrets
Injected at runtime and versioned per key, never in the source
Everywhere your users already are
A function that runs beside the identity service never has to ask another service who the caller is — and it runs at every edge, so that answer is close to whoever asked
- 31
- edges
- 12
- regions
- 5–14ms
- p95, edge to token
Session in context
The authenticated user is already on the request when you get it
Local verify
Permission checks with no cross-network hop to pay for
Auth hooks
Run your logic during sign-up, sign-in or token issuance
Global by default
Deployed to every edge, close to whoever is calling
Operating them
Deploys you can watch, and undo
Deployment
on-signup · v18 · deploying to 31 edges
Deployment logs
12:04:02 initialize resolved 4 npm packages
12:04:03 build bundled 18.2 kB
12:04:09 deploy uploaded to 31 edges
12:04:11 promote routing 12% of traffic
Initialize, build, deploy, promote. Every step timed, every deploy reversible
Versions
Every deploy kept, with a one-click rollback
Function logs
stdout, errors and duration, streamed and queryable
Deploy history
Deploys, secret changes and rollbacks, recorded per function
Cold-start budget
Isolates, not containers — measured in milliseconds
Express, if that is what you want
npm packages work. Bring the framework you already know, or serve a bare fetch handler — the runtime does not have an opinion.
import express from "npm:express";
const app = express();
app.use(express.json());
app.post("/user/:id", (req, res) => {
res.json({ userId: req.params.id, status: "ok" });
});
Deno.serve((req: Request) => app(req));One platform, from your first user
Focus on your product. We handle identity infrastructure
What you would have built
Six areas, every one of them a project of its own.
- Authenticationpasswords, providers, MFA, sessions
- AuthorizationRBAC, scopes, per-resource grants
- OAuth serverOIDC discovery, JWKS, PKCE
- Edge functionsDeno runtime, deploys, rollback
- Notificationstemplates, providers, delivery logs
- Observabilitymonitoring, audit trail, query