How This Site Was Made
A lot of people have been asking me how I built this site. The short answer? Eleventy and a whole lot of 90s inspiration.
Why Eleventy?
I chose Eleventy for a few reasons:
- Simple - It's just JavaScript. No complex build processes.
- Fast - Static sites are lightning quick.
- Flexible - Use any template language you want.
- No JavaScript Required - The output is pure HTML and CSS.
Plus, it's perfect for personal sites like this one!
The Tech Stack
Here's what powers this retro wonderland:
{
"generator": "Eleventy",
"templates": "Nunjucks",
"styling": "Pure CSS",
"hosting": "Your choice!",
"vibes": "Immaculate"
}
Project Structure
The basic structure looks like this:
retroweird/
├── src/
│ ├── _includes/
│ │ ├── layouts/
│ │ └── components/
│ ├── posts/
│ ├── pages/
│ ├── css/
│ └── js/
├── _data/
└── .eleventy.js
Key Features
1. Modular Components
Everything is broken down into reusable components:
- Header
- Footer
- Sidebar widgets
- Badge wall
- Guestbook
- Webring
This makes it easy to customize what shows up where.
2. Multiple Themes
I built four different themes:
- Default - Classic GeoCities vibes
- Vaporwave - A E S T H E T I C
- GeoCities - Maximum nostalgia
- MySpace - Early 2000s social media
You can switch between them by changing one line in the config!
3. Data-Driven Content
All the customizable stuff lives in JSON files:
site.json- Site settingsbadges.json- 88x31 button collectionblogroll.json- Cool linkswebring.json- Webring navigationguestbook.json- Visitor messages
4. IndieWeb Ready
The theme includes support for:
- Microformats2
- RSS feeds
- Webmentions (optional)
- rel="me" links
The CSS
The styling is pure CSS with CSS custom properties for easy theming:
:root {
--font-pixel: 'Silkscreen', monospace;
--font-display: 'Press Start 2P', monospace;
--font-body: 'VT323', cursive;
}
Each theme overrides these variables to create totally different looks.
JavaScript Enhancements
The site works perfectly without JavaScript, but I added some fun extras:
- Cursor trail effects
- Random link button
- Visitor counter animation
- Easter eggs (try the Konami code!)
All of it respects prefers-reduced-motion for accessibility.
Getting Started
Want to build your own retro site? Here's how:
-
Install Eleventy
npm install @11ty/eleventy -
Clone the theme
git clone https://github.com/yourusername/retroweird -
Customize
Edit_data/site.jsonwith your info -
Build
npm run build -
Deploy
Upload to Neocities, Netlify, or anywhere!
Tips for Retro Design
- Embrace maximalism - More is more!
- Use web-safe fonts - Or fun Google Fonts
- Don't be afraid of color - Neon everything!
- Add personality - This is YOUR site
- Have fun - That's the whole point!
Resources
- Eleventy Docs
- GifCities - Free retro GIFs
- 88x31 Buttons - Button collection
- Google Fonts - Retro fonts
Questions? Comments? Sign my guestbook or check out the GitHub repo!
Happy building! 🚀