NewAuth, Mail, Vault and Secrets are live · SMS, Hosting, Backups, Logs and Billing in preview

The backend services your app needs. None of the secrets in your browser.

DevSewa gives your application hosted sign-in, transactional mail, an encrypted user vault and a secret store — each isolated per tenant, all mediated by one control plane that your backend calls with a single key.

your backend · callback handler
const res = await fetch(
  'https://auth.api.devsewa.com/v1/auth/exchange',
  {
    method: 'POST',
    headers: {
      authorization: `Bearer ${process.env.DEVSEWA_CLIENT_SECRET}`,
      'content-type': 'application/json',
    },
    body: JSON.stringify({ ticket }),
  },
)
const { user } = await res.json()
// → { subject, email, name }
1 keyfor your backend
0 secretsin the browser
9 productslive or in preview
0backend secrets in the browser
The console and your frontend only ever see identifiers.
1canonical spelling per tenant
Acme and acme can never fork into two customers.
Server-onlyvault capability boundary
One-time grants and Trusted URLs are consumed inside Authority Core.
2environments per tenant
Test and live, each with its own keys and policy.

Products

Everything an application needs, one control plane

Four products are live today. Five more are open in preview, served by the same fleet that already runs DevSewa itself. Use one, or all of them — every product is scoped to the same application.

How it works

One key for your backend. Zero secrets for your frontend.

DevSewa is split into a stateless edge and an authority core. The core owns product truth and every engine credential; the edge only ever forwards.

  1. 1

    Register an application

    Create one tenant, start in the sandbox, then add live from the same application. Each environment has separate keys and data.

  2. 2

    Your app calls DevSewa

    Browsers are redirected to hosted sign-in; your backend calls the API with the client secret. Nothing else ever sees it.

  3. 3

    DevSewa mediates the engines

    The control plane resolves your tenant from the key, enforces policy and audit, and signs to each engine with credentials only it holds.

Your app talks to DevSewa; DevSewa talks to the engines.Browsernever holds a secretYour backendholds the client secretDevSewaHosted sign-inauth.devsewa.comControl planescope · policy · auditholds every engine secret*.api.devsewa.comIdentity engineMail engineVault engineSMS · Billing · …redirectBearer keyHMAC · mTLS · per-tenant scope

Developer experience

Small REST surface. Copy-ready samples in the console.

No SDK required to get started: two endpoints get you a signed-in user and your runtime configuration. Server SDKs for Node and Python are in preparation.

auth · exchange a ticket
POST https://auth.api.devsewa.com/v1/auth/exchange
Authorization: Bearer dsk_live_9f2c1a_…
Content-Type: application/json

{ "ticket": "tkt_…" }

→ 200
{ "ok": true,
  "user": { "subject": "usr_…", "email": "ada@acme.com", "name": "Ada" } }

The ticket arrives on your allow-listed callback URL after hosted sign-in. It is single-use and scoped to your tenant, so it cannot be replayed into another brand’s user pool.

secrets · read at runtime
GET https://auth.api.devsewa.com/v1/secrets/DATABASE_URL
Authorization: Bearer dsk_live_9f2c1a_…

→ 200
{ "name": "DATABASE_URL", "value": "postgres://…" }

# 401 client_secret_invalid  — revoked or mistyped
# 404 secret_not_found       — wrong name, or another tenant's

The same credential resolves which application is calling. A key never needs to say which tenant it belongs to, and cannot pretend to be another.

Console

A console that tells you what is left to do.

Applications, keys, allow-lists, sender domains, vault metadata and secrets — with setup progress per application and honest states when something is not ready.

Auth · auth.api.devsewa.com

Applications

New application

Applications

3

Live environments

1

Tenants

2

ApplicationTenantEnv
SSastomela Storefrontsastomelalive
SSastomela Storefrontsastomelatest
NNepal Cloud Portalnepalcloudtest

Security model

Built so a misconfigured deploy fails closed, not open.

DevSewa runs on the same fleet contracts as the payment products next to it. These are the rules every route is reviewed against.

Edge / authority split

The public site and console are stateless. Only the authority core touches the database and the engine secrets, and it never runs on the edge.

Secrets materialised, never shipped

Every engine credential is delivered at deploy time by the fleet Secret Manager as a file. Releases, images and logs never contain one.

Tenant isolation, not tenant filtering

Scope is derived from the session or the key, never from a request body. Cross-tenant access is 403; existence is hidden with a consistent 404.

Policy at the mediation layer

MFA and e-mail verification are enforced where every call passes, so a client that bypasses your UI gains nothing.

Audit on every mutation

Application changes, key mints, sender-domain edits, completed vault operations and secret writes are recorded with actor and time.

One spelling per tenant

Tenant names are canonical. A variant is rejected with the correct spelling, never silently folded into a new customer.

Pricing

Free while we open the platform.

Every plan is free during early access. Paid tiers will be announced with prices and a date well before anything is charged.

Developer

Free

Test applications, hosted sign-in, mail sandbox, vault and secrets.

Team

Free in early access

Live environments, custom sender domains, priority relay, audit export.

Business

Talk to us

Dedicated relay, SLA, invoicing in NPR, onboarding help.

FAQ

Questions teams ask before their first application.

Give your application a backend it does not have to run.

Create an account, register a test application and exchange your first ticket in under ten minutes.