Home

What is PAX?

PAX is an open source, compact yet complete, web application framework, that includes just the components that you need to build a web application. It is less than 50kb javascript, gzipped and minified.
PAX places a strong emphasis on balance of features versus compactness, in order to provide an optimal solution.
There is a broad range of widgets, and an excellent set of underlying utilities and methods, all you need to do is configure the widgets, and hook up the server side code. PAX is LGPL licenced.

How can you use PAX?

You can use it to develop a complete web application! Some of the more prominent features are:


Datagrid (ajax)

Ajax driven data grid with many display and formatting options

Validation (extended)

Extended form field validation including: managed ajax queries, input widgets, custom validation, etc...

Date picker widget

Widget for simple input of dates, with format validation, and the ability to calculate dates from strings, eg: 'tomorrow'

Tabset widget

Widget that shows a set of tabs, based on either HTML markup, javascript, iframe or ajax data

Hints

A bunch of hints (tool-tips) attached to various elements, including custom show functions

Form ajax submit

Submit forms via ajax (including file uploads!)...
There are more examples on the demo page.

PAX also has a variety of handy plugins, some of which are:


Google maps plugin

Plugin widget that makes it easier to display google maps and street view

Video plugin

Plugin widget that makes it simpler to display videos from various sites


Who should use PAX?

The main demographic for PAX are developers of data-driven web applications, who want to focus on results and practicality for the end user, whilst still maintaining standards, and optimisation for efficiency. This is achievable because PAX is built with a relatively limited set of features, that have been determined as essential, based on UI and web application research.

Why was PAX created?

The main inspiration for creating PAX was the lack of complete yet compact frameworks that had a set of common widgets and features; either the framework had too few of what can be considered "core" features, or was bloated with too many features, and sometimes cool but useless functionality. To most enterprise users, speed is paramount, they don't care if your application has wizz-bang features if it doesn't load quickly; PAX addresses these issues by being user friendly, concise and compact, (less than 50KB javascript, minified and mod_deflate compressed). Of course, it still has "whizz-bang" features, it just doesn't automatically assume you want to use them. Such features are created as plugins, so that those people that want to use them need simply use the plugin code. For example: an ajax spell checker is a desirable feature, but can hardly be considered a "core" feature.
Another motivator was watching how some developers use certain frameworks that encourage non-unobtrusiveness; this development process is not suitable for many situations, where there are large pages, (eg: many fields and large forms), as it leads to browser memory management issues, and general maintainablilty problems. PAX addresses these issues by encouraging and embracing unobtrusiveness.

How is it just the components I need?

When deciding what was to be included in PAX, research was done on various popular web applications, in order to find a set of common features and elements. From this set, we choose what to include in PAX.

Philosophies

When designing PAX, a few "unwritten rules" were observed, in order to reinforce a 'best practices' approach:

  1. Find a balance between simplicity, functionality and compactness
  2. Optimise the end user experience for simplicity and efficiency
  3. Use the "80 / 20 rule" in deciding the functional requirements and development priorities
  4. Unobtrusiveness is paramount (kudos J.Keith, WD06 South)
Moving forward, these rules will be applied as suitably as possible.

Road Map

For the next point release: 0.90.00, we are aiming for these features:

For the first commercial release: 1.00.00, we are aiming for these features: