A tool for playing pointing poker. No login, no registration, just pure agile bliss.
- Simple and intuitive interface
- Real-time collaboration
- Anonymous participation
- Host it yourself or use the hosted version
- Create a new session with the "Create Session" button
- Enter your name (optional)
- Invite your friends to join the session using the unique session ID
- Vote for the Fibonacci number of your choice
- View the results
- Node.js 24+
- npm
npm install
npm run build
npm startThe app will be available at http://localhost:3000.
npm run devRuns 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.
| 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 |
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.
| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Server listen port |
-
Clone the repo and install production dependencies:
npm install --production
-
Build:
npm run build
-
Start:
npm start
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"]- 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.0by 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.