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/

If you’ve self-hosted Redlib, you know the feeling: works fine for weeks, then one morning every page is a 429 or a blank 403 and you go hunting for an instance that isn’t dead yet. That’s not bad luck — it’s the ending baked in since Reddit’s 2023 API changes.

Why Redlib is on borrowed time. When Reddit started charging for the API and forcing OAuth, the free path narrowed to a trickle. Front-ends like Redlib survived by not playing along: instead of an API key, an instance impersonates the OAuth flow of Reddit’s own official app. Clever, and it bought the ecosystem two years — but Reddit has spent those years tightening the screws: fingerprinting that handshake, rate-limiting by IP, blocking the ranges where instances cluster. Every push takes another wave of public instances dark.

And here’s the dangerous part: Redlib remembers nothing. It’s a pure proxy — a page passes through and is gone. So when your instance gets blocked, or a mod nukes a thread, or an account deletes ten years of comments, there’s no copy. The thing meant to free you from Reddit still depends on Reddit being reachable and willing, every single time.

RedMemo keeps the Redlib experience but puts a real archive underneath. Same UI, routes, themes and settings cookies; Go back end with Postgres as the system of record. Yes, it still does the stealthy upstream fetch (TLS-fingerprint-spoofing transport) — but that’s table stakes. The parts that matter:

Layered failover, not just a cache TTL. Each request walks a ladder, first rung that answers wins: Redis HTML cache → Reddit API (OAuth quota + outbound rate-limit gate) → Postgres archive → fallback page. When upstream is throttled, you don’t get a 5xx — you get the page from the archive with a small “viewing archived content” banner. Media is content-addressed and deduped by SHA-256 (one image shared across 100 posts is stored once), and nginx streams it straight off disk. A passive prefetcher tops the archive up on a token budget so it never hammers Reddit.

An auth model for an instance you might actually expose. Redlib’s answer to “who can change my settings” is “whoever reaches the URL.” RedMemo gates /settings and /debug behind two factors: a server secret that only unlocks enrolment, then a TOTP shown as a QR exactly once. Sessions are IP-bound HttpOnly cookies; “trust this device” is a separate 30-day cookie capped at 3 devices; 3 wrong codes locks the IP, a burst across IPs trips a global backstop. Browsing the archive stays fully public — only state-changing levers are locked.

Media intel for links inside posts. Bare external links get unfurled into Telegram-style cards — site name, title, description, real thumbnail or inline video — fetched lazily as you scroll (so no host rate-limits you for bursting). It sizes the card from the media’s actual pixel dimensions, so a portrait screenshot renders as a tall card instead of a crushed thumbnail and a tweet’s video plays inline. SSRF-guarded, metadata cached once across all viewers.

Two deployments, two sane defaults. It ships two docker-compose profiles that flip the upstream policy to match where you’re running:

  • Public (internet-facing, behind the TOTP gate): on-demand upstream calls are disabled by default. A public instance usually lives on a cloud IP, which is exactly the kind of address Reddit rate-limits and blocks — so it serves every page straight from the local archive and never burns its quota on a stranger’s click. The passive prefetcher still tops the archive up through the paced OAuth session (the stealthier path that cloud IPs can still pull tokens on), so the archive keeps growing without painting a target on the instance.
  • Homelab (LAN-only, no auth gate): on-demand upstream is on. Point it at your residential line and it fetches first-touch posts and missing media live — the ideal setup for a data hoarder who wants a personal pack-rat box quietly squirreling away everything they read before it vanishes.

It’s a derivative of Redlib/Libreddit, AGPL-3.0, not affiliated with Reddit. I built it because I wanted my own copy of things before they disappear behind Reddit’s walls — if you’ve watched your Redlib instance die and come back and die again, I’d like to hear how this holds up for you.

  • Helix 🧬@feddit.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    26 days ago

    That’s because it’s written by Claude, an LLM. It’s trained on corporate bullshit. The author seems to be a proper software engineer assisted by Claude Code which is OK in my book. They seem to be Chinese and translate everything into English with AI. Since I can’t read Chinese I can’t tell you whether the Chinese readme is also generated:

    I wouldn’t call this project slop, as it clearly has a human touch and not completely written by AI it seems from a first glance at the code, but that’s the reason the writing sounds so “grating”: Chinese person feeding an LLM with idioms not present in English language.

    • ScutterShadow419@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      26 days ago

      Thx for that, I could write my own words anyway, I just thought it would be more native if I use cluade to translate … sorry for those grating words

      • Blisterexe@lemmy.zip
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        26 days ago

        Just so you know in the future it’d probably be better to write your post in chinese and then use deepl to translate it if you can’t write a good text in english. Might end up a tad stilted but people here would like it a lot more, since the text AI generates in english is both artificial (nobody talks like that) and annoying to read.

        • irmadlad@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          26 days ago

          write your post in chinese and then use deepl to translate it

          Honest question: What would be the difference? DeepL uses AI language models and machine learning models for translation. I guess there would be a lack of em dashes so the text doesn’t offend delicate sensibilities.

          DeepL isn’t just a translator—we’re a comprehensive Language AI platform that enables organizations to communicate effectively across languages, cultures, and markets. ~ https://www.deepl.com/en/whydeepl

          • Blisterexe@lemmy.zip
            link
            fedilink
            English
            arrow-up
            0
            ·
            25 days ago

            Their “AI platform” thing is mostly marketing nonsense, they were around before the AI bubble, it’s the same tech as google translate (technically AI, but not the same kind).

            My point was mostly that they should write a text in chinese the way they want then machine translate it to english, so the structure and substance is human-made.

            • irmadlad@lemmy.world
              link
              fedilink
              English
              arrow-up
              0
              ·
              25 days ago

              That seems reasonable. So, basically what I’m hearing is that AI produces a format or style of writing that some find off putting?

          • fushuan@piefed.blahaj.zone
            link
            fedilink
            English
            arrow-up
            0
            ·
            25 days ago

            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.

            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.

        • Passerby6497@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          26 days ago

          Hell, I’d love to see them try their hand at an explanation before the AI text vomit. As long as it’s mostly readable, I’d rather it be a bit stilted but honest rather than this crap.