julianfbeck / openpoll.app

OpenPoll is a free and open-source platform to create and share polls.

Home Page:https://openpoll.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenPoll

OpenPoll

OpenPoll is a free and open-source platform to create and share polls. Use moderation features to share your polls during a live event or meetings.

OpenPoll uses SQLite, Server Sent Events, and Redis to create fast real-time polls. Build on top of TRPC, Shadcn/UI and litestream/turso.

View Example Poll: https://openpoll.app/poll/trU02FHXws

OpenPoll

Tech Stack

OpenPoll is build on top of Astro. It uses the following technologies to create a combination of a static and dynamic website.

  • Astro as the main framework.
  • React for the dynamic parts of the website.
  • TRPC for the API. Trpc is a framework that allows you to create a type-safe API. In OpenPoll TRPC APIs get called from Astro componentens on the server side and from react components on the client side.
  • shadcn/ui - Beautifully designed components built with Radix UI and Tailwind CSS.
  • Tailwind CSS for styling.
  • Drizzle as the DB-ORM
  • SQLite as the database. The DB can be hosted on Turso or on your own server using litestream and the tiny stack. See https://logsnag.com/blog/the-tiny-stack (The Tiny Stack (Astro, SQLite, Litestream))
  • Redis is used for Rate Limiting and PubSub

Self Hosting

OpenPoll can be self-hosted. You can decide to either use Sqlite locally backed by Litestream or use Turso. To configure OpenPoll to use Litestream uncomment the specific lines inside the db.ts file and add --use-litestream to the Dockerfile run.sh script.

Currently im running the OpenPoll on a Fly.io instance. For more information on how to deploy OpenPoll to Fly.io see the Fly.io Docs

About

OpenPoll is a free and open-source platform to create and share polls.

https://openpoll.app


Languages

Language:TypeScript 75.2%Language:Astro 16.0%Language:MDX 3.4%Language:JavaScript 2.2%Language:Dockerfile 1.2%Language:CSS 1.1%Language:Shell 0.8%