Skip to content
No-code in the front, Python in the back.
An open-source framework for creating data apps.
# Install via pip (requires Python >= 3.9.2)
pip install "streamsync[ds]"

# Run local server for the demo app
streamsync hello

Reactive and state driven

Streamsync is fully state-driven and provides separation of concerns between user interface and business logic.

import streamsync as ss

def handle_increment(state):
    state["counter"] += 1

    "counter": 0

The user interface is a template, which is defined visually. The template contains reactive references to state, e.g. @{counter}, and references to event handlers, e.g. when Button is clicked, trigger handle_increment.


  • Event handling adds minimal overhead to your Python code (~1-2ms).
  • The script only runs once.
  • Non-blocking by default. Events are handled asynchronously in a thread pool running in a dedicated process.


  • Version control everything. Development is local, user interfaces are saved as JSON.
  • Use your local code editor and get instant refreshes when you save your code. Alternatively, use the provided web-based editor.
  • You edit the UI while your app is running. What you see really is what you get.


  • Elements are highly customisable with no CSS required, allowing for shadows, button icons, background colours, etc.
  • HTML elements with custom CSS may be included using the HTML Element component. They can serve as containers for built-in components.