Culture First Content Studio
A production-first content studio that turns brands into culture in seconds.
View Live Site β’ Features β’ Tech Stack β’ Getting Started β’ Project Structure
RANDS (Rizz & Slay) is a modern, brutalist-inspired marketing website for a content studio specializing in short-form video production, TikTok marketing, and viral campaigns. The site showcases a bold design aesthetic with interactive 3D elements, smooth animations, and a focus on Gen Z/millennial audiences.
- Brutalist Design System β Bold typography, thick borders, hard shadows, and high-contrast color palette
- Custom Color Palette β Toxic Lime (#CCFF00), Hot Magenta (#FF00FF), Warning Orange (#FF6600)
- Responsive Design β Fully responsive across all device sizes
- Dark Mode Support β Automatic dark mode based on system preferences
- Custom Typography β Inter (body) + Oswald (display) font pairing
- 3D Hero Scene β Interactive Three.js scene with liquid metal sphere, orbital rings, and particle effects
- Smooth Scrolling β Lenis-powered smooth scroll experience
- GSAP Animations β Scroll-triggered animations and kinetic typography
- Framer Motion β Page transitions and micro-interactions
- Video Player β Custom video player with play/pause and mute controls
- Homepage β Hero, social proof, services, work grid, testimonials, and CTA sections
- Brief Page β Multi-step form wizard for project submissions
- 404 Page β Custom branded error page with personality
- SEO Optimized β Comprehensive meta tags, Open Graph, Twitter Cards, robots.txt, and sitemap.xml
- Google Analytics β Integrated tracking with GA4
- Form Validation β Zod schema validation with React Hook Form
- Dynamic Imports β Code splitting for optimal performance
- Image Optimization β Next.js Image component with responsive sizing
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 4 |
| 3D Graphics | Three.js + React Three Fiber + Drei |
| Animation | GSAP + Framer Motion |
| Smooth Scroll | Lenis |
| Forms | React Hook Form + Zod |
| Icons | Lucide React |
| UI | React 19 |
| Linting | ESLint 9 |
rands-static-site/
βββ app/ # Next.js App Router
β βββ layout.tsx # Root layout with fonts, metadata, and providers
β βββ page.tsx # Homepage
β βββ not-found.tsx # Custom 404 page
β βββ globals.css # Global styles and Tailwind theme
β βββ robots.ts # SEO robots.txt configuration
β βββ sitemap.ts # Dynamic sitemap generation
β βββ brief/
β βββ page.tsx # Brief submission page
β
βββ components/
β βββ GoogleAnalytics.tsx # GA4 integration
β βββ brief/
β β βββ BriefForm.tsx # Multi-step form wizard
β βββ home/
β β βββ Hero.tsx # Hero section with 3D scene
β β βββ Scene.tsx # Three.js 3D scene
β β βββ SocialProof.tsx # Client marquee
β β βββ WhatWeDo.tsx # Services overview
β β βββ FeaturedReel.tsx # Video showcase
β β βββ WorkGrid.tsx # Portfolio grid
β β βββ ServicesCheatsheet.tsx # Services breakdown
β β βββ ProcessStrip.tsx # Process steps
β β βββ Testimonials.tsx # Client testimonials carousel
β βββ layout/
β β βββ Header.tsx # Navigation header
β β βββ Footer.tsx # Site footer
β βββ ui/
β βββ Button.tsx # Button component with variants
β βββ Section.tsx # Section wrapper component
β
βββ utils/
β βββ cn.ts # Class name utility (clsx + tailwind-merge)
β βββ lenis.ts # Lenis smooth scroll export
β
βββ public/
β βββ images/
β β βββ logo.png # Brand logo
β βββ videos/
β βββ new.mp4 # Featured reel video
β
βββ eslint.config.mjs # ESLint configuration
βββ next.config.ts # Next.js configuration
βββ postcss.config.mjs # PostCSS configuration
βββ tailwind.config.ts # Tailwind CSS configuration (if applicable)
βββ tsconfig.json # TypeScript configuration
βββ package.json # Dependencies and scripts
- Node.js 18.17 or later
- npm, yarn, pnpm, or bun
-
Clone the repository
git clone https://github.com/codezelat/rands-static-site.git cd rands-static-site -
Install dependencies
npm install # or yarn install # or pnpm install # or bun install
-
Run the development server
npm run dev # or yarn dev # or pnpm dev # or bun dev
-
Open your browser
Navigate to http://localhost:3000
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build production-ready application |
npm run start |
Start production server |
npm run lint |
Run ESLint for code quality |
| Color | Hex | Usage |
|---|---|---|
| Toxic Lime | #CCFF00 |
Primary accent, CTAs, highlights |
| Hot Magenta | #FF00FF |
Secondary accent, hover states |
| Warning Orange | #FF6600 |
Tertiary accent, alerts |
| Off White | #F5F5F5 |
Light backgrounds |
| Soft Grey | #D4D4D4 |
Muted text, borders |
| Carbon Black | #111111 |
Dark backgrounds, text |
- Display Font: Oswald β Bold, uppercase headlines
- Body Font: Inter β Clean, readable body text
.border-thick /* 3px solid border */
.border-thick-top /* Top border only */
.border-thick-bottom /* Bottom border only */
.box-shadow-hard /* 6px hard shadow offset */
.text-display /* Display font with uppercase */Copy .env.example to .env.local and fill in values:
# Analytics (optional - already configured)
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
# Site URL
NEXT_PUBLIC_SITE_URL=https://rands.lk
# Cloudflare Turnstile (required for contact + brief forms)
NEXT_PUBLIC_TURNSTILE_SITE_KEY=1x00000000000000000000AA
TURNSTILE_SECRET_KEY=1x0000000000000000000000000000000AA
# Brevo email config (required for contact + brief form submissions)
BREVO_API_KEY=xkeysib-REPLACE_ME
BREVO_FROM_NAME=RANDS Website
# Optional shared fallback recipient
BREVO_TO_EMAIL=you@email.com
External image domains are configured in next.config.ts:
images: {
remotePatterns: [
{
protocol: "https",
hostname: "images.unsplash.com",
pathname: "/**",
},
],
}- Hero: Animated headline with interactive 3D scene
- Social Proof: Infinite marquee of client logos
- What We Do: Service cards with hover effects
- Featured Reel: Video player with custom controls
- Work Grid: Portfolio showcase with image overlays
- Services Cheatsheet: Quick service breakdown
- Process Strip: 4-step process visualization
- Testimonials: Horizontal scroll testimonial cards
- Footer: CTA, contact details, navigation, and social links
- Contact Modal: Global popup contact form with Turnstile verification
- Multi-step Form: 3-step wizard for project submissions
- Form Validation: Real-time validation with helpful error messages
- Progress Indicator: Visual progress bar
- Success State: Confirmation message on submission
- Custom Design: Branded error page with personality
- Clear CTA: Easy navigation back to homepage
The site includes comprehensive SEO configuration:
- Meta Tags: Title, description, keywords
- Open Graph: Social sharing previews
- Twitter Cards: Twitter-specific meta tags
- Robots.txt: Search engine crawling rules
- Sitemap.xml: Dynamic sitemap generation
- Structured Data Ready: Easy to extend with JSON-LD
Google Analytics 4 is integrated via the GoogleAnalytics component:
<GoogleAnalytics /> // Loads gtag.js with configured tracking ID- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js β The React framework for production
- Tailwind CSS β Utility-first CSS framework
- React Three Fiber β React renderer for Three.js
- GSAP β Professional animation library
- Framer Motion β Production-ready motion library
- Lenis β Smooth scroll library
- Lucide β Beautiful & consistent icons
Developed with β€οΈ by Codezela Technologies
