Reflecto is a premium, professional platform for capturing data-driven feedback through secure, real-time polling. Built for modern teams who value precise, live data.
- Real-Time WebSocket Analytics: Watch poll responses come in live with millisecond precision.
- Anonymous & Authenticated Voting: Choose exactly how you collect data.
- Smart Expiry System: Set exact deadlines for polls to automatically lock.
- Advanced Dashboard: Access structured analytics, question-wise summaries, and participant device insights.
- Device & Browser Tracking: Know your audience with platform distribution charts (Desktop, Mobile, OS, Browsers).
- Frictionless Sharing: Generate unique, secure links to share your polls instantly.
- React (with Vite)
- Tailwind CSS v4 (with custom design system and OKLCH colors)
- Recharts (for beautiful, interactive data visualization)
- Framer Motion (for smooth animations)
- Lucide React (for icons)
- Node.js & Express
- MongoDB (with Mongoose)
- Socket.io (for real-time live updates)
- Redis (via
ioredisfor caching/sessions) - Zod (for schema validation)
- UA-Parser-JS (for device analytics)
The project is structured as a monorepo with separate frontend and backend directories:
reflecto/
├── frontend/ # Vite + React application
└── backend/ # Express API & Socket.io server
- Node.js (v18+ recommended)
- PNPM (v10+ used in the project)
- MongoDB & Redis instances running
- Navigate to the backend directory:
cd backend - Install dependencies:
pnpm install
- Create a
.envfile based on the environment variables needed (MongoDB URI, Redis config, JWT Secret, etc.). - Start the development server:
pnpm run dev
- Navigate to the frontend directory:
cd frontend - Install dependencies:
pnpm install
- Start the development server:
pnpm run dev
pnpm run dev: Starts the server withtsc-watchfor auto-reloading on TypeScript changes.pnpm run build: Compiles TypeScript to JavaScript in thedistfolder.pnpm run start: Runs the compiled server fromdist/server.js.
pnpm run dev: Starts the Vite development server.pnpm run build: Builds the application for production.pnpm run lint: Lints the project files.
This project is licensed under the ISC License.