Skip to content

willtmc/willmclemore.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Will McLemore - Personal Branding Website

A modern, professional personal branding website built with Next.js 15, TypeScript, Tailwind CSS, and deployed on Railway. Features a clean design, responsive layout, and powerful content management capabilities.

🎯 Current Status

βœ… Fully Deployed & Live

βœ… Recent Achievements (January 2025)

  1. Complete Contact Information Update

    • Updated email from will@willmclemore.com to will@mclemoreauction.com
    • Fixed social media handles (GitHub, Facebook, Instagram: willtmc, LinkedIn: willmclemore)
    • Added Facebook to social media links
  2. Custom Domain Setup

    • Migrated DNS from Hover.com to Cloudflare for better management
    • Successfully configured willmclemore.com with SSL certificates
    • Resolved Railway port routing issues (port 8080 configuration)
  3. Railway Production Deployment

    • Fixed health check failures by disabling Next.js standalone mode
    • Configured PostgreSQL database with proper migrations
    • Set up environment variables and monitoring
    • Established reliable CI/CD pipeline from GitHub
  4. Infrastructure Optimization

    • Database migrations working correctly
    • Health endpoints responding properly (/api/health)
    • Performance monitoring and error tracking in place

πŸš€ Features

Core Functionality

  • 5-Page Architecture: Home, About, Projects, Blog, Contact
  • "Bat Signal" System: Prominent availability messaging on homepage focused on auction industry AI automation
  • Contact Management: Professional contact form with spam protection
  • Project Showcase: Portfolio display ready for auction industry case studies
  • Blog System: Content management focused on AI automation and auction industry insights
  • Responsive Design: Mobile-first approach with modern UI/UX

Technical Features

  • Next.js 15 with App Router for optimal performance
  • TypeScript for type safety and better development experience
  • Tailwind CSS with custom design system and dark mode support
  • Prisma ORM with PostgreSQL for robust data management
  • Railway Deployment with health checks and monitoring
  • SEO Optimized with sitemap generation and metadata management

Advanced Capabilities

  • Social Media Integration: Twitter, LinkedIn, GitHub, Facebook, Instagram
  • Blog Auto-Syndication: Framework for cross-platform content sharing
  • Analytics Integration: Vercel Analytics support
  • Contact Form Processing: Validation, spam detection, and professional inquiries
  • Theme System: Light/dark mode with system preference detection

πŸ›£οΈ Future Roadmap

🎯 Immediate Next Steps (Next Session)

1. Project Portfolio Development

  • Interview Process: Conduct detailed interviews about Will's completed projects
  • Content Collection: Gather project descriptions, outcomes, technologies used
  • Case Study Creation: Transform projects into compelling portfolio pieces
  • Visual Assets: Add screenshots, diagrams, or relevant project imagery

2. Content Strategy Implementation

  • Blog Content Planning: Develop content calendar for AI automation and auction industry topics
  • SEO Content Optimization: Research and implement industry-specific keywords
  • Social Media Integration: Set up auto-syndication for blog posts

πŸš€ Medium-Term Enhancements (1-2 months)

3. Advanced Portfolio Features

  • Project Filtering: Add categories (AI Automation, Auction Industry, Consulting)
  • Interactive Demos: Where applicable, add live demos or interactive elements
  • Client Testimonials: Integrate testimonials and success metrics
  • Case Study Deep Dives: Detailed technical breakdowns for interested prospects

4. Lead Generation & Business Development

  • Contact Form Enhancement: Add project type selection and budget ranges
  • Consultation Booking: Integrate calendar scheduling for consultations
  • Service Packages: Clear presentation of available services and pricing
  • Download Resources: White papers, guides, or industry reports

5. Performance & Analytics

  • Google Analytics Setup: Track visitor behavior and conversion paths
  • A/B Testing: Test different "bat signal" messages and CTA placements
  • Performance Monitoring: Advanced monitoring and alerting
  • SEO Optimization: Technical SEO audit and improvements

🌟 Long-Term Vision (3-6 months)

6. Advanced Business Features

  • Client Portal: Private area for ongoing project collaboration
  • Resource Library: Extensive knowledge base and downloadable resources
  • Newsletter System: Industry insights and company updates
  • Automation Showcases: Interactive demos of AI automation solutions

7. Technical Enhancements

  • API Development: Expose services for integration opportunities
  • Advanced Analytics: Custom dashboards for business metrics
  • Multi-language Support: If expanding to international markets
  • Advanced Security: Enhanced security measures for business applications

πŸ›  Technology Stack

  • Frontend: Next.js 15, React 19, TypeScript
  • Styling: Tailwind CSS, Headless UI, Lucide React Icons
  • Backend: Next.js API Routes, Prisma ORM
  • Database: PostgreSQL (Railway hosted)
  • Deployment: Railway with automatic deployments
  • DNS & SSL: Cloudflare management with auto SSL
  • Analytics: Vercel Analytics
  • Form Handling: React Hook Form with Zod validation

πŸ“‹ Prerequisites

  • Node.js 18.0.0 or higher
  • PostgreSQL database (local or hosted)
  • Railway account for deployment
  • Environment variables configured

πŸš€ Quick Start

1. Clone and Install

git clone <repository-url>
cd willmclemore.com
npm install

2. Environment Setup

Copy the example environment file and configure your variables:

cp env.example .env

Configure the following environment variables:

# Database
DATABASE_URL="postgresql://username:password@localhost:5432/willmclemore_db?schema=public"

# Site Configuration
SITE_URL="https://willmclemore.com"
SITE_NAME="Will McLemore"
CONTACT_EMAIL="will@mclemoreauction.com"

# Social Media APIs (optional)
TWITTER_API_KEY=""
LINKEDIN_CLIENT_ID=""
GITHUB_TOKEN=""

# Analytics (optional)
VERCEL_ANALYTICS_ID=""

# Email Configuration (optional)
SMTP_HOST=""
SMTP_PORT=""
SMTP_USER=""
SMTP_PASS=""

3. Database Setup

This project uses Railway's PostgreSQL database for both development and production. This simplifies setup and ensures you're always working with real data.

Development Setup

  1. Get your Railway database URL:

    • Go to your Railway project dashboard
    • Click on your PostgreSQL service
    • Go to the "Connect" tab
    • Copy the DATABASE_URL
  2. Configure your environment file:

    cp .env.example .env
  3. Update .env with your Railway DATABASE_URL:

    DATABASE_URL="postgresql://postgres:YOUR_PASSWORD@YOUR_HOST.railway.app:PORT/railway"
    NEXTAUTH_URL="http://localhost:3000"
    SITE_URL="http://localhost:3000"
    NEXT_PUBLIC_APP_URL="http://localhost:3000"
  4. Start the development server:

    npm run dev

That's it! No local database setup required.

Database Management Commands

# Open Prisma Studio to view/edit data
npm run db:studio

# Run migrations (if schema changes)
npm run db:migrate:dev

# Push schema changes without migration
npm run db:push

Why One Database?

  • Simplicity: No local database containers or Docker required
  • Real Data: Always working with your actual content
  • No Sync Issues: What you see locally is what's live
  • Faster Setup: Get started in minutes, not hours

Production Deployment

Production uses Railway's managed PostgreSQL service. The deployment automatically:

  1. Runs prisma migrate deploy to apply schema changes
  2. Generates the Prisma client
  3. Starts the application

Environment variables are managed through Railway's dashboard or CLI.

πŸš€ Railway Deployment

1. Database Setup

  1. Create a PostgreSQL database on Railway
  2. Copy the database URL to your environment variables
  3. Run database migrations:
npx prisma migrate deploy

2. Deploy Application

  1. Connect your GitHub repository to Railway
  2. Configure environment variables in Railway dashboard
  3. Deploy will happen automatically on push to main branch

3. Custom Domain Configuration

  1. Add your custom domain in Railway dashboard
  2. Important: Ensure the domain port is set to 8080 in Railway settings
  3. Configure DNS records to point to Railway (CNAME to provided Railway domain)
  4. SSL certificates are automatically provisioned

Note: If you encounter 502 errors with custom domains, verify the port configuration in Railway's Public Networking settings.

πŸ“Š Analytics Setup

Google Analytics 4

  1. Create a GA4 property
  2. Add your Measurement ID to GOOGLE_ANALYTICS_ID
  3. Analytics will be automatically initialized

Vercel Analytics

  1. Enable Vercel Analytics in your project
  2. Add your Analytics ID to VERCEL_ANALYTICS_ID

πŸ“§ Contact Form Configuration

The contact form includes:

  • Validation: Client and server-side validation with Zod
  • Spam Protection: Keyword filtering and rate limiting
  • Database Storage: All submissions stored in PostgreSQL
  • Email Notifications: Ready for integration with email services

To enable email notifications, configure SMTP settings and implement email sending in /api/contact/route.ts.

🎨 Customization

Design System

The design system is built with Tailwind CSS and includes:

  • Color Palette: Primary, secondary, and accent colors
  • Typography: Inter font with proper hierarchy
  • Components: Reusable UI components with consistent styling
  • Dark Mode: Automatic system preference detection

Content Management

Update content by modifying:

  • Constants: /src/lib/constants.ts for site-wide settings
  • Homepage Content: /src/app/page.tsx for hero and bat signal
  • About Content: /src/app/about/page.tsx for bio and expertise
  • Projects: Add to database or modify placeholder data

πŸ”§ Development Guidelines

Code Organization

src/
β”œβ”€β”€ app/                 # Next.js App Router pages
β”œβ”€β”€ components/          # Reusable React components
β”œβ”€β”€ lib/                # Utility functions and configurations
β”œβ”€β”€ types/              # TypeScript type definitions
└── styles/             # Global styles and Tailwind config

Best Practices

  • TypeScript: Use strict typing for all components and functions
  • Responsive Design: Mobile-first approach with breakpoint testing
  • Performance: Optimize images, lazy load content, minimize bundle size
  • SEO: Proper meta tags, structured data, and sitemap generation
  • Accessibility: WCAG 2.1 AA compliance with proper ARIA labels

πŸ“ˆ Performance Optimization

Core Web Vitals

  • LCP: Optimized with Next.js Image component and font loading
  • FID: Minimal JavaScript with efficient event handling
  • CLS: Proper image dimensions and layout stability

SEO Features

  • Meta Tags: Dynamic generation for all pages
  • Open Graph: Social media sharing optimization
  • Sitemap: Automatically generated with proper priorities
  • Robots.txt: Search engine crawling configuration

πŸ”’ Security

Implementation

  • Input Validation: All forms validated with Zod schemas
  • Rate Limiting: API endpoints protected against abuse
  • Spam Protection: Multiple layers of spam detection
  • Headers: Security headers configured in Next.js config

πŸ“š Additional Resources

Documentation

Support

For questions or issues:

  1. Check the documentation above
  2. Review the codebase comments
  3. Create an issue in the repository
  4. Contact the development team

πŸ“ License

This project is proprietary software. All rights reserved.


Built with ❀️ using Next.js, TypeScript, and modern web technologies.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •