Skip to content
Data Apps

What are Keboola apps

Understand what Keboola apps are — Python/JS applications that run inside your project on governed data — and how they're hosted.

A Keboola app is an interactive application that runs inside your Keboola project, on top of your data. Use one to give people a way to see and act on data, not just move it.

Keboola has always handled the data pipeline — extracting, transforming, and loading your data. Apps add the layer on top: the interface your team or customers actually use. Because the app runs inside your project, it reaches your data through the same access controls you already manage.

This is the part that sets Keboola apps apart from general app builders: the app is governed by default. There’s no separate database connection to configure, expose, or leak, and no dataset copied to an outside service — the app reads through the project’s own access, server-side. It can only touch data the project can touch, and you control who can open it.

Keboola provisions and runs the app for you — there’s no server to set up.

  • Dashboardstrack metrics, replace a BI seat for an internal view.
  • Internal toolsforms, approvals, and workflows that read and write back to your data.
  • Data narrativesscrollable, explained stories built from your data.
  • Anything interactiveconfigurators, simulators, and more.
  • Agent-facing servicesan app can expose an API or an MCP server so other agents and services call it, not just human visitors (a Python/JS capability).

A Keboola Python/JS app — a Shopify Store Monitor dashboard with KPI tiles, revenue and orders charts, and product/vendor tables — running on the project's governed data

Keboola apps run on Python/JS — any Python web framework (Flask, FastAPI, Dash), a JavaScript frontend (React, Vue, plain JS), or both together. That’s what Kai builds, and the path for all new apps. What that buys you:

  • Any framework, any UI. Full control over look, layout, and interactivity — 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.
  • An API — or an MCP server. Because there’s a real backend, the app can serve other agents and services, not just human visitors.
  • Your Git workflow. Develop in your own editor and Git account — production-grade, versioned development.

How development actually works — code, configuration, data access, deployment — is covered in Build locally.

Have an existing Streamlit app? Streamlit remains supported; its documentation lives in the Streamlit apps section.

If the Kai builder and the live preview are missing from your app, its code lives in a repository you host. Those two features need a repository Keboola manages for the app. Everything else works the same either way, and here is what each path gives you. (A Streamlit app is the exception to all of this: it can run from inline code with no repository at all. See Streamlit apps.)

A Keboola-managed repository. Keboola creates a private Git repository for the app on your stack, at git.<stack>.keboola.com/keboola/app-<id>.git. Kai commits to it, which is what makes the live preview, the drafts you refine before publishing, and Modify with Kai possible. You never touch Git yourself. This is the recommended path for most people, and the one Build your first app with Kai walks through. Kai isn’t the only way in: kbagent data-app create --use-managed-git-repo provisions the same repository empty, mints a credential for it, and pushes your code, so you can hold a managed repository and still write the code yourself.

Your own repository. Point the app at a repository you host, on GitHub, GitLab, or any Git server, and Keboola clones it on every deploy. You develop wherever you like, with your own editor and review process, and with coding assistants such as Claude Code using the app-building skill. The Kai builder and its live preview aren’t part of this path; you push a change and click Redeploy App. Your repository has to follow a small layout contract so Keboola knows how to start it; the app-building skill’s reference spells it out, and Build locally covers developing and syncing your own repository; deploying and running it from a terminal with kbagent data-app is on Operate and update an app.

Which kind of repository an app uses is decided when the app is created. Everything after the code is the same on both paths: the same runtime, the same authentication options, the same App URL, deploy, redeploy, sleep, and logs.

A Keboola-managed repositoryYour own repository
Who writes the codeKai, or you pushing to the managed repoYou, or your coding assistant
Kai builder, live preview, draftsYesNo
Changing the appTell Kai, preview the draft, publishPush, then Redeploy App
Layout rules for the repoScaffolded for you when Kai builds the app; yours to meet if you push to it yourselfThe keboola-config/ contract is yours to meet
Best forDashboards, internal tools, getting something in front of people fastExisting code, teams with a review process, custom stacks

Next: Build your first app with Kai →

Ask Kai

Hi, I'm Kai — Keboola's AI assistant for the docs. Ask me anything and I'll answer from the documentation and cite the pages I use.

Kai is an AI and can make mistakes. Check the sources it links.