JSForm — Desktop applications defined with JSON.

Open-source beta · Development version 0.1.0-beta.6

Desktop applications
defined with JSON.

JSForm turns structured form definitions into native Python desktop applications—with database records, validation, navigation, visual design tools, and PDF reporting built in.

Python 3.10+ · wxPython · MariaDB or MySQL · Windows-focused

student-form.json
{
  "form": Student,
  "table": tblStudent,
  "layout": responsive,
  "fields": [
    { "name": FullName,
      "type": text,
      "required": true }
  ]
}
JSON definition → native form
Open sourceLGPL-3.0-or-later
Native desktopBuilt with wxPython
Database readyMariaDB and MySQL
Your dataLocal, direct, controlled

A practical application framework

Define the data. JSForm handles the routine.

Build consistent database applications without rebuilding the same editing, navigation, validation, and reporting machinery for every screen.

01

JSON-defined forms

Describe fields, relationships, layouts, controls, and behavior in readable files that remain easy to review and customize.

02

Database records

Navigate, create, update, and validate MariaDB or MySQL records through a consistent native interface.

03

Visual screen designer

Arrange and customize screens visually while preserving recoverable starter definitions.

04

Native reporting

Design reusable layouts and generate PDF reports without a separate reporting runtime.

05

Reusable behavior

Shared handling for dates, times, numbers, choices, phone formatting, dirty-state checks, and linked forms.

06

Application hooks

Add authentication, permissions, auditing, diagnostics, and application-specific workflows without forking the framework.

Visual design tools

Design screens and reports without hand-positioning JSON.

JSForm keeps readable, validated definitions underneath while giving application developers native visual tools for arranging the user interface and printed output.

JSForm Screen Designer arranging the School Bus Routes data-entry screen
SCREEN DESIGNER

Build the desktop workspace visually.

Arrange controls on a live grid, edit labels and field properties, align or distribute selections, preview responsive layouts, and validate before saving.

  • Undo, redo, alignment, sizing, and snap-to-grid tools
  • Protected starters with separate user customizations
  • Native preview using the same JSON screen contract
JSForm Report Designer displaying the School Bus Route Manifest layout
REPORT DESIGNER

Turn application data into polished PDFs.

Compose report sections, place data-bound controls, set typography and presentation properties, and preview reusable PDF output without a separate reporting runtime.

  • Headers, detail bands, repeaters, totals, and page layout
  • Validated dataset contracts and recoverable definitions
  • Native PDF rendering ready for printing or sharing

How it fits together

Structured definitions, native results.

DefineJSONForms and reports
→
BuildJSFormFramework behavior
→
UseNative UIwxPython desktop
→
ConnectData + PDFDatabase and output

Included demonstration

Learn through a complete, small application.

The School Bus Routes sample demonstrates forms, choices, parent-child records, ordered route stops, visual screen customization, and a designed PDF route manifest.

  • Schools, drivers, buses, students, routes, and stops
  • Independent sample database and account
  • Screen and report designer examples
  • Intentionally simple enough to study
JSForm Routes screen showing an ordered list of school bus stops and a data-entry form
Database formsRelated records, choices, time fields, ordered lists, and navigation.

One framework, complete workflow

From application menu to finished report.

JSForm School Bus Routes sample main menu
Application shellA clean starting point assembled around the application's work.
JSForm visual Report Designer displaying a Route Manifest layout
Visual report designArrange report controls, sections, data fields, and presentation properties.
Finished Pine Valley School Bus Route Manifest PDF
Finished PDF outputA reusable report definition rendered as a polished, portable document.

Current versions

JSForm 0.1.0-beta.6 development

Active development has advanced to Beta 6 with stronger application isolation, safer file handling, improved lifecycle behavior, native application menus, and more resilient form display. The verified standalone download remains Beta 1 while the next framework package is prepared.

Latest published package JSForm 0.1.0-beta.1 Python wheel

SHA-256: 06aa7d0cb0639ad045d18440a4ec5a0b4fd7bf92e580e6282fceeffa3af1fdee

Download beta 1 Release notes and source archive →

Project resources

Build in the open.