skip to navigation
skip to content

sappy 1.1b1

Single-page application server for end-to-end testing.

Unix: Windows: Metrics: Usage:


Sappy is a simple, single-page application (SPA) web server for end-to-end testing.

The Python standard library includes a web server that works great for serving up files:

$ python3 -m http.server 8080
Serving HTTP on port 8080 ...

$ curl http://localhost:1234/index.html
<!DOCTYPE html>
    <title>Example Index</title>

But when used to serve up single-page applications, a 404 is returned whenever any page other than the index is accessed directly:

$ curl http://localhost:8080/login
<!DOCTYPE html>
<html lang=en>
  <title>Error 404 (Not Found)</title

This project builds on the existing web server code to forward all requests to the index. The single-page application’s client-side routing can then display the page that corresponds to that request’s URL.



  • Python 3.5+


Install sappy with pip:

$ pip install sappy

or directly from the source code:

$ git clone
$ cd sappy
$ python install


Build your static website (e.g. an Ember application) for production:

$ ember build --environment=production
Built project successfully. Stored in "dist/".

Then serve up the application:

$ sappy
Serving /home/browning/project/dist/ on 8080

Check out the documentation or command-line help for additional options:

$ sappy --help

Revision History

1.1 (unreleased)

  • Added basic authentication support via SAPPY_BASIC_AUTH.

1.0.1 (2017/03/21)

  • Fixed handling of relative paths in assets.

1.0 (2017/01/09)

  • Initial stable release.

0.2 (2016/06/09)

  • Added a --launch option to open the page’s index.

0.1 (2016/06/09)

  • Initial release.
File Type Py Version Uploaded on Size
sappy-1.1b1-py3-none-any.whl (md5) Python Wheel py3 2017-10-06 9KB
sappy-1.1b1.tar.gz (md5) Source 2017-10-06 8KB