All projects

OnDemand Restoration

Marketing, lead-generation and site modernization for a Restaurant services company.

Next.jsReactTypeScriptTailwind CSS
Preview of OnDemand Restoration

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 points

  • Service detail pages (/services/[slug]) — Per-service pages with service types, equipment we service (with image support), brands carousel, common issues, FAQs, and a CTA section

  • About page (/about) — Company story, team values, stats, and hero with video support

  • Contact 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