Skip to main content

Full-code apps

Full-code apps let you build custom frontends with React or Svelte that connect to Windmill backend runnables and data tables. Unlike the low-code app editor, you write your own components and have full control over the UI.

Full-code apps

How it works

A full-code app is a directory with the .raw_app suffix (e.g. my_app.raw_app/) or the __raw_app suffix (e.g. my_app__raw_app/) depending on your sync settings. It contains:

  • Frontend code: React or Svelte components bundled and served by Windmill
  • Backend runnables: scripts in any supported language that run on Windmill workers
  • Configuration: a raw_app.yaml file defining metadata, policy and data access

When deployed, Windmill bundles your frontend code and serves it as a single-page application. Your frontend calls backend runnables through an auto-generated wmill.ts module, which communicates with Windmill's execution engine via WebSocket.

Full-code vs low-code apps

Low code apps are built with the low-code app editor, while full-code apps are built with React or Svelte.

Full-code appsLow-code apps
UICustom React/Svelte componentsDrag-and-drop component library
Frontend logicFull framework features (hooks, stores, routing)Connecting components + inline scripts
BackendScripts in backend/ folder, any languageRunnables panel, inline or workspace scripts
StylingYour own CSS, Tailwind, etc.Component-level + global CSS editor
Local devwmill app dev with hot reloadWeb-based editor only
Best forCustom UIs, complex interactions, existing codebasesQuick dashboards, forms, CRUD interfaces

Getting started

For a step-by-step tutorial building a complete app, see the full-code apps quickstart.

Platform

The full-code apps are built on the Windmill platform, which provides a backend for running your code and a frontend for building your UI.

Just hit '+ App' and select 'Full-code App'.

Choose app builder

Then pick a framework (React or Svelte), a Data configuration (optional) and a name for your app. Optionally, you can start it with AI.

New app setup

Locally

The fastest way to create a full-code app is with Windmill CLI:

wmill app new

This scaffolds a project with your chosen framework (React or Svelte), a sample backend runnable, and the necessary configuration. Then start the development server:

cd f/folder/my_app.raw_app   # or my_app__raw_app
wmill app dev .

See the CLI workflow page for the full setup guide.

Folder suffix

By default the CLI uses dotted suffixes (.raw_app). If your filesystem or tooling hides dotfiles, set nonDottedPaths: true in your wmill.yaml to use dunder suffixes (__raw_app) instead. All examples in this documentation use the default .raw_app suffix — substitute __raw_app if you enabled non-dotted paths.

Supported languages

Backend runnables support all Windmill script languages.

Pages