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
- ๐จ 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
- Node.js 14+ and npm
# Clone the repository
git clone https://github.com/brennanbrown/hyperpop.git
cd hyperpop
# Install dependencies
npm install
# Start the development server
npm run devVisit http://localhost:8080 to see your site!
# Build the site
npm run build
# Output will be in _site/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
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 */
}Update src/_data/site.json:
{
"title": "Your Site Name",
"description": "Your description",
"url": "https://yoursite.com",
"author": "Your Name"
}Modify src/_data/navigation.json to change menu items.
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.
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...Create a Markdown file in src/pages/:
---
layout: layouts/page.njk
title: "Page Title"
permalink: /page-slug/
---
Page content...Try the Konami Code on the homepage:
โ โ โ โ โ โ โ โ B A
Unlocks ultra glitch mode!
- Push to GitHub
- Connect to Netlify
- Build command:
npm run build - Publish directory:
_site
The netlify.toml is already configured!
The site works on any static hosting:
- Vercel
- GitHub Pages
- Cloudflare Pages
- Render
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-imagesWhat 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.htmlThe image scraper uses free API keys from image providers. To set them up:
-
Copy the example environment file:
cp .env.example .env
-
Get free API keys from:
- Pexels: https://www.pexels.com/api/ (free, no credit card)
- Pixabay: https://pixabay.com/api/docs/ (free, no credit card)
-
Add your keys to
.env:PEXELS_API_KEY=your_pexels_key_here PIXABAY_API_KEY=your_pixabay_key_here
-
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.
npm run dev- Start development servernpm run build- Build for productionnpm run debug- Build with debug outputnpm run clean- Remove build outputnpm run scrape-images- Download Y2K aesthetic imagesnpm run integrate-images- Copy images to sitenpm run update-images- Update posts with images
The dev server watches for changes:
- Templates (.njk, .md)
- CSS files
- JavaScript files
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
Built with accessibility in mind:
- Semantic HTML
- ARIA labels where needed
- Keyboard navigation support
prefers-reduced-motionsupport- WCAG AA color contrast
- Screen reader friendly
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.
- 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
- Eleventy - Static site generator
- Nunjucks - Templating
- Press Start 2P & Jersey 10 - Google Fonts
- Pexels & Pixabay - Free stock photos
- Late 90s/early 2000s web design (GeoCities, Angelfire)
- Vaporwave and Y2K aesthetics
- Hyperpop and alternative internet culture
- Windows 98 UI design
If you find this theme helpful, please consider supporting its development:
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! ๐
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 โญ!
Built with ๐ using 11ty and way too much neon.
Live Demo โข Report Bug โข Request Feature
