OnDemand Restoration
Marketing, lead-generation and site modernization for a Restaurant services company.
Business website and CMS for OnDemand Restaurant Service — Oklahoma's commercial restaurant equipment repair company. Built with Next.js 16 App Router, React 19, TypeScript, Tailwind CSS v4, PostgreSQL (Neon), and Vercel Blob storage.
Features
Public Website
Homepage — Hero section with video/image support (random video selection per load), services grid, testimonials, why choose us, and contact CTA
Services listing (
/services) — Dynamic grid pulled from the database, showing all enabled services with hero images, descriptions, and feature bullet pointsService detail pages (
/services/[slug]) — Per-service pages with service types, equipment we service (with image support), brands carousel, common issues, FAQs, and a CTA sectionAbout page (
/about) — Company story, team values, stats, and hero with video supportContact page (
/contact) — Contact form wired to the CRM inbox with email notifications
Admin CMS (/admin)
Protected dashboard for managing all site content. Login at /admin/login.
Section Description Dashboard Overview and quick links Page Content Edit Homepage, About, Contact, Footer, and Services Listing page content including hero videos, text, images, and JSON-structured sections Services Add, edit, enable/disable, and reorder service pages. Each service has full content editing including equipment, brands, FAQs, common issues, and listing card snippets Feature Flags Toggle individual page sections on/off without code changes Media Library Upload and manage images and videos (MP4, WebM, MOV) stored on Vercel Blob. Client-side direct upload bypasses serverless size limits Inbox View, read, archive, and delete contact form submissions Google Reviews Configure Google Places API integration to display live reviews on the homepage. Supports min rating filter, max count, and TTL-based caching Email Settings Configure Resend or SMTP for contact form notifications and confirmations. API keys stored AES-256-GCM encrypted Users Add and manage admin users with role-based access (Admin / Editor) Account Settings Update your own name, email, and password
Integrations
Google Tag Manager — loaded in the root layout
Vercel Speed Insights — Core Web Vitals tracking
Vercel Blob — Media storage with direct client-side uploads
Neon PostgreSQL — Serverless Postgres via Prisma ORM
Resend / SMTP — Transactional email for contact form