wq.app is a suite of Javascript modules and related assets, created to facilitate the rapid deployment of offline-cabable HTML5 mobile and desktop data collection apps for crowdsourcing, citizen science, and volunteered geographic information, as well as professional field data collection. wq.app is the client component of the wq framework, and can be used with any REST service as a backend. In particular, when combined with a Mustache-capable REST service like wq.db, wq.app can be used to create responsive, progressively enhanced websites / apps, that can selectively render individual application screens on the server or on the client depending on project needs, network connectivity, and offline storage availability.

Latest PyPI Release Release Notes Documentation License GitHub Stars GitHub Forks GitHub Issues

Latest Build

Travis Build Status Python Wheel

Getting Started

# Recommended: create virtual environment
# python3 -m venv venv
# . venv/bin/activate

# Install entire wq suite (recommended)
python3 -m pip install wq

# Install only wq.app
python3 -m pip install wq.app

See the documentation for more information.


wq.app's JavaScript modules are built on a number of libraries including jQuery Mobile, Leaflet, d3, and Mustache.js. wq.app extends these libraries with:

@wq/app can be extended with a number of plugins such as the Leaflet-powered @wq/map and the d3.js-powered @wq/chart. wq.app comes bundled with all of the required third-party JavaScript libraries. To facilitate compact deployment, wq.app provides a Python-based build process for compiling wq apps: inlining templates, optimizing code (via r.js), and generating a native application package (via PhoneGap Build).

See the notes in Getting Started for more information about setting up a project layout that utilizes wq.app and its bundled JavaScript libraries.