Skip to content

mbianchidev/mock-startup-website

Matteo - Mock Startup Website

License

πŸš€ About

This project is a satirical website that parodies the typical Y Combinator startup. The aim is to showcase the common design patterns, marketing language, and feature presentations used by tech startups today, with a humorous twist.

"Matteo" serves as our fictional SaaS product/platform, complete with all the startup tropes:

  • Minimalist design with vibrant call-to-action buttons
  • Vague yet promising value propositions
  • Integration ecosystem charts
  • Pricing tiers (including the obligatory "Enterprise/Contact Us" option)
  • Testimonials from "satisfied customers"
  • A roadmap promising revolutionary features

🎯 Purpose

This project was created to:

  1. Demonstrate common web design patterns used in startup marketing sites
  2. Provide a template for developers creating landing pages
  3. Highlight (with humor) the formulaic nature of many startup websites
  4. Serve as a design study of effective and ineffective marketing tactics
  5. Show conversion from static HTML/CSS/JS to modern React + Next.js

πŸ” Key Features

  • Responsive design that works on mobile and desktop
  • Modern React components with TypeScript
  • Interactive elements with React hooks and state management
  • Server-side rendering with Next.js 15
  • Component-based architecture for maintainability
  • Accessibility features retained from original design

πŸ› οΈ Tech Stack

  • Next.js 15 - React framework with App Router
  • TypeScript - Type safety and better developer experience
  • React 19 - Latest React features and hooks
  • CSS3 - Original styles adapted for React
  • Font Awesome - Icon library
  • ESLint - Code linting and quality

🚦 Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone this repository

    git clone https://github.com/mbianchidev/mock-startup-website.git
    cd mock-startup-website
  2. Install dependencies

    npm install
  3. Run the development server

    npm run dev
  4. Open http://localhost:3000 in your browser

Deploying to GitHub Pages

This repo is configured to deploy the site as a static export to GitHub Pages.

  • Workflow: .github/workflows/static.yml
  • Output directory: out/ (generated by next build with output: 'export')
  • For repository pages (user/org subpath), we set NEXT_BASE_PATH=/<owner>/<repo> during the workflow so assets work under the subpath.

Local test of static export:

npm ci
npm run build
npx serve out

Build for Production

npm run build
npm start

πŸ“‚ Project Structure

src/
β”œβ”€β”€ app/                 # Next.js App Router pages
β”‚   β”œβ”€β”€ layout.tsx       # Root layout component
β”‚   β”œβ”€β”€ page.tsx         # Homepage
β”‚   β”œβ”€β”€ about/           # About page
β”‚   β”œβ”€β”€ careers/         # Careers page
β”‚   β”œβ”€β”€ customers/       # Customers page
β”‚   β”œβ”€β”€ documentation/   # Documentation page
β”‚   β”œβ”€β”€ press/           # Press page
β”‚   β”œβ”€β”€ pricing/         # Pricing page
β”‚   β”œβ”€β”€ privacy/         # Privacy page
β”‚   β”œβ”€β”€ redirect/        # Redirect pages
β”‚   β”œβ”€β”€ roadmap/         # Roadmap page
β”‚   β”œβ”€β”€ support/         # Support page
β”‚   β”œβ”€β”€ terms/           # Terms page
β”‚   └── globals.css      # Global styles
β”œβ”€β”€ components/          # Reusable React components
β”‚   β”œβ”€β”€ Header.tsx       # Navigation header
β”‚   β”œβ”€β”€ Footer.tsx       # Site footer
β”‚   β”œβ”€β”€ Hero.tsx         # Hero section
β”‚   β”œβ”€β”€ Features.tsx     # Features grid
β”‚   β”œβ”€β”€ UseCases.tsx     # Use cases section
β”‚   β”œβ”€β”€ TrustedBy.tsx    # Logo carousel
β”‚   β”œβ”€β”€ Integrations.tsx # Integration icons
β”‚   β”œβ”€β”€ CloudCarousel.tsx # Interactive carousel
β”‚   β”œβ”€β”€ Testimonials.tsx # Customer testimonials
β”‚   β”œβ”€β”€ Stats.tsx        # Statistics component
β”‚   β”œβ”€β”€ Collapsible.tsx  # Collapsible component
β”‚   β”œβ”€β”€ RedirectPage.tsx # Redirect page component
β”‚   β”œβ”€β”€ WorkInProgress.tsx # Work in progress component
β”‚   β”œβ”€β”€ SessionizeEmbed.tsx # Sessionize embed component
β”‚   └── KubernetesDistros.tsx # Kubernetes distributions component
β”œβ”€β”€ types/               # TypeScript type definitions
β”‚   └── index.ts
β”œβ”€β”€ data/               # JSON data files
β”‚   └── customers.json
└── lib/                # Utility functions

πŸ”§ Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

πŸ”„ Migration from Static HTML

This project was successfully converted from a static HTML/CSS/JS website to a modern React + Next.js application. Key improvements include:

  • Component-based architecture for better maintainability
  • TypeScript integration for type safety
  • React hooks replacing DOM manipulation
  • Server-side rendering for better SEO and performance
  • Modern development toolchain with hot reloading
  • Accessibility improvements with semantic HTML and ARIA attributes

πŸ“ Contribute

Contributions are welcome! See our CONTRIBUTING.md for guidelines.

πŸ“„ License

This project is licensed under the terms of the license included in the LICENSE file.

πŸ™ Acknowledgments

  • Y Combinator startups for the inspiration
  • Modern SaaS companies for their predictable design patterns
  • The tech industry's love for buzzwords and vague promises

Disclaimer: This is a parody project created for educational and entertainment purposes. Any similarity to actual startups is coincidental and not intended to mock specific companies.

About

A website completely vibe coded, mocking the average YC startup

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors