Skip to content

๐Ÿ’ฟ A Y2K-inspired static blog theme built with Eleventy. Features authentic late 90s/early 2000s web aesthetics with modern performance and accessibility.

License

Notifications You must be signed in to change notification settings

brennanbrown/hyperpop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

HYPERPOP ๐ŸŒˆ

Netlify Status License: MIT 11ty PRs Welcome

A Y2K-inspired static blog theme built with Eleventy. Features authentic late 90s/early 2000s web aesthetics with modern performance and accessibility.

Live Demo | Documentation | Getting Started

HYPERPOP Demo

โœจ Features

  • ๐ŸŽจ Y2K Aesthetics - Neon colors, glitch effects, holographic borders, and CRT vibes
  • โšก Lightning Fast - Static site generation with optimized assets
  • ๐ŸŽญ Pure CSS Magic - Scan lines, chromatic aberration, animated gradients
  • ๐ŸŽฎ Interactive Elements - Custom cursor trail, Konami code easter egg, client-side search
  • ๐Ÿ“ฑ Fully Responsive - Beautiful on all devices with touch optimization
  • โ™ฟ Accessible - WCAG AA compliant with reduced motion support
  • ๐Ÿ” Client-Side Search - Fast, privacy-respecting search with JSON index
  • ๐Ÿ“Š Stats Counter - localStorage-based page view tracking
  • ๐Ÿ“ก Offline Support - Service worker for offline capability
  • ๐ŸŽฏ SEO Optimized - Meta tags, sitemap, RSS feed

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 14+ and npm

Installation

# Clone the repository
git clone https://github.com/brennanbrown/hyperpop.git
cd hyperpop

# Install dependencies
npm install

# Start the development server
npm run dev

Visit http://localhost:8080 to see your site!

Build for Production

# Build the site
npm run build

# Output will be in _site/

๐Ÿ“ Project Structure

hyperpop/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ _includes/
โ”‚   โ”‚   โ”œโ”€โ”€ layouts/          # Page layouts
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ base.njk
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ post.njk
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ page.njk
โ”‚   โ”‚   โ”œโ”€โ”€ components/       # Reusable components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ header.njk
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ footer.njk
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ post-card.njk
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ glitch-text.njk
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ neon-button.njk
โ”‚   โ”‚   โ””โ”€โ”€ partials/         # Partial templates
โ”‚   โ”‚       โ”œโ”€โ”€ head.njk
โ”‚   โ”‚       โ””โ”€โ”€ scripts.njk
โ”‚   โ”œโ”€โ”€ _data/                # Global data files
โ”‚   โ”‚   โ”œโ”€โ”€ site.json
โ”‚   โ”‚   โ””โ”€โ”€ navigation.json
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ styles.css    # Main stylesheet
โ”‚   โ”‚   โ””โ”€โ”€ js/
โ”‚   โ”‚       โ”œโ”€โ”€ main.js       # Core functionality
โ”‚   โ”‚       โ”œโ”€โ”€ cursor.js     # Cursor trail effect
โ”‚   โ”‚       โ”œโ”€โ”€ glitch.js     # Glitch animations
โ”‚   โ”‚       โ”œโ”€โ”€ konami.js     # Easter egg
โ”‚   โ”‚       โ”œโ”€โ”€ stats.js      # Stats counter
โ”‚   โ”‚       โ””โ”€โ”€ search.js     # Client-side search
โ”‚   โ”œโ”€โ”€ posts/                # Blog posts (Markdown)
โ”‚   โ”œโ”€โ”€ pages/                # Static pages
โ”‚   โ”œโ”€โ”€ index.njk             # Homepage
โ”‚   โ”œโ”€โ”€ feed.njk              # RSS feed
โ”‚   โ”œโ”€โ”€ search-index.njk      # Search index JSON
โ”‚   โ””โ”€โ”€ sw.js                 # Service worker
โ”œโ”€โ”€ scripts/
โ”‚   โ””โ”€โ”€ generate-sitemap.js   # Sitemap generator
โ”œโ”€โ”€ .eleventy.js              # Eleventy configuration
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ netlify.toml              # Netlify deployment config

๐ŸŽจ Customization

Colors

Edit the CSS variables in src/assets/css/styles.css:

:root {
  --neon-purple: #9D00FF;
  --hot-pink: #FF10F0;
  --cyber-blue: #00F0FF;
  --acid-green: #39FF14;
  /* ... more colors */
}

Site Information

Update src/_data/site.json:

{
  "title": "Your Site Name",
  "description": "Your description",
  "url": "https://yoursite.com",
  "author": "Your Name"
}

Navigation

Modify src/_data/navigation.json to change menu items.

Typography

The site uses Google Fonts by default:

  • Press Start 2P - Pixel headers
  • VT323 - Monospace terminal
  • Space Mono - Body text
  • Orbitron - Futuristic accents

Change fonts in src/_includes/partials/head.njk.

๐Ÿ“ Creating Content

