Build full-code internal apps
For platform teams who need to ship internal tools with production-grade observability, enterprise controls and zero infrastructure overhead.
What is an internal app on Windmill?
An internal app on Windmill is a React or Svelte frontend backed by Windmill backend-runnables running on dedicated workers. The platform serves the frontend, runs the backend, stores the data and handles auth, permissions, versioning and observability.
The backend runnables are Windmill server-side scripts and workflows, which connect to your databases and APIs through shared resources. The frontend calls them directly, no API layer to build, no infrastructure to manage.
Backend, data and frontend in one platform
Backend scripts, data connections and frontend components live in the same platform. Each layer connects natively, no glue code or separate services to manage.
Backend runnables in 20+ languages
Each app component calls scripts and workflows that run server-side on dedicated workers. Write business logic in TypeScript, Python, Go, SQL, Bash and more. Scripts connect to external services through shared resources with 100+ integrations available out of the box.
Learn more about the script editor
Two ways to create internal apps
Build apps directly in the Windmill UI or develop locally with your own editor and framework. Both paths deploy to the same platform.
In the Windmill UI
The Windmill UI provides a built-in IDE where you can connect your frontend to your workspace's backend runnables and use AI assistance to generate your app. Deploy in one click with built-in versioning.
Learn more about the app builderIn your local editor
Use Claude Code or Codex skills to generate frontend and backend runnables locally. Import React or Svelte apps and deploy with the CLI.
Learn more about local developmentBuilt for production
Every app runs within a platform built for enterprise requirements: immutable versioning, role-based access control, full audit trails, SSO and self-hosting. No extra setup needed.
Versioning and deploy
Every app version is immutable and addressable by hash. Deploy from the UI, the CLI or Git sync. Roll back to any previous version instantly. Sync your workspace with GitHub or GitLab and use your existing code review workflows.
Learn more about deployment and versioningFull observability
Every run is logged with inputs, outputs, duration and status. Real-time execution logs stream as your app runs. Set up error handlers to send alerts on failure. Audit trails track who ran what and when.
Learn more about observabilityRBAC and permissions
Control who can view, edit and run each app with role-based access control. Organize apps into folders with group-level permissions. Authenticate users with SSO. Every action is recorded in the audit log.
Learn more about RBACOne platform, no infrastructure overhead
No separate tools for backend, frontend, storage, monitoring and deployment. Windmill provides them all as built-in layers, natively integrated, no glue code required. Self-host or use Windmill Cloud.
Code locally with Windmill CLI, VS code extension, skills and plug-in.
See it in action
An example production planning tool built on Windmill. Browse the Windmill Hub for more templates.
More you can build on Windmill
Internal tools are just one use case. The same platform powers triggers, data pipelines, AI agents and workflows.

Write scripts in TypeScript, Python, Go, Bash, SQL and trigger them from webhooks, schedules, queues or the auto-generated UI.

Orchestrate ETL jobs with parallel branches, DuckDB queries and connections to any database or S3 bucket.

Build AI agents with tool-calling, DAG orchestration, sandboxes and direct access to your scripts and resources.

Chain scripts into flows with approval steps, parallel branches, loops and conditional logic.

Run cron jobs with a visual builder, execution history, error handlers, recovery handlers and alerting.
Frequently asked questions
Build your internal platform on Windmill
Scripts, flows, apps, and infrastructure in one place.

