Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Gratipay Widgets + API
JavaScript HTML Nginx Makefile Shell
Branch: master Builds Deps

Gratipay widgets + widget API

Getting Started


$ git clone
$ cd
$ make run

Then visit http://localhost:9537/test/


JSDoc comments are used, but documentation generation is not setup yet. The code is documented, please dive in.

Configuration options:

  • window.grtpAPI - Where to look for the API
    • defaults to //
  • window.gratipayURI - Where to look for Gratipay
    • defaults to


In the following examples, just switch out rummik with your Gratipay username.

Standard Widgets

<script data-gratipay-username="rummik"
  src="//" async></script>

<script data-gratipay-username="rummik"
  src="//" async></script>

<script data-gratipay-username="rummik"
  src="//" async></script>

Custom Widgets

You can create your own widgets by adding data-gratipay-widget="custom" to your widget's HTML, and the following classes:

  • Text
    • gratipay-receiving - dollar-sign prefixed value of receiving
    • gratipay-username - the user's username
    • gratipay-goal - dollar-sign prefixed value of goal
    • gratipay-giving - dollar-sign prefixed value of giving
    • gratipay-identity - I if number is singular, We if number is plural
  • Links
    • gratipay-profile-link - sets the href attribute to the user's profile link
    • gratipay-link - sets the href attribute to
  • Misc styling
    • gratipay-goal-progress-bar - sets the element's width to a percentage value of the user's goal progress
<div data-gratipay-username="rummik" data-gratipay-widget="custom">
  I receive <a class="gratipay-profile-link">
    <span class="gratipay-receiving">$0.00</span> / wk
  on <a class="gratipay-link">Gratipay</a>.
<script src="//"></script>

Other Widgets

<img src="">

Google Gadget for Blogger.

Release and Deployment is hosted on a Digital Ocean VPS (called droplet) accessible through SSH. It runs nginx and the publishing root is /home/

To access the server, you need someone who already has access to add your key to /home/


If you need to alter nginx configuration, it is stored at /etc/nginx/sites-enabled/

After you make changes, you can reload configuration:

# service nginx reload


Bump version in package.json and create new tag.

Add the remote to your own local repo:

$ git remote add prod

Then you can git push prod. There's a post-receive hook that updates the filesystem on the droplet and runs the grunt build task that minifies code and copies files from lib to www.


In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

To help keep a consistent style, we also recommend using EditorConfig.


Released into the public domain (per CC0).

Something went wrong with that request. Please try again.