/ipv4-events

Windows retro style timeline of technological events during the IPv4 era.

Primary LanguageJavaScriptMIT LicenseMIT

ipv4.events 🌐

Welcome to ipv4.events, a community-driven timeline of the Internet’s IPv4 era β€” from ARPANET and TCP/IP to cloud, AI, space, and beyond.
The site uses a nostalgic Windows 95-style design and runs on GitHub Pages.

🌍 Live Website

https://ipv4.events

πŸ“‚ Repository Structure

ipv4-events/
β”œβ”€β”€ docs/                                      # Public site root served by GitHub Pages
β”‚   β”œβ”€β”€ index.html                             # Main app (Win95 UI, loads data & renders timeline)
β”‚   β”œβ”€β”€ 404.html                               # Custom Win95-style β€œblue screen” 404 page
β”‚   β”œβ”€β”€ robots.txt                             # Crawling rules (allows all + sitemap pointer)
β”‚   β”œβ”€β”€ sitemap.xml                            # SEO sitemap (auto-generated by workflow)
β”‚   β”œβ”€β”€ icons/                                 # Static icons & social share image
β”‚   β”‚   β”œβ”€β”€ social-card.png                    # Open Graph / Twitter card
β”‚   β”‚   └── …                                  # Win95/98/NT/W2K/XP .ico files used by UI
β”‚   β”œβ”€β”€ css/                                   # Stylesheets
β”‚   β”‚   └── style.css                          # Global styles (layout, retro theme, mobile drawer)
β”‚   β”œβ”€β”€ js/                                    # Client-side code (no bundler required)
β”‚   β”‚   └── app.js                             # Data load, filters, pretty URLs, rendering, drawer
β”‚   β”œβ”€β”€ category/                              # Pretty URL stubs (redirect to ?cat=… filter)
β”‚   β”‚   └── <slug>/index.html                  # One folder per category (SEO + canonical link)
β”‚   β”œβ”€β”€ decade/                                # Pretty URL stubs (redirect to ?dec=… filter)
β”‚   β”‚   └── <1990s>/index.html                 # One folder per decade (SEO + canonical link)
β”‚   └── data/                                  # Human-editable JSON data (single source of truth)
β”‚       β”œβ”€β”€ categories.json                    # Category IDs/labels/icons (canonical list)
β”‚       └── events/                            # Events split by topic; listed in manifest.json
β”‚           β”œβ”€β”€ manifest.json                  # Load order for all event JSON files
β”‚           β”œβ”€β”€ standards.json
β”‚           β”œβ”€β”€ governance.json
β”‚           β”œβ”€β”€ rirs.json
β”‚           β”œβ”€β”€ networking.json
β”‚           β”œβ”€β”€ backbone.json
β”‚           β”œβ”€β”€ submarine-cables.json
β”‚           β”œβ”€β”€ wireless.json
β”‚           β”œβ”€β”€ ixp-nog.json
β”‚           β”œβ”€β”€ hardware-vendors.json
β”‚           β”œβ”€β”€ os-windows.json
β”‚           β”œβ”€β”€ linux.json
β”‚           β”œβ”€β”€ mobile-os.json
β”‚           β”œβ”€β”€ programming.json
β”‚           β”œβ”€β”€ software.json
β”‚           β”œβ”€β”€ browsers.json
β”‚           β”œβ”€β”€ streaming-multimedia.json
β”‚           β”œβ”€β”€ social.json
β”‚           β”œβ”€β”€ messaging.json
β”‚           β”œβ”€β”€ ai.json
β”‚           β”œβ”€β”€ quantum-nextgen.json
β”‚           β”œβ”€β”€ metaverse-xr.json
β”‚           β”œβ”€β”€ security-policy.json
β”‚           β”œβ”€β”€ security.json
β”‚           β”œβ”€β”€ policy-regulation.json
β”‚           β”œβ”€β”€ finance.json
β”‚           β”œβ”€β”€ market.json
β”‚           β”œβ”€β”€ cloud.json
β”‚           β”œβ”€β”€ serverless.json
β”‚           β”œβ”€β”€ edge.json
β”‚           β”œβ”€β”€ cdn.json
β”‚           β”œβ”€β”€ datacenters.json
β”‚           β”œβ”€β”€ satellite-internet.json
β”‚           └── space.json
β”œβ”€β”€ scripts/                                   # Dev/automation scripts (run in CI or locally)
β”‚   β”œβ”€β”€ generate-sitemap.mjs                   # Builds docs/sitemap.xml from categories & routes
β”‚   └── generate-pretty-pages.mjs              # Generates docs/category/* and docs/decade/* stubs
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── sitemap.yml                        # CI: runs on push to main; regenerates sitemap.xml
β”œβ”€β”€ README.md                                  # Project overview, how to run/edit/deploy
β”œβ”€β”€ CONTRIBUTING.md                            # How to add events, categories, links (incl. Wikipedia)
β”œβ”€β”€ LICENSE                                    # Project license
└── CNAME                                      # Custom domain for GitHub Pages (ipv4.events)

πŸ“ Event Format

Each event is defined in JSON. Example:

{
  "id": "1981_rfc791",
  "year": 1981,
  "categories": ["Standards"],
  "title": "RFC 791 β€” IPv4 Published",
  "overview": "The Internet Protocol version 4 (IPv4) is standardized in RFC 791, defining the dominant packet format for decades.",
  "hashtags": ["RFC791","IPv4","Standards"]
  "links": {
    "wikipedia": "https://en.wikipedia.org/wiki/IPv4"
  }  
}

Fields

  • id: unique identifier (lowercase, underscores, no spaces)
  • year: integer (e.g. 1981)
  • categories: array of category IDs from categories.json
  • title: short event title
  • overview: 2–3 sentence description
  • hashtags: keywords for search & filtering
  • links (object, optional) β€” external references
    • wikipedia (string, optional) β€” URL to relevant Wikipedia article
    • (future keys may include: official, archive, news, etc.)

πŸ“‚ Categories

Categories are defined in data/categories.json with icons. Example:

{
  "id": "Standards",
  "label": "Standards",
  "group": "Standards & Governance",
  "iconUrl": "icons/example.ico"
}

🀝 Contributing

We welcome contributions! Please read CONTRIBUTING.md for guidelines on how to add new events, categories, or icons.

πŸ›  Development

The site is static HTML + JS hosted on GitHub Pages.

  • Icons: Windows 95/98 Icon Set
  • Design: Windows 95 nostalgia + modern filters
  • Deployment: GitHub Pages auto-deploys from /docs/

πŸ“œ License

  • Code: MIT License
  • Content: CC BY-SA 4.0 (attribution required)

πŸ‘Ύ Made with πŸ’Ύ by IPXO and contributors.