Stop Scrolling My Archive. Ask My Librarian.
73 articles across Medium and Substack. A private RAG, a Medium paywall bypass, and an invite-only door. Here's what I shipped.
Why I built a librarian for my own archive
I was in the shower last week, thinking about something that’s been bothering me for a while: I have 73 articles spread across Medium and Substack, and there’s no single place to find them.
Medium has 56. Substack has 17. Different titles, different series, different keywords. If you want to find the one where I wrote about DDD in a Unity game, you’d have to scroll past 55 other posts on Medium, then check Substack just in case, and hope you remember the exact word I used in the title.
Nobody is going to do that. Not even me.
So I built one place that knows all of them — and an AI librarian who can find the right one when you ask.
What I built
library.digitalcraftworkshop.com
It’s a private reading room with an AI librarian called Archie. You ask him anything about what I’ve written, and he does four things:
Searches the entire archive semantically — no keyword matching, he understands what you mean
Pulls the 5 most relevant chunks from across all 73 articles
Write a short synthesis with source links
Points you at the full piece if you want to read it
You can also just browse the shelves — thematic book-spine carousels grouped by Architecture, Gamedev, AI, Build Log, Shop Notes, Azure, the .NET / TypeScript crossovers, and Reflection. Click a spine, read the article.
Every Medium article is served through a friend link, so non-members get the full piece without paying.
What it actually answers
A few queries that return a real, useful synthesis today:
“How do I apply DDD to a Unity game?”
“What should I check after AI writes my code?”
“Run a SaaS side project on $0 infra.”
“What’s the TypeScript equivalent of C# LINQ?”
“Explain Clean architecture without the buzzwords.”
Each answer cites the specific articles it's pulling from — no made-up facts, no hallucinated URLs. If it's not in the archive, Archie says so instead of guessing. That's the difference between using AI as a search engine and using it as something more useful.
The 60-second tech tour
Under the hood, it's a textbook RAG pipeline on the cheapest infra I could find — same philosophy as Drippery, different problem:
Indexing. Every published article from Article Forge (my content pipeline) gets chunked on H2 boundaries, embedded with OpenAI’s
text-embedding-3-smallstored in Postgres via pgvector.Retrieval. Your question gets embedded, I run a cosine-similarity search, fetch the top 15 chunks, collapse them per article (Medium > Substack preference), and return the top 5.
Synthesis. The question + retrieved chunks go to Claude Haiku 4.5 with a prompt that’s aggressive about “cite, don’t invent.” Haiku is fast, cheap, and handles citations well — Opus would be overkill here.
Hosting. Next.js 16 on Fly.io (Frankfurt), scale-to-zero on a 512 MB shared-cpu machine. Cold start ~1 s, warm responses under 300 ms end-to-end. Bill so far: about the price of a coffee per month.
Medium paywall bypass. For every Medium article, I store the friend link (
?source=friends_link&sk=…) in the article record. When the Library surfaces a Medium link, it prefers the friend URL. Non-members read the full post without a subscription.
Access model
Running embeddings and Claude inference costs real money per query. So the Library is invite-only, with a daily quota per reader:
Substack free subscribers: 5 queries/day
Paid subscribers (when I add paid): TBD
Non-subscribers(token still needed): 2 queries/day
Quotas reset at UTC midnight. If you hit the cap, Archie tells you to come back tomorrow — he doesn’t pretend to be out of order.
Every reader gets a personal access token. It lives in a /?k=… URL that I send you once, your browser remembers it. If it ever leaks, I can rotate it in the admin panel, and your old link goes dark immediately.
How to get in
Right now, the door is unlocked for:
Current Substack subscribers — reply to this email, and I’ll send your access link within a day
Readers who know me from Medium / Twitter / elsewhere — ping me on Substack chat or at danielrusnok@gmail.com with the article you remember reading; you get a non-subscriber token with 2 queries/day
I’m not gatekeeping to be precious about it. Every query is a paid API call and I’d rather keep the door open to real readers than throw it wide for bots that would drain the budget in an hour.
What’s next on the build log
A few things I’m working on for the next release:
Thread history — right now, every question is stateless. I want Archie to remember the last 2–3 turns so you can ask follow-ups.
Paid tier — unlimited queries on Substack paid. Still figuring out the price point.
Auto-sync on publish — today, new articles get indexed when I run a script. Should happen automatically when Article Forge marks a post as published.
Better catalog search — browsing 73 spines is fun for ~10, tedious for 30+. Need a filter bar.
This series — [Shop Notes: Library] — is where I’ll write about those as they ship, same as I’ve been doing for Shop Notes: Drippery.
Related Reading
The post where the Digital Craft Workshop started
Reply with a question
Here’s the thing that would help me most: reply to this email with a question you’d want to ask the archive.
If Archie answers it well, I’ll know the coverage is good. If he misses, I’ll see what’s missing. And you get a free preview of the Library, whether or not you end up taking the invite.
The whole reason I wrote 73 articles is so people could read them. It shouldn’t take detective work to find the one that answers your question. Now it doesn’t.









