03
A chat app as a filesystem

DiscVault

Unlimited large-file storage built on top of Discord’s own per-message attachment cap.

TypeScript discordfile-storagecli
click to turn
Chunk, upload, rebuild

Scrub the track to move a file through the pipeline.

Chunked upload in progress
running Chunked upload in progress
Upload path
file2–30 GB chunkerstreamednever bufferedsized under cap 0123 chunks discord channelone chunk = one messageparallel, rate-limitedresumable manifestguild · channel · messageper chunk rebuildreassembleSHA-256 verifybyte for byte

Nothing is stored anywhere else. The manifest is the only thing that knows where a file lives.

The manifestshape, not source
{
  "name": "archive.mkv",
  "size": 32212254720,
  "sha256": "9f2a…c41b",
  "chunks": [
    { "i": 0, "guild": "…", "channel": "…", "message": "…" },
    { "i": 1, "guild": "…", "channel": "…", "message": "…" }
  ]
}

Shape only — a per-file record of every chunk’s server, channel and message. It is what makes reassembly possible.

The hard part

The file is streamed and never fully loaded into memory — a 30 GB upload cannot buffer. Chunks are pushed in parallel without tripping rate limits, and the whole upload is resumable if it dies mid-way.

On download, SHA-256 verifies the rebuilt file matches the original byte for byte. Without that, silent corruption across thousands of messages would be undetectable.

Sharing without sharing secrets

An invite code carries the server and channel IDs — not a bot token. A friend brings their own bot, joins the same channels, and sees the same vault. Nobody ever hands over a credential.

Vault library
running Vault library
Outcome

DiscVault

Chapter 04
DiscRec

Records Discord’s audio. Open it, press record, get one file. The Windows release is under 1 MB.

continue
03 — DiscVault
scroll · drag · ← →