This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine The Haunted Museum of Dead Tech 👻 is a museum where the technologies we buried come back as ghosts, and they still have a lot to say.
You walk through the halls, pick an exhibit and talk to its ghost. Each one tells you its story, defends itself from its critics and tries to convince you that it deserves to come back from the dead.
The collection has eight ghosts born between 1971 and 1999: the Floppy Disk, VHS, the Walkman, the Game Boy, Encarta, Internet Explorer, Clippy and MSN Messenger. The Floppy Disk is grumpy because it's still the Save icon and nobody thanks it, VHS gets upset if you didn't rewind, and MSN sends you a nudge if you take too long to answer.
Every ghost is shaped like its object (a floppy disk, a cassette, a little console, an open book, a chat bubble...), with a pastel color, a soft halo and a face that moves its mouth while it talks.
I read the theme in two ways at once. Halloween gave me the ghosts and the séances. Día de los Muertos gave me the idea of honoring what is gone: remembering these technologies with love, leaving them offerings and letting them tell their own story. So the museum also has:
The inspiration was simple: I'm a web development student, I got into programming through an HTML game, and I still remember the floppy disks and MSN nudges. I wanted a place where those memories could talk back.
The museum runs locally with Ollama, so the best way to see it is the video. To run it yourself, the instructions are in the repo.
A haunted museum where dead (or almost dead) technologies come back as ghosts.
Built for the Hacktoberfest open-source AI challenge, week "Ghost in the Machine" Every ghost runs on Gemma 3 (4B) through Ollama, locally. No API keys, no cloud.
Open-source AI used: The rest of the stack:
One Markdown file per ghost. Each exhibit is a .md file. The frontmatter is the ghost's soul (personality, catchphrase, what its critics say, its color, shape and special offering) and the body is its historical archive: life, death, defense and why it should come back. The same file is used twice: Astro renders it as the exhibit plaque, and the server puts it in the model's system prompt as the only thing the ghost remembers. The ghost is told to say its memory is "foggy" instead of inventing dates. A 4B model can make things up easily, so I checked every archive myself. Adding a new ghost means adding one file.
Making a small model behave:
Your memories stay home. The guestbook, the offerings and your repo history are saved in small JSON files on your own machine. Talking to your old projects never sends your code or your messages to someone else's server.
It works with the lights off. The museum runs fully offline. The graveyard needs the internet only the first time: after that, repos, epitaphs and memories are cached locally. A museum of technologies that disappeared because a company switched them off shouldn't depend on a service that can be switched off too.
I could compare and choose. I tried the same ghosts with Gemma 3 and Qwen 2.5. Gemma kept the characters much better, so it's the default. With a closed API I would have used whatever model I was given. Here I compared them myself, and anyone who prefers another model can switch it from the header.
It costs nothing to haunt. No API keys, no tokens, no bills. You can debate with ghosts all night.
And there's an irony I love: many of the ghosts in this museum died because someone else decided for them. Microsoft retired MSN Messenger and replaced it with Skype, and Encarta was shut down along with all its websites. Building their museum with open tools felt like the right way to honor them.
I built the museum with an AI coding assistant, in one long conversation. It wrote much of the code, but the direction was mine: I turned a repo graveyard idea into a museum of dead tech, chose the ghosts my generation grew up with, asked for each one to have the shape of its object, and decided what stayed and what went.
My other job was testing everything on my laptop and reporting what broke: ghosts answering only in English, GitHub's rate limit, duplicated offerings, a repo ghost claiming it created itself... Each one became a fix. Learning to explain clearly what was wrong and decide when something was finished was the most interesting part for me.
As a kid, floppy disks were how I first got close to a computer. They were my way in, and everything that came after started there. So "talking" to the Floppy Disk ghost felt special: like saying thank you to the thing that opened the door for me.
But the moment that really landed was in the graveyard. I summoned the ghost of one of my own abandoned repos, asked it who created it, and it answered with my name and asked me why I left. It's a strange feeling to be questioned by your past self's code. I didn't have a good answer. 👻