Skip to main content

NovaUI

NovaUI is an early-stage Python-first UI framework. Describe interfaces with Python components; a lightweight HTML, CSS, and JavaScript renderer displays the same UI in a browser or an optional desktop webview.

The project favors a small declarative API, ordinary Python for application logic, and explicit boundaries between Python events and browser rendering. NovaUI is an MVP, not a production-ready or fully accessible framework.

What works today

  • Browser UI with text, buttons, inputs, layout components, forms, routing, dialogs, and themes.
  • Reactive State values and computed Text content refreshed after UI events.
  • Searchable, sortable, filterable, selectable, paginated in-memory DataTable.
  • Optional desktop hosting via pywebview, with window controls, file dialogs, text clipboard, shortcuts, and menus where the platform backend supports them.
  • CLI for project creation, running apps, basic checks, and Python package builds.
  • Explicit, trusted Python extensions for compositional components, named themes, and app-scoped services.

Python 3.10 or newer is required. Browser mode is the default. Desktop mode needs pywebview plus a platform webview. NovaUI has been tested locally on Linux; CI is configured for additional OS and Python versions, but that is not the same as a completed release compatibility review.

Install and run

NovaUI requires Python 3.10 or newer. The public source repository is sumankrsaurabh/NovaUI. NovaUI has not yet been published to PyPI, so pip install novaui is not available yet.

Install this source checkout:

python -m venv .venv
# Linux/macOS: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install -e '.[dev]'
python examples/counter.py

To install the current source without development tools, use python -m pip install .. To build a wheel and source archive, use python -m pip install '.[build]' followed by python -m novaui build.

Install directly from GitHub:

python -m pip install "git+https://github.com/sumankrsaurabh/NovaUI.git"

For a local clone and editable development install:

git clone https://github.com/sumankrsaurabh/NovaUI.git
cd NovaUI
python -m pip install -e '.[dev]'

The default branch may change without notice. A version-tag install becomes available after the corresponding tag is published, for example python -m pip install "git+https://github.com/sumankrsaurabh/NovaUI.git@v0.1.0". The PyPI command python -m pip install novaui will work after the first package release.

Directly running an example opens a browser by default. To scaffold a project with the CLI:

novaui create hello_app
cd hello_app
novaui run --open-browser

For a desktop window, install the optional dependency and run an example with --desktop:

python -m pip install -e '.[desktop]'
python examples/counter.py --desktop

For the optional Qt webview backend:

python -m pip install -e '.[desktop-qt]'

Qt's license and platform requirements should be reviewed before redistributing desktop applications. The base package has no runtime dependencies; dev and build extras are only for maintainers.

Linux also needs a supported GTK/WebKitGTK or Qt/WebEngine backend and a graphical session. The desktop-qt extra installs Qt Python packages with their own license terms; see desktop setup before distributing an application.

Minimal app

import novaui as ui

count = ui.state(0)

ui.app(
    ui.Column(
        ui.Text("Hello, NovaUI!", size=28, bold=True),
        ui.Text(lambda: f"Count: {count.value}"),
        ui.Button("Add", on_click=lambda: count.update(count.value + 1)),
        spacing=16,
        padding=24,
    ),
    title="Counter",
)

Text supports bold=True; there is no weight argument. Inputs can bind to ui.state(...), and callback events are registered by opaque IDs. See the first app tutorial for a complete walkthrough.

Documentation and examples

The examples/ directory contains counters, forms, dashboards, tables, routing, desktop utilities, extension samples, and the Phase 11 Studio, Admin, and PyOffice Notes applications. See the gallery for the correct run mode; desktop examples require a working GUI backend.

Development and releases

python -m pip install -e '.[dev]'
PYTHONPATH=. python -m pytest -q
python -m ruff check novaui tests examples packaging
node --check novaui/frontend/app.js
python -m build --sdist --wheel
python -m twine check dist/*

HTTP tests need permission to bind loopback sockets. novaui check runs syntax/import/metadata checks and project tests; it is not a security audit. The repeatable release checklist is in RELEASING.md. Do not publish artifacts without maintainer authorization.

Current limitations

  • The local server is for development and desktop use, not hardened public hosting. It has no user authentication or process isolation.
  • Updates are requested after UI events; background state changes are not pushed live. The server returns the full component tree after interactions.
  • Tables are in-memory and not virtualized. Editable grids, charts, rich-text editors, upload/download widgets, and command palettes are not implemented.
  • Forms validate supported string fields synchronously. Repeat security-sensitive validation in trusted application services.
  • Accessibility and cross-platform desktop behavior still need broader manual review. Desktop dialogs, menus, and clipboard support depend on the OS backend.
  • Extensions execute trusted Python in-process; they are not sandboxed and are not automatically discovered.
  • The public API is experimental before 1.0; see contribution and compatibility guidance.

NovaUI is distributed under the MIT License. Contributions and security reports are welcome; see CONTRIBUTING.md and SECURITY.md.

To uninstall a source or PyPI installation, run python -m pip uninstall novaui in the same environment. Release builds and publication setup are documented in RELEASING.md; publishing is intentionally a separate, maintainer-authorized step.

Metadata

Release files for novaui 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for novaui 0.1.0
File Size Uploaded Provenance
novaui-0.1.0.tar.gz 113.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for novaui 0.1.0
File Interpreter ABI Platform
novaui-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 172.3 kB

Release files / novaui-0.1.0.tar.gz

Download URL novaui-0.1.0.tar.gz
Size 113.6 kB
Tags Source
SHA-256 checksum
How to use checksums
144876bee724413b73107c26b18ecdc1cf42d6f8ba6ad85a251ede58a20485de
BLAKE2b-256 checksum
How to use checksums
3dd97dda876c5fb13dbabe112c7fea51e8f894893c0c1d0835680a6f310507db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / novaui-0.1.0-py3-none-any.whl

Download URL novaui-0.1.0-py3-none-any.whl
Size 58.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2fa9d03cc26dd38fa35d0eae20a175ad155c7f3ca16e98951fc7a8e37d7d35f
BLAKE2b-256 checksum
How to use checksums
97ba080fe9d2cc101b84752a1ca3b67ae3cebb5caedb3c7d34cbc384d2b25548
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for novaui 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for novaui-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page