Skip to content
A progress web app built to demonstrate Dat multi-writer support (hyperdrive+hyperdb) as a web backend
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
stores 🎍🐝 Updated with Glitch May 14, 2018




Dat Shopping List is a "Progressive Web App" built to demonstrate how to use the new "multiwriter" capabalities that are being added to the Dat Project.

The demo is a simple "to do list" app, in the spirit of the TodoMVC project.

You can run it on any modern web browser. Also, you can run it on your mobile phone (iOS and Android), and it should work offline as well as online.

Check out the blog post:

Quick Usage Gif

Video Walkthrough

Here is a short (2.5 minute) walkthrough of the demo.

Quick Deploy / Free Hosting Options

The demo is very easy to deploy, as it is self-contained, and requires no storage.

There are many ways for you to run your own instance. You may want to run your own instance for privacy reasons, reliability reasons, or so you can customize it.


dat-shopping-list was developed on Glitch. Glitch is very nice. It is free, and it gives you a Node.js backend as well as an in-browser IDE with multi-user editing and debugging! Use the following link to fork your own copy of the Node.js gateway service and front-end user interface:

Remix on Glitch

Note: Occasionally, Glitch gets into a state where it can't read from the disk. One way to get going again is to run: rm -rf node_modules && npm install on the console.


The app can easily be deployed to Heroku, which offers either 550-1000 hours a month for free (sleeps after 30 minutes of inactivity).

Heroku Pricing

Deploy to Heroku


Zeit offers a free "OSS" plan that works with the Dockerfile. Once you are signed up and have the command line tool installed, you can deploy straight from the github repo:

now jimpick/dat-shopping-list

Note: If you use the OSS plan, the logs will be publicly available, which may not be what you want, as people will be able to see the keys of shopping lists that have been synced through the gateway, and they will be able to download the data. The logging could be changed to hide the keys.


The git repo includes a simple Dockerfile. There is also a Docker image published here:

If you have docker installed, you should be able to run it:

docker run -p 5000:5000 jimpick/dat-shopping-list

Several of the major cloud hosting companies offer a free tier or introductory offer where you can run Docker images.


The demo is published on npm:

You can try it out using npx:

npx dat-shopping-list

or you can install it globally and run it:

npm install -g dat-shopping-list


It should work on Mac and Linux. It hasn't been tested on Windows.



You can’t perform that action at this time.