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.
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 }- 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.
Authentication
Hosted sign-in, MFA and sessions
- Hosted sign-up, sign-in, e-mail verification and password reset
- MFA policy per application: off, optional or required
- Client secrets minted once, stored hashed, rotated without downtime
Transactional Mail
Codes, receipts and notices from your own domain
- Sender domain and alias per application
- Published templates with server-side variable substitution
- Send a test from the console before you wire anything
User Vault
Encrypted per-user files through a backend-only boundary
- Isolation by (application, tenant, end-user)
- Completed server-to-server upload and download routes
- One-time vault capabilities consumed inside Authority Core
Secret Store
Per-application environment your backend reads at runtime
- Environment-variable-shaped names, encrypted values
- Encrypted with a key dedicated to customer secrets
- Reveal only via the owning backend’s client secret
SMS
OTP and notifications from your own provider account
- Your own provider account per application: SMS Nepal, Twilio and more
- Routing by country prefix with a primary provider and optional fallback
- OTP send and verify with per-tenant rate budgets
Billing
Your GPSewa merchant account, connected read-only
- Connect with your GPSewa sign-in; DevSewa never sees your GPSewa password
- Per-tenant overview: customers, subscriptions, open and paid invoices, failed payments
- Scopes chosen on GPSewa, re-checked live on every read
Hosting
Linux VPS and dedicated servers with a browser console
- Linux VPS on KVM with cloud-init; dedicated servers with out-of-band power
- Power on, shut down, reset — with live state and uptime
- Browser VNC console (VPS) or serial-over-LAN (dedicated) via a 60-second single-use ticket
Backups
Scheduled snapshots with receipts and restore checks
- Scheduled jobs per application with retention you can see
- Run on demand and follow the run to a receipt
- Receipts carry snapshot id, size, duration and a redacted error if any
Logs
Ship your application logs, search them per environment
- One call to ship an event or a batch of up to 500
- Severity, source, server and time filters; full-text search
- Cursor pagination that never skips or repeats
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
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
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
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.
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.
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.
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'sThe 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
Applications
3
Live environments
1
Tenants
2
sastomelalivesastomelatestnepalcloudtestSecurity 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.