DEV Community

Cover image for Exhuming the Lost Web of 1999 with Gemma 3, Browserbase, and Temporal
Malawige Inusha Thathsara Gunasekara
Malawige Inusha Thathsara Gunasekara

Posted on AI-assisted

Exhuming the Lost Web of 1999 with Gemma 3, Browserbase, and Temporal

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine

What I Built

DeadNet Ectoplasm Browser is an autonomous digital archaeology engine and dual-engine web browser that exhumes decaying late-1990s and early-2000s websites and resurrects them into living, interactive software in real time.

Millions of handcrafted web shrines from GeoCities, Angelfire, and early open-source repositories have either vanished or decayed inside web archives due to secondary link rot missing images, broken stylesheets, 404 subpages, and defunct Perl guestbook scripts (/cgi-bin/guestbook.pl). DeadNet acts as a digital ofrenda for this lost era: rather than displaying a static, broken screenshot, it deploys an autonomous AI pipeline to diagnose DOM rot, uncover surviving historical lore across USENET and forum archives, heal dead assets, and transpile defunct server-side CGI scripts into working client-side JavaScript shims.

Key Highlights:

  • The "Ectoplasm Slider": A real-time time-travel scrubber allowing users to morph any exhumed website across three dimensions:
    • 0% (1998 CRT Mode): Authentic HTML 3.2 rendered in an isolated sandbox with CRT scanlines (crt-overlay), working webrings, and client-side CGI guestbook shims.
    • 50% (Haunted X-Ray Mode): Bathes the DOM in glowing emerald ectoplasm (#39ff14), highlighting every AI-reconstructed node with hoverable historical citations.
    • 100% (2026 Reincarnated Mode): Dynamically modernizes the raw archival content into a responsive, accessible Next.js 16 application with dark mode styling and 3D tilt cards.
  • Interactive 3D DOM Topology Holocron: A 360° orbital spatial canvas that projects decaying HTML nodes (<TABLE>, <IMG 0x0>, <A 404>, /cgi-bin/) into interactive 3D geometry with real-time 60 FPS physics.
  • Concurrency-Safe AI Voice Narration: Atmospheric historical lore spoken by an eerie narrator (powered by ElevenLabs Turbo v2.5) with single-stream concurrency protection and toggle-to-cancel controls.
  • Powered by Open-Weight AI: A 3-Pass necromancy engine running open-weight Gemma ensures the early web's chaotic, authentic voice is preserved without sterile corporate scrubbing or recurring API deprecation.

Demo

Click here for the deployed Link.

Or you can try her. 👇👇

DeadNet Ectoplasm Browser — Autonomous Digital Archaeology & Web Resurrection

Exhuming decaying 1990s and 2000s websites into living, interactive modern software in real time.

favicon deadnet.inusha.tech

Code

GitHub logo inusha-thathsara / deadnet-ectoplasm-browser

Autonomous Digital Archaeology & Web Resurrection Engine powered by open-weight AI, Stagehand headless DOM exhumation, and durable workflows.

👻 DeadNet Ectoplasm Browser

An Autonomous Digital Archaeology & Web Resurrection Engine Powered by Open-Weight AI, Headless Cloud Browsing, and Durable Workflows

Next.js 16 React 19 Node.js 22 DeadNet CI Pipeline License: MIT Deploy with Vercel


🧭 Executive Summary & Digital Archaeology Mission

A vast majority of the early web (1995–2008)—including GeoCities fan shrines, pioneering open-source tutorials, indie game compendiums, and personal webmaster logs—has either vanished completely or decayed into digital skeletons. Even when snapshots survive inside the Internet Archive's Wayback Machine, they are frequently crippled by secondary link rot: missing external stylesheets, 0×0 broken image tags, broken frame sets, defunct server-side CGI scripts (/cgi-bin/guestbook.pl), and missing subpages that return HTTP 404 or 500 errors.

DeadNet Ectoplasm Browser is an autonomous digital archaeology engine and dual-engine web browser that exhumes decaying late-1990s and 2000s websites and resurrects them into living, interactive software in real time. Rather than presenting a static, broken archival screenshot, DeadNet:

  1. Dispatches a live headless cloud browser (…

How I Built It

DeadNet Ectoplasm Browser is built around open-weight Gemma 3 (running locally via Ollama with an OpenRouter fallback), orchestrated through a multi-stage, durable pipeline:

flowchart TD
    subgraph UI ["Layer 1: Frontend & Dual-DOM Viewport (Next.js 16 + React 19)"]
        User["Digital Archaeologist / User"]
        Header["Header: 1-Click Presets & URL Summoner"]
        Slider["Ectoplasm Slider (0% - 50% - 100%)"]
        Holocron["3D DOM Topology Holocron (Three/Canvas)"]
        Inspector["Paranormal DOM Inspector & Telemetry"]

        V0["0% Mode: Healed 1998 CRT Iframe (HTML 3.2 + CGI Shims)"]
        V50["50% Mode: Haunted X-Ray (Emerald Ectoplasm + Tooltips)"]
        V100["100% Mode: 2026 Reincarnated (Modern React 19 UI)"]

        User -->|Selects Preset or Enters URL| Header
        Header --> Slider
        Slider --> V0
        Slider --> V50
        Slider --> V100
    end

    subgraph Gateway ["Layer 2: API & Security Boundary (Next.js Server Routes)"]
        ExhumeRoute["/api/exhume (SSE Streaming)"]
        SSRF["SSRF Guard & URL Sanitizer"]
        WhisperRoute["/api/whisper (Concurrency-Guarded Audio Proxy)"]
        HealthRoute["/api/health (System Diagnostics)"]

        Header --> ExhumeRoute
        ExhumeRoute --> SSRF
        User -->|Click Narrate| WhisperRoute
    end

    subgraph Temporal ["Layer 3: Temporal Durable Workflow Engine (ResurrectionPipeline)"]
        direction TB
        Act1["Activity 1: Archival Discovery (Wayback CDX API + id_ modifier)"]
        Act2["Activity 2: Headless DOM Exhumation (Browserbase + Stagehand v4)"]
        Act3["Activity 3: Historical Lore Grounding (SerpApi Forum/USENET Index)"]
        Act4["Activity 4: 3-Pass Necromancy Engine (Open-Weight Gemma 3)"]
        Act5["Activity 5: State Consolidation & Zod Validation"]

        SSRF --> Act1
        Act1 -->|Snapshot URL| Act2
        Act2 -->|Pathology Manifest| Act3
        Act3 -->|Archival Lore| Act4
        Act4 -->|Healed Markup & Modern Entities| Act5
    end

    subgraph Necromancy ["Layer 4: 3-Pass Gemma Synthesis Engine"]
        direction LR
        P1["Pass 1: HTML 3.2 Healer (Tables, Fonts, Tags)"]
        P2["Pass 2: CGI-to-JS Reanimator (Perl to Client Shims)"]
        P3["Pass 3: Modern 2026 Component Transpiler"]

        Act4 --> P1
        P1 --> P2
        P2 --> P3
    end

    subgraph External ["Layer 5: External Providers & Observability"]
        Wayback["Internet Archive Wayback Machine"]
        BB["Browserbase Headless Cloud Grid"]
        Serp["SerpApi Historical USENET Search"]
        Ollama["Local Ollama / OpenRouter (Gemma 3)"]
        ElevenLabs["ElevenLabs Turbo v2.5 (Voice Whispers)"]
        Sentry["Sentry AI Agent Tracing (Latency & Token Spans)"]

        Act1 -.-> Wayback
        Act2 -.-> BB
        Act3 -.-> Serp
        P1 & P2 & P3 -.-> Ollama
        WhisperRoute -.-> ElevenLabs
        Temporal -.-> Sentry
    end

    Act5 -->|SSE Stream Telemetry & DOM Bundle| Inspector
    Act5 -->|Restored Markup & State| Slider

1. The Open-Weight AI Core: 3-Pass Necromancy Engine

At the heart of the engine is a 3-Pass synthesis workflow instructed by Gemma 3:

  • Pass 1 — HTML 3.2 Context Healer: Takes the broken archival DOM and restores missing paragraph text, damaged layout tables, and dead headings while strictly preserving the idiosyncratic vernacular and typography of the 1990s webmaster.
  • Pass 2 — CGI-to-JS Reanimator: Legacy /cgi-bin/guestbook.pl forms and odometer hit counters throw HTTP 500 errors on web archives. Gemma transpiles these defunct Perl scripts into sandboxed, client-side JavaScript shims backed by browser storage, allowing guestbooks to accept new entries 25 years later.
  • Pass 3 — Semantic 2026 Transpiler: Extracts the surviving text, download mirrors, and logs into a strongly-typed Zod schema (Reincarnated2026View), transforming the artifact into modern Next.js 16 components with 3D parallax cards.

2. Headless DOM Pathology Extraction (Browserbase + Stagehand v4)

When a user selects a preset or summons a custom URL, DeadNet queries the Wayback CDX API with the id_ modifier to strip injected archive toolbars. It then dispatches a Browserbase cloud browser instance running Stagehand v4. Stagehand inspects the rotting DOM tree, isolating broken elements (naturalWidth === 0 images, 404 anchors, broken frame sets) and assembling a structured DeadDomManifest.

3. Historical Grounding & Provenance (SerpApi)

AI cannot guess historical facts without hallucinating. When DeadNet discovers missing binary downloads (e.g., lost Dreamcast VMU save editors or Linux sound drivers), SerpApi searches historical forum threads (Sega-16, Linux Audio Developers, USENET archives, and Reddit). These surviving historical snippets are injected directly into Gemma's prompt as grounded truth before synthesis.

4. Durable Orchestration (Temporal) & Observability (Sentry)

Web archives heavily rate-limit crawlers with HTTP 429 errors. We wrap the multi-stage exhumation inside a Temporal durable workflow, enabling transparent exponential retry backoff so excavations never fail midway. Every LLM inference step, Stagehand DOM extraction, and synthesis pass is instrumented with Sentry AI Agent Tracing to track latency spans, token throughput, and execution health.

5. Signature UX & Visual Engineering

  • The Ectoplasm Slider: An interactive scrubber allowing seamless scrubbing between 0% (1998 CRT Mode) in a sandboxed iframe with scanline shaders, 50% (Haunted X-Ray Mode) with glowing #39ff14 ectoplasm highlighting reconstructed nodes with hoverable citations, and 100% (2026 Reincarnated Mode) in modern React 19.
  • Interactive 3D DOM Holocron: Built with an HTML5 3D orbital projection canvas (Spectral3DCanvas.tsx), mapping <TABLE>, <IMG 0x0>, <A 404>, and /cgi-bin/ nodes into spatial geometry rotating at 60 FPS.
  • Single-Stream Voice Whispers: Atmospheric narrations generated via ElevenLabs Turbo v2.5 featuring strict playback concurrency locks and AbortController cancellation to eliminate double-audio overlap when switching presets.

Why Does Open Innovation Matter?

Digital preservation and closed, proprietary AI are fundamentally incompatible. Open innovation made DeadNet possible in three distinct ways that closed APIs never could:

1. Eliminating "API Rot" & Ensuring 50-Year Archival Permanence

The very reason the early web died is that centralized platforms closed, pivoted, or deprecated endpoints. If we build a web resurrection engine on a proprietary cloud API that deprecates model checkpoints every 12 to 18 months, we are repeating the exact mistake that killed Web 1.0!
By running open-weight Gemma locally via Ollama, the entire digital archaeology engine can run completely offline on local hardware decades from now. In 2046, an archivist can spin up this exact codebase and restore an artifact with zero API keys, zero subscription fees, and zero vendor lock-in.

2. Period-Accurate Historical Fidelity vs. Sterile Corporate RLHF

Commercial closed APIs are aggressively RLHF-tuned to produce clean, polite, modern corporate prose and modern React/Tailwind code. When prompted to generate chaotic 1998 HTML 3.2 (<marquee>, <font color="#FF9900">, nested <table border="3">) or adopt the eccentric persona of a late-90s indie webmaster, closed models sanitize or modernize the output against your will. Open-weight Gemma respects the system prompt without corporate guardrail interference, capturing the authentic spirit of early open web culture.

3. Zero Token Anxiety on Massive, Dirty Archival DOMs

Archival HTML from 1999 is notoriously bloated—deeply nested layout tables, inline styling, spacer GIFs, and unminified scripts routinely exceed 30,000+ tokens per excavation. Running proprietary models on thousands of dead sites would rack up enormous metered billing. Running open weights locally or on self-hosted instances eliminates marginal token anxiety entirely.


The Spirit of It

During testing, we loaded an authentic 1999 GeoCities shrine: The Spiral, dedicated to the midnight launch of the Sega Dreamcast on 9/9/99.

In the Wayback Machine, the site was a sad skeleton: the animated Dreamcast swirl GIFs were broken boxes, the VMU save-state editor tarball had thrown a 404 since 2009, and submitting the guestbook caused a browser error.

The moment the pipeline finished, the CRT scanlines flickered across the screen with an authentic 800×600 phosphor glow. The Web Audio synthesizer played a nostalgic dial-up tone. Then, George's eerie ElevenLabs voice whispered:

"A digital ancestor awakens from 1999. The Spiral GeoCities Hub..."

In the 50% X-Ray view, glowing green ectoplasm highlighted the VMU download section. Gemma, grounded by SerpApi forum records from 2004, had reconstructed the exact hex offset memory addresses for Chao garden rings and Sonic emblems. We entered a message into the 1999 guestbook, clicked Submit, and watched our entry append to the page via the client-side JavaScript shim—no HTTP 500 error, no dead server.

It wasn’t just inspecting an archive; it felt like a digital séance. Early webmasters poured thousands of late-night hours into handcrafting personal corners of the internet before algorithmic feeds wiped them out. DeadNet is our ofrenda to keep their work alive.


Prize Categories

We are entering DeadNet Ectoplasm Browser into the following categories:

  • 🏆 Overall Winner: Embodying both Halloween and Día de los Muertos through autonomous digital archaeology and web resurrection.
  • 🤖 Best Use of Gemma: Powered by open-weight Gemma running the 3-Pass necromancy engine (HTML 3.2 healing, CGI-to-JS transpilation, and 2026 component synthesis).
  • 🌐 Best Use of a .tech Domain: Hosted and live on our custom .tech domain at https://deadnet.inusha.tech.
  • ☁️ Best Use of Browserbase: Headless cloud browser DOM pathology extraction via Stagehand v4 SDK.
  • ⚡ Best Use of Temporal: Resilient excavation workflow orchestration surviving Internet Archive HTTP 429 rate limits with exponential backoff.
  • 🔍 Best Use of SerpApi: Grounding missing archival assets against historical USENET, Reddit, and retro gaming forum indices.
  • 🛡️ Best Use of Sentry Agent Tracing: Real-time AI agent tracing measuring per-pass latency, retry spans, and token throughput.
  • 🎙️ Best Use of ElevenLabs: Concurrency-safe, atmospheric historical voice whispers narrating lost webmaster lore with ElevenLabs Turbo v2.5.
  • 🚀 Best Use of DigitalOcean / Render: Full containerized deployment blueprints included in the repository (.do/app.yaml, render.yaml, Dockerfile).

Top comments (0)