Skip to content
Data Apps

Python/JS Apps

The powerful, flexible way to build Keboola apps — any Python or JavaScript framework, full control over the interface, and a server-side backend that can even expose an API for agents.

Python/JS apps are the full-control way to build on Keboola. Where Streamlit gives you a quick, ready-made Python environment, Python/JS apps let you bring your own code — any Python web framework (Flask, FastAPI, Dash), a JavaScript frontend (React, Vue, plain JS), or both together. You build the experience; Keboola handles the hosting, access control, and data connectivity.

  • Any framework, any UI. Full control over look, layout, and interactivity — not limited to a widget set. Build a polished, customer-facing product, not just an internal tool.
  • Full-stack. A JavaScript/React frontend with a server-side backend (for example, an Express or FastAPI API) in one app.
  • Server-side data access. Your Storage token stays on the server; the browser never sees it. Query Keboola Storage (via the Query Service / Storage API) from your backend and shape exactly the data your UI needs.
  • Expose an API — or an MCP server. Because there’s a real backend, the app can expose an API (or an MCP server) so another agent or service can call it, not just human visitors.
  • Your Git workflow. Develop in your own editor and Git account and sync the app to your project — production-grade, versioned development.
  • Reach for Python/JS when you want a rich or customer-facing app, a custom frontend, a backend/API, or full control. See below to start building.
  • Reach for Streamlit when you want the fastest path for a simple internal data tool in pure Python.

For the bigger picture of how apps fit into Keboola, see What are Keboola apps.

Keboola clones your repository, installs dependencies, starts your app using the process configuration you provide, and serves it behind a secure URL through an internal web server. You don’t manage servers, ports, or Docker — only your code and a small configuration folder.

A Python/JS app's configuration page: the Overview tab with Authentication and a Git Repository section, and an App Info panel showing the Python / JS backend, size, and auto-sleep

You can build one three ways:

  • Build with Kai — describe it and let Kai generate the app. The fastest path. (Building Python/JS with Kai requires the Kai-in-E2B backend on your project; without it, Kai builds Streamlit. )
  • Build in the UI — create the app from the interface and point it at a Git repository that contains your code and configuration.
  • Build locally — develop with your own tools and Git account, then sync to your project. The home of full-control development.

Building it yourself? When you create a Python/JS app, Keboola offers a downloadable AI skill (for Claude Code, Cursor, or Copilot) that teaches your assistant the correct app structure, deployment config, and Keboola APIs — see Develop with an AI coding tool.

Environment variables, the app scaffold, backend versions, and limits live in the Apps reference.

Ask Kai

Ask anything about Keboola — I'll search the docs and cite the pages I use.