An simple open source poll website hosted on Cloudflares Workers and Cloudflare Durable Objects.
View Demo
[Animated gif of somebody using the website]
This project was created for an event at my work, LearningWell, where we needed a way to ask the audience questions and gather feedback. Since we only have this type of event twice a year, subscribing to an existing solution seemed wasteful. After three late nights, PollWell was born. It is super simple and includes only the features we needed.
- Hosted on the free tier of Cloudflare Workers platform.
- Can be hosted on your Cloudflare account with your own domain name or use my publicly hosted version.
- Easy and straightforward.
- Great for live streams, company events, or any situation where you want to ask the audience something or collect feedback.
- Scales very well, capable of handling an unlimited number of poll "events" simultaneously (limited by Cloudflare's datacenters capacity).
You can use our publicly hosted service at pollwell.se. Simply choose a unique name and navigate to pollwell.se/<uniquename> to create your own poll.
Alternatively, to get a local copy up and running, follow these simple steps:
This is an list of things you need to run this code.
- An Cloudflare account (Workers free plan is ok)
- node
- npm
- Login to Cloudflare Workers
npx wrangler login
- Clone the repo
git clone https://github.com/webjocke/pollwell.git
- Install NPM packages
npm install
- Rename
wrangler.example.jsonctowrangler.jsoncmv wrangler.example.jsonc wrangler.jsonc
- Start the development server
npx wrangler dev
- Deploy the project
npx wrangler deploy
To use the application, navigate to localhost:8787 in your browser.
localhost:8787/<some id>: For people in the audience to connect to the event associated with that ID. This ID can later have any number of polls. The audience can go to the next poll by clicking the link at the bottom or by reloading the page.localhost:8787/<some id>?admin: Admin page to configure and add different polls. The admin can select which poll should be active and modify the polls.localhost:8787/<some id>?result: View the result of the currently active poll. This page updates automatically every 5 seconds to show new data.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the Unlicense License. See LICENSE.txt for more information.
Joakim Johansson - @webjocke