RedMemo — a self-hosted Reddit front-end (Redlib’s UI, Go back end) that archives what it serves, so it keeps working when Reddit doesn’t.
Repo (Go + Postgres, AGPL-3.0): https://github.com/Meeks233/Redmemo
Live demo (/settings is TOTP-gated, treat as read-only): https://redmemo.meekslab.cc/
Reddit`s funking constraints. Reddit caps each OAuth identity at ~100 API requests per 10 minutes, and IP-bans addresses that push too hard. The one mercy: media (images/video) is served from a CDN and doesn’t count against that quota — only the JSON posts/listing/comment calls do.
Why Redlib runs out. Stateless and unauthenticated — every page view is a fresh upstream hit with nothing kept. Each request pulls only a handful of posts, so the 100-call budget drains in minutes, and there’s no outbound rate limiting to pace it. Worse, it still ships a 2023-era official-app fingerprint; against an unchanged, years-old fingerprint, who else would Reddit block first?
Why RedMemo lasts. I supercharged everything.
- HR outbound rate-limit — Main gate for your poor API credits, sync with the dynamic ring at the topbar, which could help you easily estimate remaing credits.
- Control — 100 users rush to your instance, eveyone just clicks one link and your instance is completely disabled for 10mins…? Why couldn`t I just lockdown my instance and leave room for NP ? You can disable upstream service completely at env/settings. (env will persist)
- 5-layer NP (Natural Prefetch) — L1: main cycle (Pull 100 posts at once) , L2: media, L3: comments, L4 sub icon, L5 audio remux(under construction). I try my best to mimic real human behaviour and disperse those requests, so Redmemo just looks like a real user to Reddit.
- Archive — Reddit cant hack your homelab or vps to erase your records at Postgresql. What NP gets will come here and ready to serve.
- Scored cache — You could define cache size (like 1G at env), large and small media are run through a scoring function (LRU+Size) ; eviction is an incremental, low-IO sweep that drops the lowest-value items.
- Fresh fingerprint — Use the TLS fingerprint from reverse-engineering the official client and auto-derive the User-Agent from Reddit’s official-app release cadence, so it never goes stale. (However Android version is now pinned to 15)
It’s a derivative of Redlib/Libreddit, AGPL-3.0, not affiliated with Reddit.
To be honset, I used a lot of AI — Claude Code (4.6 through 4.8). But core codes were reviewed. The designs (NP, HR, the scored cache) are mine. If you could write better code, we will be very glad to see a new project inheriting from Redlib. Our beloved Redlib just lacks maintenance for almost 3 years, I just try to prolong its life. Anyway I`m just a college student using as much spare time as possible in the last 2 months just try to do something for community…😥


Deeply would translate from Chinese, maintaining the idioms or minimally adapting them. LLMs take your input and generate a seemingly similar output, which technically says the same thing, but the writing style is completely different.
I write both in English and Spanish all the time, and sometimes I give a pass through a translator or LLM to touch up some emails for work, and the difference in writing is very obvious. One is a translation, the other is what your English buddy wrote after you explained to them what to write. Sometimes I do want that corpo bullshit speech that I can’t come up with natively because the email is for some corporate bastard that will appreciate that vomit, though.
Edit: sorry for the long post,but to expand on the “Deeply is not a translator,but a language model”. Most translators nowadays are language models, NLP was originally developed for translation, although it opened the door for LLMs to exist. What I wanted to say is that not all language models work the same way, and the way language models are used in translation and within LLMs is very different.
Disclaimer: English to Spanish translation is one of the best in the world due to the amount of shared text we have, and the writting style, idioms and such don’t change as much and they would for Chinese, so I understand why they would prefer to format it via an LLM. Still, maybe it was too much.
Alright, that makes sense.