Pollarise: A Real-Time Social Polling Platform
Building the frontend for a fast-interaction polling platform from Figma designs, with local-first updates for high-frequency voting.

Pollarise is a real-time social polling platform focused on fast interactions and community engagement — think quick opinion polls with live vote counts and comments, built to stay responsive under high-frequency activity.
Problem #
Polling apps live or die on perceived speed. If a vote or comment takes a visible beat to register, the interaction feels broken, and casual users bounce before engaging a second time. The brief was to turn a set of Figma designs into a production frontend that could handle bursts of concurrent votes and comments without the UI ever feeling like it's waiting on the network.
Solution #
The frontend is built on Next.js with Tailwind CSS, talking to a FastAPI backend. The key architectural decision was local-first updates: a vote or comment is applied to local state immediately, then reconciled with the server response in the background, rather than waiting on a round-trip before the UI reflects the action.
function useOptimisticVote(pollId: string) {
const [localTally, setLocalTally] = useState<Tally | null>(null);
const vote = async (optionId: string) => {
// Apply immediately — the user sees their vote instantly.
setLocalTally((prev) => applyVote(prev, optionId));
// Reconcile with the server in the background.
const confirmed = await api.vote(pollId, optionId);
setLocalTally(confirmed);
};
return { localTally, vote };
}Architecture #
The client applies a vote or comment to local state immediately, sends it to the FastAPI backend, and reconciles once the backend confirms the persisted tally — so the UI never waits on the round trip to feel responsive.
Tech stack #
| Layer | Choice | Why |
|---|---|---|
| Frontend | Next.js | Fast static shell, React Server Components for the feed |
| Styling | Tailwind CSS | Rapid, consistent implementation straight from Figma |
| Backend | FastAPI | Lightweight, fast async Python API for vote/comment endpoints |
| Design | Figma | Source of truth for every screen and interaction state |
Problems solved #
- Built the frontend architecture directly from Figma designs
- Created smooth real-time interactions for voting and comments
- Implemented an optimized UI for high-frequency user activity
- Improved perceived performance using local-first updates
- Delivered a scalable social engagement experience
Lessons learned #
The easy part is applying the update locally. The part worth planning up front is what happens when the server disagrees with the optimistic state — a vote gets rejected, a comment fails moderation. Deciding that reconciliation strategy early avoided a rewrite later.
Links #
- Live site: pollarise.com
Related content
Teamenoch.com
Modern website platform for HVAC, electrical, plumbing, and roofing service businesses.
Pollarise: Building an Interactive Social Polling Platform for Real-Time Community Engagement
A scalable SaaS polling platform on Next.js, Node.js and MongoDB, built to turn opinion-sharing into a fast, social, mobile-first experience rather than a survey form.
Photo Pasal Ecommerce Platform
Custom photo printing ecommerce platform for frames, mugs, t-shirts, and personalized products.