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
# Resend email config (required for contact + brief form submissions)
RESEND_API_KEY=re_REPLACE_ME
RESEND_FROM_EMAIL=your-verified-sender@example.com
RESEND_FROM_NAME=RANDS Website
# Optional shared fallback recipient
RESEND_TO_EMAIL=you@email.com
Both /api/contact and /api/brief send through the same Resend API key.
If runtime logs report an authentication error, check RESEND_API_KEY in
Vercel's Production environment. Use an active key with email sending access. Redeploy
after changing a Vercel environment variable so the running functions receive
the new value. Never commit an API key or paste it into logs.
The sender domain must be verified in Resend. Each form also needs its recipient
(RESEND_CONTACT_TO_EMAIL or RESEND_BRIEF_TO_EMAIL), or the shared
RESEND_TO_EMAIL fallback. A successful Turnstile challenge alone does not prove
email delivery; check the API response and Resend delivery logs.
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
