What's in the box.
Poli React is a feature-rich Political Campaign web application built as a fully functional React 18 app using Vite and Bootstrap 5. It ships with 24+ page-level components, a candidates showcase, a campaign fundraising module with cart and checkout, a blog module, all built with modern functional React and zero class components.
Built for React developers delivering political campaign and election sites and applications. The codebase uses hooks exclusively — useState, useEffect, useContext, useRef, and custom hooks for state management and side effects. Every UI section is an isolated, reusable component. Swap the static JSON data sources for any REST API or headless CMS and the UI layer is immediately production-ready.
Everything in the Package
- 24+ page-level React components with React Router v6 client-side routing
- React 18 with Vite — fast HMR dev server and optimised production build out of the box
- React Router v6 — client-side routing with lazy-loaded page components via React.lazy()
- Bootstrap 5 — responsive grid and utility classes, no jQuery dependency
- React Context and useReducer for global state management (cart, filters, UI state)
- React Hook Form — field validation, error messages, and submission state on all forms
- Swiper React — touch-friendly carousels via SwiperSlide components
- All data sourced from typed JSON files in src/data/ — swap to fetch() or axios for live API
- Retina-ready, fully responsive from 320px to 1920px+
- ESLint configured — Airbnb ruleset with React Hooks plugin
- React Helmet Async — per-route title and meta description for SEO
- PropTypes defined on every component for clear prop contracts
Component Architecture
- Page components map 1:1 to routes — each in its own file under src/pages/
- Shared components: Navbar, Footer, BackToTop, and feature-specific cards and widgets
- Custom hooks encapsulate side effects and shared logic — separate from JSX templates
- React.lazy() and Suspense applied to secondary page bundles — code-split on route change
- CartContext (or FilterContext) wraps the router at root level — state accessible on every route
- useReducer manages complex state (cart, multi-step forms) — predictable action/state flow
- Folder structure: src/pages/, src/components/, src/hooks/, src/context/, src/data/
All 24 Pages
- /home-v1 — v5 — Five distinct hero and campaign showcase layouts
- /about — Candidate story and political mission
- /donation-grid — Campaign and fundraising archive
- /donation-details — Individual campaign page
- /story-grid — Community impact story archive
- /story-details — Individual impact story page
- /shop-left — Campaign shop with left sidebar
- /shop-right — Campaign shop with right sidebar
- /order-details — Order confirmation and tracking
- /wishlist — Saved causes and products
- /blog-left — Blog with left sidebar
- /blog-right — Blog with right sidebar
- /contact — Contact form and volunteer enquiry
Key Features
- 24 Fully Designed HTML5 Pages across home, candidates, donations, stories, shop, blog, and account
- 5 Unique Home Layouts — distinct hero styles and campaign showcase arrangements
- Bootstrap — responsive, mobile-first grid system
- Campaign Donation Archive & Detail — fundraising listing and individual campaign donation pages
- Impact Story Archives & Detail — voter and community impact story pages
- Shop with Sidebar Variants — campaign merchandise shop with left and right sidebars
- Order Detail Pages — order confirmation and tracking
- Wishlist — save and track favourite causes or products
- Blog with Sidebar Variants — campaign news with left and right sidebar options
- Swiper Carousel — featured candidate and campaign story sliders
- Sticksy Sticky Sidebar — persistent navigation and donation sidebar
- Magnific Popup Lightbox — full-screen campaign and story image popup
Performance and SEO
- React Helmet Async sets per-route title and meta description for SEO on every page component
- React.lazy() and Suspense code-split secondary route bundles — home route loads fast
- Vite production build applies Rollup tree-shaking, chunk splitting, and asset hashing automatically
- All images carry descriptive alt props meeting WCAG 1.1.1
- Google Fonts loaded with font-display: swap to prevent invisible-text flash
- Lighthouse-optimised component structure — no unnecessary re-renders via memo and useCallback where needed
Use Cases
- Political Campaign Organisations: Launch a fast, interactive React SPA without building from scratch
- Frontend Developers: Hooks-first architecture with useState, useContext, and custom hooks — extend confidently
- Freelancers and Agencies: Deliver a polished political campaign site to clients using React with minimal setup time
- Startups: Production-ready Vite build, React Router v6, and component tree ready to wire to any REST API
Credits and Dependencies
- React 18 — MIT License
- Vite — MIT License
- React Router v6 — MIT License
- Bootstrap 5 — MIT License
- React Hook Form — MIT License
- React Helmet Async — MIT License
- Swiper React — MIT License
- Swiper — MIT License
- Magnific — MIT License
- Lightbox — MIT License
- Font Awesome 6 — Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT
- Google Fonts — SIL Open Font License
- Demo images: Unsplash — Unsplash License (free for commercial use, no attribution required)
- Demo images: Freepik — Freepik License (free for commercial use with attribution)
- All demo images are for preview purposes only and are NOT included in the download.
Poli in other formats
The same design, built natively in each stack. Every format is its own product with its own demo, documentation, download and reviews.
-
PoliHTML5
$11
$49View HTML5 → -
This page PoliReact $22
$49You are viewing it -
PoliVue.js
$23
$49View Vue.js → -
PoliAngular
$20
$49View Angular → -
PoliWordPress
$66
$106View WordPress → -
PoliPHP
$21
$49View PHP → -
PoliAI Smart Website
$1,099
$1,209View AI Smart Website → -
Save 20%
Developer bundleAll 6 code formats
$130.40
$163View bundle →
What's changed.
- React 18 with Vite build tooling and fast HMR
- 24+ page-level components with React Router v6 client-side routing
- React Context and useReducer for global state management
- React Hook Form with field validation on all forms
- React.lazy() and Suspense route-level code splitting
- React Helmet Async per-route SEO meta tags
- ESLint with Airbnb ruleset and React Hooks plugin configured
Need Poli installed or customized?
Fixed prices, done by the developers who built this template. Pick a service and we take it from there.
- Theme installation
- Color scheme customization
- Speed optimization
- 1-hour web development








Reviews
There are no reviews yet.