sprits-it! — Awesome Speed-Reading

View the Project on GitHub the-happy-hippo/sprits-it

sprits-it! — Awesome Speed-Reading

sprits-it! is an open source web application which allows speed-reading of arbitrary web pages in a browser.

The speed reading technique is currently based on the ideas of Spritz described in their blog. At the time of this writing Spritz had virtually nothing to offer to iOs device users to play with. This project is targeted specifically on usability in Safari and Chrome mobile browsers but should ultimately work well on other platforms.


English-language Demo   Russian-language Demo



Live demo is hosted on Heroku here:


To read a web page at page_url use the following GET query: http://sprits-it.herokuapp.com/read?url=page_url

For example:


Alternatively, you migh just grab a bookmarklet in the settings section of the demo.

Official project homepage is hosted by GitHub Pages here.

Installation instructions


  1. Get your Readability™ API token at https://www.readability.com/developers/api;
  2. Optionally, if you'd like to track your site with Google Analytics then get a Tracking ID at http://www.google.com/analytics.

Cloning the repo

Clone with --recursive flag — this flag is needed for git to recursively fetch all the submodule dependencies for the project. E.g.:

git clone --recursive https://github.com/my-user/sprits-it.git

Running locally with Flask dev server

cd sprits-it/
> virtualenv venv
> . venv/bin/activate
> pip install -r app/requirements.txt
> export READABILITY_API_KEY=1234567890123456789012345678901234567890
> export GOOG_ANALYTICS_ID=UU-12345678-9
> cat app/.env
> cd app/
> python spritsit.py

Deploying on Heroku

If you are new to Heroku platform, visit the "Getting Started" guide at https://devcenter.heroku.com/articles/quickstart. Here we'll assume you have already set up your app's empty Heroku repo under heroku-app/.

Note: git manipulations below are needed due to the fact that the code should be imported from a foreign git repo (hosted on GitHub) to native Heroku repo, and moreover, because the sources (such as Procfile, etc.) must be placed in the root folder instead of in app/ subfolder

heroku-app/> git remote -v
heroku  git@heroku.com:heroku-app.git (fetch)
heroku  git@heroku.com:heroku-app.git (push)
heroku-app/> git remote add -f sprits-it  https://github.com/my-user/sprits-it.git
heroku-app/> git merge -s ours --no-commit sprits-it/master
heroku-app/> git mv app/* app/.env .
heroku-app/> git submodule init
heroku-app/> git submodule sync
heroku-app/> git submodule update
heroku-app/> virtualenv venv
heroku-app/> . venv/bin/activate
heroku-app/> pip install -r requirements.txt
heroku-app/> foreman start
heroku-app/> heroku config:set HEROKU=1
heroku-app/> git add -A .
heroku-app/> git commit
heroku-app/> git push heroku master

Deploying on Google App Engine

The following assumes GAE SDK is located in google_appengine/.

google_appengine/> git clone --recursive https://github.com/my-user/sprits-it.git
google_appengine/> cd sprits-it/
sprits-it/> pip install -r app/requirements_gae.txt -t app/lib/
sprits-it/> python ../dev_appserver.py app


Currently development betas only — simply because the project lacks sufficient user base to be tested extensively. Sorry… and you can help fixing that!

Project Motto

This project is managed according to the following book (in Russian):

The Project Book



The bootstrap code was imported from a CodePen snippet at http://codepen.io/the-happy-hippo/pen/aDHrl which in turn had been forked from a great Pen by Charlotte Dann at http://codepen.io/pouretrebelle/pen/reGKw with javascript cherrypicking for Readability text extraction from OpenSpritz project by Rich Jones(@miserlou).

Up-to-date Gist from codepen can be found at https://gist.github.com/the-happy-hippo/9474002.

Here is the description from Charlotte Dann for her original Pen:

Use Spritz right now! Options for speed, localStorage saving, jog forward/backward, text size and dark/light theme, also with keyboard controls and progress bar. You'll never need to read conventionally again. localStorage implementation by Keith Wyland, thanks Keith!

Contributing Projects

Notice to Contributors

I have started this project purely for educational purposes while having virtually no prior background in web design (apart from plain old HTML tables of 90's).

If you find something stupid that I did — please don't blame me and never hesitate to point those things out so I can learn from them.


sprits-it! is not affilated with Spritz Inc in any way. This is an open source, community created project based on publicly available information. We love you!