================================================================ DIGITAL MORSE — FULL WEBSITE SOURCE CODE React + Vite + Tailwind CSS + Framer Motion ================================================================ FOLDER STRUCTURE: ----------------- src/ main.tsx App.tsx index.css components/ layout/ Navbar.tsx Footer.tsx sections/ Hero.tsx Services.tsx Process.tsx About.tsx Contact.tsx DEPENDENCIES (package.json): framer-motion lucide-react wouter react-hook-form @hookform/resolvers zod tailwindcss @tailwindcss/vite @vitejs/plugin-react @tanstack/react-query tw-animate-css ================================================================ FILE: src/main.tsx ================================================================ import { createRoot } from 'react-dom/client'; import App from './App'; import './index.css'; createRoot(document.getElementById('root')!).render(); ================================================================ FILE: src/index.css ================================================================ @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400..800&family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&display=swap'); @import 'tailwindcss'; @import 'tw-animate-css'; @custom-variant dark (&:is(.dark *)); @theme inline { --color-background: hsl(var(--background)); --color-foreground: hsl(var(--foreground)); --color-border: hsl(var(--border)); --color-input: hsl(var(--input)); --color-ring: hsl(var(--ring)); --color-card: hsl(var(--card)); --color-card-foreground: hsl(var(--card-foreground)); --color-popover: hsl(var(--popover)); --color-popover-foreground: hsl(var(--popover-foreground)); --color-primary: hsl(var(--primary)); --color-primary-foreground: hsl(var(--primary-foreground)); --color-secondary: hsl(var(--secondary)); --color-secondary-foreground: hsl(var(--secondary-foreground)); --color-muted: hsl(var(--muted)); --color-muted-foreground: hsl(var(--muted-foreground)); --color-accent: hsl(var(--accent)); --color-accent-foreground: hsl(var(--accent-foreground)); --color-destructive: hsl(var(--destructive)); --color-destructive-foreground: hsl(var(--destructive-foreground)); --font-sans: var(--app-font-sans); --font-heading: var(--app-font-heading); --font-mono: var(--app-font-mono); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); } :root { --background: 0 0% 100%; --foreground: 0 0% 9%; --border: 0 0% 91%; --input: 0 0% 91%; --ring: 14 100% 50%; --card: 0 0% 100%; --card-foreground: 0 0% 9%; --popover: 0 0% 100%; --popover-foreground: 0 0% 9%; /* Primary: #FF3C00 — Digital Morse orange-red */ --primary: 14 100% 50%; --primary-foreground: 0 0% 100%; --secondary: 0 0% 96%; --secondary-foreground: 0 0% 9%; --muted: 0 0% 96%; --muted-foreground: 0 0% 45%; --accent: 14 100% 97%; --accent-foreground: 14 100% 40%; --destructive: 0 84% 60%; --destructive-foreground: 0 0% 100%; --app-font-sans: 'DM Sans', sans-serif; --app-font-heading: 'Bricolage Grotesque', sans-serif; --app-font-mono: 'Menlo', monospace; --radius: 0.5rem; } @layer base { * { @apply border-border; } body { @apply font-sans antialiased bg-background text-foreground; } h1, h2, h3, h4, h5, h6 { font-family: var(--app-font-heading); } } ================================================================ FILE: src/App.tsx ================================================================ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Toaster } from '@/components/ui/toaster'; import { TooltipProvider } from '@/components/ui/tooltip'; import { Route, Switch, Router as WouterRouter } from 'wouter'; import { Navbar } from '@/components/layout/Navbar'; import { Footer } from '@/components/layout/Footer'; import { Hero } from '@/components/sections/Hero'; import { Services } from '@/components/sections/Services'; import { Process } from '@/components/sections/Process'; import { About } from '@/components/sections/About'; import { Contact } from '@/components/sections/Contact'; const queryClient = new QueryClient(); function LandingPage() { return (
); } function Router() { return ( ); } function App() { return ( ); } export default App; ================================================================ FILE: src/components/layout/Navbar.tsx ================================================================ import { useState } from 'react'; import { motion, useScroll, useMotionValueEvent } from 'framer-motion'; import { Button } from '@/components/ui/button'; export function Navbar() { const [isScrolled, setIsScrolled] = useState(false); const { scrollY } = useScroll(); useMotionValueEvent(scrollY, "change", (latest) => { setIsScrolled(latest > 20); }); const handleNavClick = (e: React.MouseEvent, targetId: string) => { e.preventDefault(); const target = document.getElementById(targetId); if (target) { target.scrollIntoView({ behavior: 'smooth' }); } }; return (
Digital Morse
); } ================================================================ FILE: src/components/layout/Footer.tsx ================================================================ export function Footer() { const scrollTo = (e: React.MouseEvent, id: string) => { e.preventDefault(); document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' }); }; return ( ); } ================================================================ FILE: src/components/sections/Hero.tsx ================================================================ import { motion } from 'framer-motion'; import { Button } from '@/components/ui/button'; import { ArrowRight, Activity, TrendingUp, BarChart3 } from 'lucide-react'; export function Hero() { const scrollTo = (id: string) => { document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' }); }; const containerVariants = { hidden: { opacity: 0 }, visible: { opacity: 1, transition: { staggerChildren: 0.1, } } }; const itemVariants = { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0, transition: { type: "spring", stiffness: 300, damping: 24 } } }; return (
{/* Glow blobs */}
Data-Driven Growth Partners Predictable growth,
engineered.
We are a specialized growth squad for competitive niches. We build digital ecosystems, scale organic search, and run performance campaigns that generate measurable pipeline.
Performance Metrics

Campaign Alpha

+142%

Average ROAS Increase

{/* Decorative grid */}
{/* Floating badge */}
Pipeline Active
Monitoring 24/7
); } ================================================================ FILE: src/components/sections/Services.tsx ================================================================ import { motion } from 'framer-motion'; import { Search, Link as LinkIcon, BarChart2, Globe, ArrowRight } from 'lucide-react'; import { Button } from '@/components/ui/button'; const services = [ { icon: , title: "Search Architecture", subtitle: "Capture high-intent organic traffic.", description: "We reconstruct your site architecture and content strategy to capture the exact organic traffic that converts. No vanity keywords, just measurable pipeline generation built on technical excellence.", tags: ["Technical Core", "Intent Match"] }, { icon: , title: "Authority Acquisition", subtitle: "Earn trust from search algorithms.", description: "Manual outreach to high-authority, relevant domains. We secure contextual placements that build undeniable trust signals, turning your digital real estate into an industry authority.", tags: ["Domain Rating", "Spam Score"] }, { icon: , title: "Performance Ads", subtitle: "Precision targeting. Absolute accountability.", description: "Multi-channel campaigns optimized strictly for CAC and LTV. We scale ad spend only when the unit economics dictate it makes sense, continuously testing creative and targeting.", tags: ["Target ROAS", "Data Latency"] }, { icon: , title: "Digital Ecosystems", subtitle: "Conversion-obsessed engineering.", description: "Blazing-fast, modern frontends that serve as the ultimate conversion mechanism for your newly acquired traffic. Accessible, responsive, and engineered to load in milliseconds.", tags: ["Load Time", "Uptime"] } ]; export function Services() { const scrollTo = (id: string) => { document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' }); }; return (
Core Capabilities Four specialized disciplines run by experts. No bloated retainer fees, just focused execution on the channels that drive revenue.
{services.map((service, index) => (
{service.icon}

{service.title}

{service.subtitle}

{service.description}

{service.tags.map(tag => ( {tag} ))}
))}
); } ================================================================ FILE: src/components/sections/Process.tsx ================================================================ import { motion } from 'framer-motion'; import { BarChart2, Unlock, Cpu, MessageSquare } from 'lucide-react'; const protocols = [ { icon: , title: "Absolute Telemetry", description: "Every action is tracked, measured, and assigned an ROI. We build clear, unfiltered dashboards so you always know your exact return on investment." }, { icon: , title: "Contract Fluidity", description: "Zero long-term lock-ins. We operate on performance, not legal capture. We retain our clients by consistently proving our financial value every single month." }, { icon: , title: "Algorithmic Precision", description: "Hypotheses are tested rigorously. When the data demands a pivot, execution is immediate. No ego, only continuous optimization." }, { icon: , title: "Direct Access", description: "No account managers playing telephone. You communicate directly with the engineers and strategists deploying your capital and executing your campaigns." } ]; export function Process() { return (
Operational Protocols Built on absolute clarity. We operate as an extension of your infrastructure. Methodologies are open-source to you, goals are ruthlessly aligned, and agency-client friction is engineered out of the system entirely.
{protocols.map((protocol, index) => (
{protocol.icon}

{protocol.title}

{protocol.description}

))}
); } ================================================================ FILE: src/components/sections/About.tsx ================================================================ import { motion } from 'framer-motion'; import { Button } from '@/components/ui/button'; import { Database, Ban, ActivitySquare, Scale } from 'lucide-react'; export function About() { const scrollTo = (id: string) => { document.getElementById(id)?.scrollIntoView({ behavior: 'smooth' }); }; return (

Growth is a science.

We approach digital growth with the precision of an engineering discipline. Every strategy is rooted in data, tested rigorously, and scaled only when unit economics are proven. No guesswork, no fluff—just systematic pipeline generation.

100%
Data Backed
0
Vanity Metrics
24/7
Monitoring
Scalability
); } ================================================================ FILE: src/components/sections/Contact.tsx ================================================================ import { useState } from 'react'; import { motion } from 'framer-motion'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { z } from 'zod'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { Mail, Phone, CheckCircle2 } from 'lucide-react'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/form'; const contactSchema = z.object({ firstName: z.string().min(2, "First name is required"), lastName: z.string().min(2, "Last name is required"), email: z.string().email("Invalid email address"), website: z.string().url("Must be a valid URL (include https://)").or(z.literal("")), objective: z.string().min(10, "Please provide more detail about your objective") }); type ContactFormValues = z.infer; export function Contact() { const [isSubmitted, setIsSubmitted] = useState(false); const form = useForm({ resolver: zodResolver(contactSchema), defaultValues: { firstName: "", lastName: "", email: "", website: "", objective: "" } }); const onSubmit = (data: ContactFormValues) => { console.log("Form data:", data); setIsSubmitted(true); }; return (

Let's discuss your growth.

Fill out the details. Our strategic team will review your current digital footprint and respond with a preliminary execution plan within 24 hours.

{isSubmitted ? (

Request Received

We've received your information and our strategy team will be in touch within 24 hours.

) : (
( First Name )} /> ( Last Name )} />
( Work Email )} /> ( Company Website )} /> ( Strategic Objective