Skip to content

omerakben/north-glass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

North Glass NC

North Glass Logo

Premium Glass & Aluminum Solutions in North Carolina

🌐 Live Website β€’ πŸ“§ Contact β€’ πŸ’Ό Request Quote

Next.js TypeScript Tailwind CSS Deployed on Vercel


πŸ“– Overview

North Glass NC is a modern, high-performance website showcasing premium glass and aluminum installation services across North Carolina. The site features a beautiful, responsive design with smooth animations, comprehensive service pages, case studies, and an integrated contact system.

🎯 Key Features

  • 🎨 Modern UI/UX - Clean, professional design with smooth animations using Motion
  • πŸ“± Fully Responsive - Optimized for all devices from mobile to desktop
  • πŸš€ High Performance - Built with Next.js 15 App Router for optimal speed
  • πŸ“§ Contact System - Integrated email functionality via Google Workspace SMTP
  • πŸ–ΌοΈ Image Gallery - Dynamic galleries with before/after sliders
  • πŸ“ Blog System - SEO-optimized blog with dynamic routing
  • πŸ’Ό Case Studies - Showcase of completed projects with rich details
  • πŸ” SEO Optimized - Comprehensive metadata, sitemaps, and structured data
  • πŸ“Š Analytics - Vercel Analytics integration for insights
  • β™Ώ Accessible - WCAG compliant with semantic HTML

πŸ› οΈ Technology Stack

Core Framework

Styling & UI

Email & Communication

  • Nodemailer 7.0 - Email sending
  • Google Workspace SMTP - Email delivery

Development Tools

Deployment & Analytics


πŸ“ Project Structure

north-glass/
β”œβ”€β”€ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ (site)/                   # Main site layout
β”‚   β”‚   β”œβ”€β”€ _components/          # Shared components
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Header.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Gallery.tsx
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   └── page.tsx              # Homepage
β”‚   β”œβ”€β”€ about/                    # About page
β”‚   β”œβ”€β”€ blog/                     # Blog section
β”‚   β”‚   β”œβ”€β”€ [slug]/               # Dynamic blog posts
β”‚   β”‚   └── page.tsx              # Blog index
β”‚   β”œβ”€β”€ case-studies/             # Portfolio case studies
β”‚   β”‚   β”œβ”€β”€ [slug]/               # Individual case studies
β”‚   β”‚   └── page.tsx              # Case studies index
β”‚   β”œβ”€β”€ contact/                  # Contact page
β”‚   β”œβ”€β”€ request-quote/            # Quote request form
β”‚   β”œβ”€β”€ services/                 # Service pages
β”‚   β”‚   β”œβ”€β”€ frameless-glass-shower-doors/
β”‚   β”‚   β”œβ”€β”€ aluminum-windows/
β”‚   β”‚   β”œβ”€β”€ mirrors/
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ api/                      # API routes
β”‚   β”‚   β”œβ”€β”€ contact/              # Contact form handler
β”‚   β”‚   β”œβ”€β”€ quote/                # Quote form handler
β”‚   β”‚   └── test-email/           # Email config tester
β”‚   β”œβ”€β”€ layout.tsx                # Root layout
β”‚   β”œβ”€β”€ sitemap.ts                # Dynamic sitemap
β”‚   └── globals.css               # Global styles
β”œβ”€β”€ lib/                          # Utility libraries
β”‚   β”œβ”€β”€ blogData.ts               # Blog content data
β”‚   β”œβ”€β”€ galleryData.ts            # Gallery images data
β”‚   β”œβ”€β”€ imageData.ts              # Image collections
β”‚   └── email.ts                  # Email utilities
β”œβ”€β”€ public/                       # Static assets
β”‚   β”œβ”€β”€ images/                   # Image assets
β”‚   β”‚   β”œβ”€β”€ frameless-glass-shower-doors/
β”‚   β”‚   β”œβ”€β”€ aluminum-windows/
β”‚   β”‚   β”œβ”€β”€ mirrors/
β”‚   β”‚   └── ...
β”‚   └── favicon-NG/               # Favicon variants
β”œβ”€β”€ scripts/                      # Utility scripts
β”‚   β”œβ”€β”€ normalize-incoming.mjs    # Image normalization
β”‚   β”œβ”€β”€ generate-image-manifest.mjs
β”‚   β”œβ”€β”€ move-images-from-manifest.mjs
β”‚   └── auto-categorize.mjs       # AI-powered categorization
β”œβ”€β”€ .env.local                    # Environment variables (local)
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── tailwind.config.ts

πŸš€ Getting Started

Prerequisites

  • Node.js 22.x or higher
  • npm, yarn, pnpm, or bun
  • Google Workspace account (for email functionality)

Installation

  1. Clone the repository

    git clone https://github.com/omerakben/north-glass.git
    cd north-glass
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file in the root directory:

    # SMTP Configuration (Google Workspace)
    SMTP_HOST=smtp.gmail.com
    SMTP_PORT=465
    [email protected]
    SMTP_PASS=your_app_password_here
    
    # Email Recipients
    [email protected]
    [email protected]

    Note: Generate a Google Workspace app password at myaccount.google.com/apppasswords

  4. Run the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000