New Blog Post

Create a new Markdown file in src/posts/:

---
title: "Your Post Title"
date: 2025-10-11
tags: 
  - tag1
  - tag2
category: "category-name"
featured_image: "https://example.com/image.jpg"
excerpt: "Brief description"
color_scheme: "#FF10F0"
layout: "layouts/post.njk"
---

Your content here...

New Page

Create a Markdown file in src/pages/:

---
layout: layouts/page.njk
title: "Page Title"
permalink: /page-slug/
---

Page content...

๐ŸŽฎ Easter Eggs

Try the Konami Code on the homepage:
โ†‘ โ†‘ โ†“ โ†“ โ† โ†’ โ† โ†’ B A

Unlocks ultra glitch mode!

๐Ÿšข Deployment

Netlify (Recommended)

  1. Push to GitHub
  2. Connect to Netlify
  3. Build command: npm run build
  4. Publish directory: _site

The netlify.toml is already configured!

Other Platforms

The site works on any static hosting:

  • Vercel
  • GitHub Pages
  • Cloudflare Pages
  • Render

๐Ÿ–ผ๏ธ Image Management

Get Y2K Aesthetic Images

The project includes a custom image scraper for downloading vaporwave/cyberpunk images:

# Download Y2K aesthetic images
npm run scrape-images

# Copy images to site and update posts
npm run integrate-images
npm run update-images

What it does:

  • ๐ŸŽจ Downloads images from Unsplash, Pexels, Pixabay
  • ๐Ÿ” Searches for: vaporwave, cyberpunk, glitch art, etc.
  • ๐ŸŒˆ Filters by your color palette (purple, pink, cyan)
  • ๐Ÿ“ Saves photographer credits automatically
  • ๐Ÿ–ผ๏ธ Creates an HTML gallery to preview

Preview images before using:

open y2k_moodboard/gallery.html

Setting Up API Keys

The image scraper uses free API keys from image providers. To set them up:

  1. Copy the example environment file:

    cp .env.example .env
  2. Get free API keys from:

  3. Add your keys to .env:

    PEXELS_API_KEY=your_pexels_key_here
    PIXABAY_API_KEY=your_pixabay_key_here
  4. Run the scraper:

    npm run scrape-images

Note: The .env file is gitignored to keep your API keys private. Never commit API keys to git!

See scripts/README.md for detailed documentation.

๐Ÿ”ง Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run debug - Build with debug output
  • npm run clean - Remove build output
  • npm run scrape-images - Download Y2K aesthetic images
  • npm run integrate-images - Copy images to site
  • npm run update-images - Update posts with images

Watch Mode

The dev server watches for changes:

  • Templates (.njk, .md)
  • CSS files
  • JavaScript files

๐ŸŽฏ Performance

The site is optimized for speed:

  • Static HTML generation
  • Critical CSS inlined
  • Lazy loading images
  • Service worker caching
  • Minified assets (in production)
  • WebP images with fallbacks

Target Lighthouse scores:

  • Performance: 90+
  • Accessibility: 100
  • Best Practices: 90+
  • SEO: 100

โ™ฟ Accessibility

Built with accessibility in mind:

  • Semantic HTML
  • ARIA labels where needed
  • Keyboard navigation support
  • prefers-reduced-motion support
  • WCAG AA color contrast
  • Screen reader friendly

๐Ÿค Contributing

Contributions are welcome! Whether it's:

  • ๐Ÿ› Bug fixes
  • โœจ New features
  • ๐Ÿ“ Documentation improvements
  • ๐ŸŽจ Design enhancements

Please feel free to open an issue or submit a pull request.

Development Guidelines

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ Credits

Built With

Inspiration

  • Late 90s/early 2000s web design (GeoCities, Angelfire)
  • Vaporwave and Y2K aesthetics
  • Hyperpop and alternative internet culture
  • Windows 98 UI design

๐Ÿ’– Support This Project

If you find this theme helpful, please consider supporting its development:

Ko-fi GitHub Sponsors

Your support helps me:

  • ๐Ÿ› ๏ธ Maintain and improve this theme
  • ๐ŸŽจ Create more open-source projects
  • ๐Ÿ“š Write tutorials and documentation
  • โ˜• Stay caffeinated while coding

Even a small contribution makes a huge difference! Thank you! ๐Ÿ’œ

๐Ÿ“„ License

MIT License - feel free to use this theme for your own projects!

See the LICENSE file for details.


Made with ๐Ÿ’œ by Brennan Brown

If you found this project helpful, consider giving it a โญ!

GitHub stars Twitter Follow

Built with ๐Ÿ’œ using 11ty and way too much neon.

Live Demo โ€ข Report Bug โ€ข Request Feature

About

๐Ÿ’ฟ A Y2K-inspired static blog theme built with Eleventy. Features authentic late 90s/early 2000s web aesthetics with modern performance and accessibility.

Topics

Resources

License

Stars

Watchers

Forks