Build internal apps using only backend code
Turn your script or CLI into a tool everyone on your team can securely use.
Install
pnpm add @internalstack/server
Declare inputs in backend code
server.ts
import { internalStack } from '@internalstack/server'
import { addCustomerToDatabase, sendWelcomeEmail } from './utils'
const server = await internalStack('live_psk_5b2d902f24a057349d9f2d1c385fef7c59')
server.statefulSession(async(io, { user: onboardedBy }) => {
const customerName = await io.input.text('Customer name')
// ^ This won't resolve until validated input is received!
const customerEmail = await io.input.text('Customer email')
await addCustomerToDatabase({
customerName,
customerEmail,
onboardedBy,
onboardedAt: new Date().toISOString(),
})
await sendWelcomeEmail(customerEmail)
})
The UI is automatically generated and presented to the authenticated user
Features
Why build on InternalStack?
Focus on business logic
No more CORS errors, session expired errors, or missing authentication header messages.
Secure
The server runs entirely on-premise. No code or secrets are transmitted.
SSO built in
Users are authenticated and authorized before they hit your server.
Fits right into your workflow
Your code gets committed to your own existing repositories.
Pricing
A plan for every need
Developer
A basic plan for individuals, startups, and indies.
Free Forever
- 15 developer seats free
- Full component library
- Unlimited apps
- Unlimited app users
Enterprise
A comprehensive solution for large organizations with advanced needs.
$34.99
/seat/mo
- Everything in free
- Unlimited developer seats
- Unlimited teams (with no limit on team size)
- Fine-grained app access
- SAML/OIDC SSO
- SCIM & Directory Sync
- Audit logs
Get started today
Build an internal app with authentication in 5 minutes