πŸ”§ Available Scripts

Script Description
npm run dev Start development server with Turbopack
npm run build Build for production
npm run start Start production server
npm run lint Run ESLint
npm run typecheck Run TypeScript type checking
npm run images:normalize Normalize incoming images
npm run images:manifest Generate image manifest
npm run images:move Move images from manifest
npm run images:auto Auto-categorize images with AI

🌍 Environment Variables

Required for Production

Variable Description Example
SMTP_HOST SMTP server hostname smtp.gmail.com
SMTP_PORT SMTP server port 465
SMTP_USER Email account username [email protected]
SMTP_PASS App password for email your_app_password
LEADS_TO Recipient for lead emails [email protected]
LEADS_FROM Sender email address [email protected]

Setting Up Email

  1. Enable 2-Factor Authentication on your Google Workspace account
  2. Generate an app password at myaccount.google.com/apppasswords
  3. Use the 16-character app password as SMTP_PASS

Testing Email Configuration

# Test SMTP connection (without sending)
curl -X POST http://localhost:3000/api/test-email

# Test contact form
curl -X POST http://localhost:3000/api/contact \
  -F "name=Test User" \
  -F "[email protected]" \
  -F "phone=984-900-6201" \
  -F "message=Testing email"

πŸ“¦ Deployment

Deploy to Vercel (Recommended)

  1. Push code to GitHub

    git push origin main
  2. Import to Vercel

    • Go to vercel.com/new
    • Import your repository
    • Configure environment variables
    • Deploy!
  3. Set Environment Variables

    In Vercel Dashboard β†’ Settings β†’ Environment Variables, add:

    • SMTP_PASS (your Google app password)

    Other variables use defaults from the code.

  4. Configure Production Branch

    • Settings β†’ Git β†’ Production Branch: main

Deploy to Other Platforms

The site can be deployed to any platform supporting Next.js:

  • Netlify: Use Next.js plugin
  • AWS Amplify: Configure build settings
  • Self-hosted: Use npm run build && npm run start

πŸ”„ Development Workflow

Branch Strategy

  • main - Production branch (clean, deployed to production)
  • develop - Development branch (includes dev files and documentation)

Making Changes

  1. Start from develop branch

    git checkout develop
    git pull origin develop
  2. Create feature branch (optional)

    git checkout -b feature/your-feature-name
  3. Make changes and test

    npm run dev
    npm run lint
    npm run typecheck
  4. Commit changes

    git add .
    git commit -m "feat: your feature description"
  5. Push to develop

    git push origin develop
  6. Merge to main for production

    git checkout main
    git merge develop
    git push origin main

🎨 Services Offered

  • Frameless Glass Shower Doors - Custom designs for modern bathrooms
  • Aluminum Windows - Energy-efficient window installations
  • Mirrors - Custom mirrors for residential and commercial spaces
  • Glass Office Doors - Professional interior glass solutions
  • Commercial Storefronts - High-impact commercial glass systems
  • Sliding Glass Patio Doors - Indoor-outdoor living solutions
  • Staircase Glass Railings - Modern safety with elegance
  • Window Replacement - Energy-efficient upgrades
  • Architectural Design Services - Custom glass design solutions
  • Pergolas - Outdoor living space enhancements

πŸ“Š Performance

  • Lighthouse Score: 95+ across all metrics
  • Core Web Vitals: Excellent
  • Static Generation: 43 pages pre-rendered at build time
  • Image Optimization: Automatic with Next.js Image component
  • Code Splitting: Automatic route-based splitting

🀝 Contributing

This is a private project for North Glass NC. For feature requests or bug reports, please contact the development team.


πŸ“ License

Β© 2025 North Glass NC. All rights reserved.

This project is proprietary and confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.


πŸ‘¨β€πŸ’» Built By

Omer Akben

Full-stack developer specializing in modern web applications, AI integration, and e-commerce solutions.

  • 🌐 Website: omerakben.com
  • πŸ’Ό Portfolio: Custom web applications, React/Next.js development
  • πŸ› οΈ Technologies: Next.js, React, TypeScript, Node.js, AI/ML integration

Development Stack

  • Design & Development: Custom Next.js application with TypeScript
  • UI/UX Design: Modern, responsive design with Tailwind CSS
  • Email Integration: Google Workspace SMTP configuration
  • SEO Optimization: Comprehensive metadata and structured data
  • Performance: Optimized for Core Web Vitals
  • Analytics: Vercel Analytics integration

πŸ“ž Contact

North Glass NC

  • πŸ“± Phone: (984) 900-6201
  • πŸ“§ Email: [email protected]
  • 🌐 Website: northglassnc.com
  • πŸ“ Service Area: Raleigh, Durham, Cary, Chapel Hill, and surrounding areas

Built with ❀️ by Omer Akben

Crafted for excellence, designed for performance

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5