Jam.py is an event-driven framework for the development of web database applications.
JavaScript Python HTML CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Jam.py Application Builder (compatible with Python3)

Build Status Coverage Status Python versions

Make a stunning database apps for your business really fast, for free. Here is the Demo for Heroku which you can access from:


With Jam.py you can create, customise, test and share awesome, fast, event-driven applications for SQLite, Oracle, MySQL, PostgreSQL and Firebird. All of that for free and no vendor lock-in!

How was the Demo published on Heroku?

The Jam.py Demo you see on Heroku is just a Git repo made from the original Jam.py Demo with two files added: requirements.txt and Procfile.

Then the Heroku account was open, jampy App created, Git repo linked and deployed. In 10 seconds it magically appeared as a live Web site. There is also development effort with Postfix Email Aliases App in here: https://github.com/platipusica/jampy-posfixaliases with the Demo running on Heroku as well. Enjoy.

Why using Jam.py?

DRY principle! Don't repeat yourself, do it once, do it well.

With Jam.py Application Builder, you can resolve a specific business problem. Out of the box Jam is providing: fast access to underlying databases, security, authentication, validation, calendars, multi languages, all of that with minimum of coding needed. Being Python framework, it is extensible and flexible.

“All in the browser” framework

  • Internet Browser IDE
  • Code Editor with Syntax Highlighting and Code Completion
  • No declarative options, you are in charge.
  • Instant WYSIWYG
  • Application lifecycle tracking.
  • SQL and stored procedures supported for major vendors.
  • Integrate any Python library with no contract lock-in and reduce cost instantly.
  • Bootstrap, JQuery, JS, all in here. Use it with no fuss and learning this massive libraries.
  • Create rich, informative reports, due to band-oriented report generation based on LibreOffice templates.

Event driven grids

  • Event driven grids enable you to easily manipulate data simply by clicking on a cell and editing its value.
  • Event driven data-aware visual interface controls makes the framework flexible and powerful.
  • Edit your data in the grid, as you would in any Desktop spreadsheet application.
  • Create the master-detail table with breeze, utilising templates for displaying, which is no more than a copy/paste. Easy. * Again, no declarative methods, the control is with you as it should be.

jsCharts or any charting libraries

  • Locked-in with a vendor charting capabilities? Never again. Use free libraries as jsChart, at.al.
  • Use the same charting capabilities on your mobile devices, once for all.
  • Visualise charts immediately after you create/import tables, with a few lines of code. Simple and effective.
  • Analyzing/displaying BIG data? Add free Python lib's, build a Jam Web Form with parameters, execute on the server.
  • Profit.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.



  • python 2.7 // python 3.6
  • For MySQL database access: mysqlclient, libmysqlclient-dev
  • For Oracle database access: cx_oracle
  • For Firebird database access: fdb
  • For Jam.py Reports editing/creation: LibreOffice

Installing an official release with pip

The easiest is to use the standalone pip installer.

If you’re using Linux, Mac OS X or some other flavor of Unix, enter the command:

sudo pip install jam.py 

at the shell prompt. If you’re using Windows, start a command shell with administrator privileges and run the command:

pip install jam.py. 

This will install Jam.py in your Python installation’s site-packages directory.

Installing an official release manually

Download the package archive from https://github.com/jam-py/jam-py/tree/master

Create a new directory and unzip the archive there.

From the above directory, enter the command:

sudo python setup.py install

This will install Jam.py in your Python installation’s site-packages directory.

Running the Demo App

Navigate to jam.py installation demo folder, enter the command:

python server.py

You'll have the Demo App running at http://localhost:8080

Create a new App

mkdir newapp
cd newapp
python server.py

The new and empty App will run at http://localhost:8080

Please visit http://jam-py.com/docs/intro/index.html for complete Getting Started Introduction.


Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.


See also the list of contributors who participated in this project.


This project is licensed under the BSD License.


  • Hat tip to anyone who's code was used
  • Inspiration
  • etc