Appliance Repair Service Platform
Features
Dynamic Appliance Support: Browse and get help for refrigerators, washers, dryers, dishwashers, ovens, microwaves, cooktops, and more.
Find Local Providers: Enter your ZIP code or select your state to view local repair listings.
Problem & Troubleshooting Guides: Step-by-step guides for common appliance issues, including DIY tips and when to call a pro.
SEO Optimized: Each page includes dynamic SEO metadata for better search engine visibility.
Reusable UI Components: Modular React components for listings, CTAs, features, and more.
Content Management: All appliance, problem, and troubleshooting content is managed centrally in JSON for easy updates.
Project Overview
A modern, content-driven Next.js platform for connecting users with local appliance repair professionals and providing comprehensive troubleshooting guides for major home appliances. Built as a freelance project by Jiwan Ghosal at Appliance Repairly.
Architecture
This is a Next.js 15 application with React 19, utilizing a content-management driven approach where all appliance data, problems, and troubleshooting guides are centrally managed through JSON files for easy updates and scalability.
Technology Stack
Frontend Framework:
- Next.js 15.2.4 - React framework with SSR/SSG capabilities
- React 19.1.0 - Latest React with concurrent features
- Tailwind CSS 4.1.4 - Utility-first CSS framework
- Sass 1.86.3 - CSS preprocessor for advanced styling
Development & Build Tools:
- ESLint 9.24.0 - Code linting and quality
- PostCSS 8.5.3 - CSS processing pipeline
- Autoprefixer - Automatic vendor prefixes
- Bundle Analyzer - Performance optimization
- Next Sitemap - Automatic sitemap generation
Utilities & Libraries:
- Axios 1.9.0 - HTTP client for API calls
- Lodash 4.17.21 - JavaScript utility library
- Prop Types - Runtime type checking
Root Directory Structure
appliance2025/
βββ src/ # Main source code
β βββ components/ # Reusable UI components
β βββ pages/ # Next.js pages (routing)
β βββ utils/ # Utilities and content management
β βββ wrapper/ # Layout wrappers
β βββ hooks/ # Custom React hooks
β βββ context/ # React context providers
β βββ apis/ # API integration layer
β βββ lib/ # External library configurations
β βββ assets/ # Static assets
β βββ styles/ # Global styles and SCSS
βββ public/ # Public static files
β βββ favicon.ico
β βββ sitemap.xml
β βββ robots.txt
βββ .next/ # Next.js build output
βββ node_modules/ # Dependencies
βββ package.json # Project dependencies and scripts
βββ next.config.js # Next.js configuration
βββ next-sitemap.config.mjs # Sitemap generation config
βββ postcss.config.mjs # PostCSS configuration
βββ jsconfig.json # JavaScript/paths configuration
βββ build-deploy.sh # Deployment script
βββ bitbucket-pipelines.yml # CI/CD pipeline
βββ .env # Environment variables
βββ README.md # Project documentationDetailed Source Structure
Pages Architecture (src/pages/)
Next.js file-based routing with dynamic and static pages:
pages/
βββ _app.js # Global app wrapper
βββ _document.js # Custom document structure
βββ _index.js # Index redirect
βββ 404.js # Custom 404 page
βββ home/ # Homepage components
βββ [repairSlug]/ # Dynamic appliance repair pages
β βββ index.js # Main appliance page
β βββ [problemSlug].js # Specific problem pages
β βββ [...troubleshootingSlug].js # Nested troubleshooting guides
βββ location/ # Location-based pages
β βββ [state].js # State-specific listings
β βββ [state]/[city].js # City-specific listings
βββ l/ # Short URL location pages
βββ find-repair/ # Repair finder functionality
βββ services/ # All services overview
βββ contact/ # Contact page
βββ about/ # About page
βββ blog/ # Blog section
βββ api/ # API routes
β βββ location.js # Location API
β βββ contact.js # Contact form API
β βββ sitemap.js # Dynamic sitemap
βββ privacy-policy/ # Legal pages
βββ terms-of-service/
βββ ccpa-notice/
βββ brand-disclaimer/Components Library (src/components/)
Modular, reusable React components:
components/
βββ index.js # Component exports
βββ Autocomplete/ # Location autocomplete
βββ BlogCard/ # Blog post cards
βββ Breadcrumb/ # Navigation breadcrumbs
βββ Button/ # Reusable button components
βββ Checkbox/ # Form checkbox inputs
βββ ConfirmationPopup/ # Modal confirmations
βββ ContactUsForm/ # Contact form component
βββ Coverage/ # Service coverage display
βββ Cta/ # Call-to-action components
βββ Features/ # Feature listing components
βββ Footer/ # Site footer
βββ GoogleMap/ # Map integration
βββ Header/ # Site header and navigation
βββ HeroHome/ # Homepage hero section
βββ Image/ # Optimized image component
βββ Input/ # Form input components
βββ ListingCard/ # Provider listing cards
βββ Loader/ # Loading indicators
βββ Modal/ # Modal dialog component
βββ Pagination/ # Results pagination
βββ ProviderCard/ # Service provider cards
βββ Rating/ # Star rating component
βββ SearchBox/ # Search functionality
βββ SeoHead/ # SEO meta tags
βββ ServiceCard/ # Service offering cards
βββ Svg/ # SVG icon components
βββ Tag/ # Content tags
βββ TestimonialCard/ # Customer testimonials
βββ Text/ # Typography components
βββ TrustedBy/ # Brand trust indicators
βββ ZipCode/ # ZIP code input
βββ [Additional components]/Content Management (src/utils/Content/)
Centralized content management system:
utils/Content/
βββ PageContent.json # Main appliance content database
β βββ APPLIANCES # All appliance types and problems
β βββ PROBLEMS # Common appliance issues
β βββ TROUBLESHOOTING # Step-by-step guides
βββ BlogContent.json # Blog posts and articles
βββ LocationContent.js # Cities, states, service areas
βββ index.js # Content utility functionsUtilities & Configuration (src/utils/)
utils/
βββ Content/ # Content management (above)
βββ SEOMapping.js # Dynamic SEO metadata
βββ States.js # US states data
βββ CommonUtils.js # Shared utility functions
βββ Constant.js # Application constantsLayout Wrappers (src/wrapper/)
wrapper/
βββ index.js # Wrapper exports
βββ AppLayoutWrapper/ # Main app layout
β βββ index.js
β βββ AppLayoutWrapper.js
βββ PageWrapper/ # Individual page wrapper
βββ index.js
βββ PageWrapper.jsAPI Integration (src/apis/)
apis/
βββ index.js # API exports
βββ commonAPI.js # Shared API functions
βββ [additional API modules]Custom Hooks (src/hooks/)
hooks/
βββ [Custom React hooks for:
βββ - Location detection
βββ - Form handling
βββ - SEO management
βββ - Content fetching
βββ - State management]Key Features & Functionality
Content-Driven Architecture
- JSON-based content management for easy updates without code changes
- Dynamic page generation for appliances, problems, and troubleshooting
- SEO-optimized content with dynamic meta tags and structured data
Location-Based Services
- ZIP code lookup for local service providers
- State and city pages for local SEO
- Google Maps integration for provider locations
- Autocomplete location search
Appliance Support System
- Comprehensive appliance database (refrigerators, washers, dryers, etc.)
- Problem categorization with symptom-based navigation
- Step-by-step troubleshooting guides
- When to call a professional recommendations
SEO & Performance
- Dynamic sitemap generation with next-sitemap
- Optimized meta tags for each page type
- Bundle analysis for performance monitoring
- Server-side rendering for better SEO
User Experience Features
- Responsive design with Tailwind CSS
- Fast search and filtering
- Contact forms with validation
- Provider ratings and reviews
- Blog system for content marketing
Development Workflow
Available Scripts
# Development
npm run dev # Start development server
npm run debug # Debug mode with Node inspector
# Building
npm run build # Production build
npm run start # Start production server
npm run postbuild # Generate sitemap after build
# Quality & Analysis
npm run lint # Run ESLint
npm run analyze # Bundle size analysis
# Deployment
npm run deploy # Run deployment script
sh build-deploy.sh # Manual deploymentEnvironment Setup
- Prerequisites: Node.js 18+, npm
- Installation:
npm install - Environment: Configure
.envfile - Development:
npm run dev - Access:
http://localhost:3000
Content Management
Adding New Appliances
Edit src/utils/Content/PageContent.json:
{
"APPLIANCES": {
"new_appliance_repair": {
"title": "New Appliance Repair Services",
"subTitle": "Description...",
"topics": [
// Content structure
]
}
}
}Adding New Problems
Add problem definitions with troubleshooting steps and when to call professionals.
SEO Management
Update src/utils/SEOMapping.js for new pages:
export const SEO_MAPPING = {
'/new-page': {
title: 'Page Title',
description: 'Meta description',
keywords: 'relevant, keywords'
}
};Deployment & CI/CD
Bitbucket Pipelines
- Automated builds on code push
- Environment-specific deployments
- Quality checks and testing
Build Process
- Dependency installation
- ESLint code quality checks
- Next.js production build
- Sitemap generation
- Bundle analysis (optional)
- Deployment to hosting
Performance Optimizations
Next.js Features
- Static Site Generation (SSG) for content pages
- Server Side Rendering (SSR) for dynamic content
- Image optimization with Next.js Image component
- Code splitting for optimized loading
SEO Optimizations
- Dynamic meta tags based on content
- Structured data for rich snippets
- Automatic sitemap generation
- Optimized URL structure
Business Logic
Service Provider Connection
- Lead generation through ZIP code forms
- Local provider matching
- Phone call routing for immediate service
- Contact form submissions
Content Strategy
- Problem-solution focused content structure
- Local SEO through location pages
- Educational content to build trust
- Brand disclaimers for legal compliance
Technology Highlights
Modern Stack Benefits
- React 19 with latest concurrent features
- Next.js 15 with improved performance
- Tailwind CSS 4 for rapid UI development
- JSON-driven content for non-developer updates
Scalability Features
- Component-based architecture
- Content separation from code
- API-ready structure for future integrations
- Modular design for easy feature additions
Project: Appliance Repair Service Platform
Developer: Jiwan Ghosal
Website: Appliance Repairly
Framework: Next.js 15 + React 19
Styling: Tailwind CSS 4
Content Management: JSON-based system











