{"slug": "dead-internet-lost-online-found-again", "title": "DEAD INTERNET 🕸️: Lost Online. Found Again.", "summary": "A developer built DEAD INTERNET, an open-source, local-first digital archaeology platform that turns preserved web fragments into interactive investigations. The platform combines deterministic evidence discovery with an optional local AI investigator powered by Ollama, and ships with four fictional investigations featuring interconnected documents, clues, timelines and predefined solutions. It is built with React and FastAPI, and one sample case, The Forgotten Blog, asks users to determine whether recovered entries predicted a real fire or whether the recovered ordering hides a different explanation.", "body_md": "**An Open-Source AI Digital Archaeology Platform | Local AI | Ollama | React | FastAPI**\n\nWhat happens when a website disappears?\n\nA personal homepage that someone spent years building. A forum where people once shared ideas. A small community that slowly stopped posting. A software project that was abandoned halfway through.\n\nThe internet moves forward, but not everything gets preserved.\n\nSometimes, all that remains are fragments: old HTML files, text backups, disconnected conversations, timestamps, and incomplete documentation.\n\nWe wanted to explore what it would look like to investigate those fragments instead of simply reading them.\n\nThat's how **DEAD INTERNET** came to life.\n\nDEAD INTERNET is an open-source, local-first digital archaeology platform that turns preserved digital documents into interactive investigations.\n\nInstead of treating archived files as disconnected pieces of text, the platform lets you explore them, discover clues, connect evidence, reconstruct timelines, and investigate what might have happened.\n\nIt combines deterministic evidence discovery with an optional local AI investigator powered by Ollama.\n\nThe idea is simple:\n\n**Don't just browse the remains of the internet. Investigate them.**\n\nThe platform includes four fictional investigations, each with interconnected documents, clues, timeline events, and a predefined solution.\n\nA personal website preserved through an old backup. Explore its pages, metadata, and fragments to reconstruct the story behind the abandoned homepage.\n\nA once-active online community with fragmented discussions and disconnected conversations. Piece together what happened through its surviving posts.\n\nAn abandoned software project with documentation, development notes, and incomplete records. Investigate the decisions and events that led to its disappearance.\n\nA collection of disconnected blog posts with missing context. Follow references and timestamps to understand the story behind them.\n\nEach archive is designed as a compact, playable mystery rather than a collection of unrelated sample documents.\n\nOne of the sample investigations is called **The Forgotten Blog**.\n\nThe Paper Moon blog survives as three entries and an export note. At first glance, the recovered files seem to predict a station fire.\n\nBut is that actually what happened?\n\nThe investigation asks:\n\n*Did Paper Moon predict a real fire, or does the recovered ordering hide a different explanation?*\n\nThe Archive Explorer provides a preserved-file browser alongside a read-only document viewer.\n\n**Screenshot 1: The Recovered Clock Entry**\n\nThe first document, `01-the-clock.md`, introduces the mysterious station incident through a story dated June 9, 1987, but published in February 2005.\n\n**Screenshot 2: Following The Next Document**\n\nThe second entry, `02-the-platform.md`, adds an important detail: the character had already taken the last bus. It also includes an author's note explaining that the station name was borrowed from an old photograph and the characters were fictional.\n\nThe second document changes how the first entry should be interpreted.\n\nThat's the kind of interaction we wanted to build: a small collection of preserved documents that gradually reveals a larger story.\n\nThe experience follows a simple investigation workflow.\n\n**1. Explore The Archive**\n\nSelect an investigation from the archive library. Browse preserved documents, inspect their contents, and examine available metadata.\n\n**2. Discover Clues**\n\nCollect predefined evidence from documents. Each discovered clue connects to supporting artifacts and contributes to the investigation.\n\n**3. Connect The Evidence**\n\nThe Clue Board brings discovered evidence together so you can understand relationships between different documents.\n\n**4. Reconstruct The Timeline**\n\nRelevant events appear chronologically with references to their supporting artifacts.\n\n**5. Ask The AI Investigator**\n\nAsk questions about the archive, explore possible relationships, identify contradictions, and request evidence-based summaries.\n\n**6. Generate An Investigation Report**\n\nReview your findings and export the investigation as a Markdown report.\n\nThe predefined solutions are independent of AI-generated interpretations. Collecting evidence, completing investigations, and accessing fictional ground-truth solutions do not depend on Ollama.\n\nWe also wanted DEAD INTERNET to work beyond the four sample mysteries.\n\nThat's where **My Own Archive** comes in.\n\nUsers can import their own preserved digital documents:\n\nThe platform extracts readable text and available metadata while preserving original filenames.\n\nImported archives use the same investigation engine as the predefined cases.\n\nUploaded content is treated as evidence, not executable code. HTML is displayed as escaped source text rather than a live webpage.\n\nOne important distinction: imported archives provide document observations, not fabricated mystery solutions. The platform investigates what is actually present in the supplied files.\n\nWe wanted the architecture to remain modular and relatively lightweight. The same investigation engine needed to work with both fictional sample archives and user-imported documents.\n\n| Component | Technology | \n|---|---|\n| Frontend | React, JavaScript, Vite | \n| Styling | Tailwind CSS | \n| Navigation | React Router | \n| Icons | Lucide React | \n| Backend | Python, FastAPI | \n| Database | SQLite | \n| Validation | Pydantic | \n| Local AI | Ollama | \n| Testing | pytest | \n\nThe application follows a straightforward architecture:\n\n```\nReact + Vite Frontend\n        |\n        v\nCentralized API Client\n        |\n        v\n    FastAPI Backend\n        |\n        |---- Archive Service\n        |         |\n        |         v\n        |       SQLite\n        |\n        |---- File Ingestion\n        |\n        |---- Clue Engine\n        |\n        |---- AI Investigator\n                  |\n                  v\n                Ollama\n             Local Model\n```\n\nThe backend is divided into dedicated modules:\n\n`main.py` handles API routes.`archive_service.py` manages archives, artifacts, and investigation state.`file_ingestion.py` validates and extracts uploaded documents.`clue_engine.py` handles deterministic clues, timelines, and reports.`ai_investigator.py` manages local model interactions.`schemas.py` defines request and response structures.\nThis separation keeps the investigation logic independent of the frontend and makes it easier to extend the platform with additional archive types.\n\nOne of the central parts of DEAD INTERNET is its local AI investigator.\n\nWe chose **Ollama** because we wanted developers to experiment with open-weight language models without requiring hosted AI APIs or paid API keys.\n\nThe application communicates with Ollama locally through its generation endpoint.\n\nThe AI Investigator supports:\n\nAn AI model can produce a convincing explanation even when the source documents don't support it. That's particularly dangerous in an investigation tool.\n\nSo we designed DEAD INTERNET to distinguish three things:\n\n**Facts:** Information directly supported by supplied documents.\n\n**Hypotheses:** Possible interpretations and relationships that require further investigation.\n\n**Unknowns:** Questions that the available evidence cannot answer.\n\nAI responses include source filenames and relevant excerpts. The backend validates citation filenames, artifact scope, and quoted text against the supplied evidence.\n\nAI-generated interpretations do not automatically become verified clues or timeline events.\n\nIf Ollama is unavailable, the application reports the failure instead of pretending that an investigation succeeded.\n\nThe deterministic investigation workflow continues to work without AI.\n\nAllowing users to upload old websites and documents introduces another challenge: untrusted files.\n\nWe wanted the application to treat uploaded content as evidence, not executable code.\n\nSome of the precautions include:\n\nUploaded content stays in the locally configured SQLite database. When AI analysis is requested, relevant excerpts are sent to the configured Ollama service.\n\nThis is a local-first design, not a claim of complete security. The current MVP does not include authentication, encryption at rest, or multi-user access controls.\n\nWe didn't want DEAD INTERNET to become another AI wrapper where the entire experience depends on a model generating text.\n\nThe investigation engine and the AI investigator have different responsibilities.\n\nThe deterministic system manages evidence, progress, predefined solutions, and reports.\n\nThe AI helps explore possible interpretations of the available documents.\n\nThat distinction means users can still complete investigations without installing a model.\n\nIt also makes the project easier to extend without turning every feature into an AI-generated response.\n\nThe project includes a focused backend test suite covering:\n\nThe verification commands are:\n\n```\n.\\.venv\\Scripts\\python.exe -m pytest tests -q\n\nnpm.cmd --prefix frontend run build\n```\n\nThe Ollama failure tests use mocked transport, so they don't require a running model. A separate live-model smoke test is needed to evaluate actual inference quality.\n\nThere is still plenty of room to take this further.\n\nSome areas we'd like to explore:\n\nThe goal is to make digital archaeology more interactive while keeping the underlying evidence inspectable.\n\n**DEAD INTERNET** is a collaborative project built with my friend [@pranitha_prakash_6c8f7ad7](https://dev.to/pranitha_prakash_6c8f7ad7).\n\nWe worked on bringing together local AI inference, preserved digital archives, evidence-based investigations, and an interface that turns exploring forgotten internet fragments into something interactive.\n\n**Project Repository:** [DEAD INTERNET on GitHub](https://github.com/abirami-prabhakar/Dead-Internet)\n\nThe project is open source under the MIT License. Contributions, feedback, and ideas for exploring digital archaeology are welcome.\n\nBuilt with React, FastAPI, SQLite, Ollama, and a little curiosity about the parts of the internet we leave behind.\n\n🕸️", "url": "https://wpnews.pro/news/dead-internet-lost-online-found-again", "canonical_source": "https://dev.to/abirami_prabhakar/dead-internet-lost-online-found-again-4b2a", "published_at": "2026-10-31 17:14:27+00:00", "updated_at": "2026-10-31 17:22:30.384474+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-tools", "developer-tools", "generative-ai"], "entities": ["DEAD INTERNET", "Ollama", "React", "FastAPI", "The Forgotten Blog", "Paper Moon"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/dead-internet-lost-online-found-again", "markdown": "https://wpnews.pro/news/dead-internet-lost-online-found-again.md", "text": "https://wpnews.pro/news/dead-internet-lost-online-found-again.txt", "jsonld": "https://wpnews.pro/news/dead-internet-lost-online-found-again.jsonld"}}