Skip to content

BearAlliance/pointr

Repository files navigation

Pointr

CI

A tool for playing pointing poker. No login, no registration, just pure agile bliss.

Features

  • Simple and intuitive interface
  • Real-time collaboration
  • Anonymous participation
  • Host it yourself or use the hosted version

Use

  1. Create a new session with the "Create Session" button
  2. Enter your name (optional)
  3. Invite your friends to join the session using the unique session ID
  4. Vote for the Fibonacci number of your choice
  5. View the results

Local Development

Prerequisites

  • Node.js 24+
  • npm

Setup

npm install
npm run build
npm start

The app will be available at http://localhost:3000.

Dev Server

npm run dev

Runs the Vite dev server (with HMR) on port 5173, the backend on port 3000, and watches for TypeScript changes. Open http://localhost:5173 during development.

Scripts

Command Description
npm install Install dependencies
npm run build Compile TypeScript to dist/
npm start Start the server
npm run dev Dev server with auto-rebuild

Deployment

Pointr is a single Node.js process serving both the API (via Socket.IO) and static frontend files. No external database is required — session data is stored in memory.

Warning

Because there is no database, all session data will be lost when the server restarts. This is generally fine for typical use, as sessions are short-lived and users can simply create a new session if needed.

Environment

Variable Default Description
PORT 3000 Server listen port

Steps

  1. Clone the repo and install production dependencies:

    npm install --production
  2. Build:

    npm run build
  3. Start:

    npm start

Docker

FROM node:24-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
RUN npm prune --production
EXPOSE 3000
CMD ["npm", "start"]

Notes

  • Session data lives in memory and is lost on restart. This is fine for typical use — sessions are short-lived.
  • The server binds to 0.0.0.0 by default, so it is accessible on all network interfaces.
  • For production, run behind a reverse proxy (e.g., nginx, Caddy) that handles TLS. Ensure the proxy is configured to support WebSocket connections for Socket.IO.

About

Pointing poker for the rest of us

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors