- Add all shadcn/ui components (button, card, form, dialog, navigation-menu, etc.) - Create main layout with navigation header and footer - Implement homepage with hero, showreel, featured projects, and capabilities - Build about page with studio origins, values, and capabilities - Create services page with detailed service offerings - Implement portfolio page with masonry grid for varying aspect ratios - Build contact page with 4-step multistep form - Add project and service data structures with placeholder content - Configure SEO metadata, canonical links, and JSON-LD schema - Add font preloading and image lazy-loading for performance - Configure Next.js Image for Unsplash remote patterns - Fix Navigation component to use modern Link pattern (remove legacyBehavior) - Add comprehensive README with project documentation
4.0 KiB
4.0 KiB
Biohazard VFX Website
A modern, minimal Next.js website for Biohazard VFX studio, built with React, TypeScript, Tailwind CSS, and shadcn/ui components.
Features
- Homepage: Hero section, studio showreel, featured projects, and capabilities overview
- About: Studio origins, values, technical capabilities, and client testimonials
- Services: Comprehensive service offerings with detailed descriptions
- Portfolio: Masonry grid layout showcasing projects with varying aspect ratios
- Contact: Multi-step smart contact form for efficient client intake
Tech Stack
- Framework: Next.js 15.5.4 with App Router
- Language: TypeScript
- Styling: Tailwind CSS 4
- UI Components: shadcn/ui (New York style)
- Icons: Lucide React
- Fonts: Geist Sans & Geist Mono
Getting Started
Prerequisites
- Node.js 20+
- npm or yarn
Installation
- Clone the repository:
git clone <repository-url>
cd biohazard-vfx-website
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser.
Available Scripts
npm run dev- Start development server with Turbopacknpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- Run TypeScript type checking
Project Structure
biohazard-vfx-website/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── about/ # About page
│ │ ├── contact/ # Contact page
│ │ ├── portfolio/ # Portfolio page
│ │ ├── services/ # Services page
│ │ ├── layout.tsx # Root layout with navigation & footer
│ │ ├── page.tsx # Homepage
│ │ └── globals.css # Global styles & CSS variables
│ ├── components/ # React components
│ │ ├── ui/ # shadcn/ui components
│ │ ├── Footer.tsx
│ │ ├── Hero.tsx
│ │ ├── MasonryGrid.tsx
│ │ ├── MultiStepForm.tsx
│ │ ├── Navigation.tsx
│ │ ├── ProjectCard.tsx
│ │ ├── ServiceCard.tsx
│ │ └── VideoPlayer.tsx
│ ├── data/ # Data files
│ │ ├── projects.ts # Project data
│ │ └── services.ts # Services data
│ └── lib/
│ └── utils.ts # Utility functions
├── public/ # Static assets
└── components.json # shadcn/ui configuration
Customization
Styling
The project uses shadcn/ui with the New York style variant. You can quickly try different styles by:
- Modifying CSS variables in
src/app/globals.css - Updating the shadcn theme in
components.json - All components use shadcn classnames for easy theme switching
Content
Update content in the data files:
- Projects: Edit
src/data/projects.ts - Services: Edit
src/data/services.ts
Replace placeholder images with your own:
- Update image URLs in data files
- Add images to the
public/directory
Adding New Pages
- Create a new directory in
src/app/ - Add a
page.tsxfile - Export metadata and default component
- Update navigation in
src/components/Navigation.tsx
SEO & Performance
The site includes:
- ✅ Metadata for all pages
- ✅ Canonical links
- ✅ Open Graph tags
- ✅ JSON-LD structured data
- ✅ Font preloading
- ✅ Image lazy loading
- ✅ Next.js Image optimization
Deployment
Vercel (Recommended)
- Push your code to GitHub
- Import the project to Vercel
- Deploy automatically
Other Platforms
Build the project and deploy the .next directory:
npm run build
npm run start
License
Private - All rights reserved to Biohazard VFX
Support
For issues or questions, contact: info@biohazardvfx.com