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.

  • TORFdot0@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    24 days ago

    I almost can’t use Reddit from search anymore because the app nag completely locks up the web page but if you can’t be bothered to write the post pitching your software, makes me wary trusting the software itself

  • hexagonwin@lemmy.today
    link
    fedilink
    English
    arrow-up
    0
    ·
    26 days ago

    the idea sounds interesting and its also similar to what ive considered making some time ago. but why tf did you mess it up with this ai slop wall of text? heck, i’d even understand if you used LLMs in the code due to lack of skills, i’m also not a good programmer and i’m sympathetic. but there’s really no reason for having this entire post written by an LLM.

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

    Can you edit your post to be shorter and more concise and add an AI disclaimer about how much of your project is done with AI and in which capacity you use LLMs to write it?

  • BakedCatboy@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    26 days ago

    Honestly I like the idea of your project but the writing style of your post is very grating.

    • 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.

          • 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.

          • 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
                ·
                24 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
              ·
              24 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.

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

    I built

    Did you, though?

    (Edit to add)

    Okay, that was mean of me, I’m a little sorry. This is actually a really good idea, I’ve often been frustrated when using Redlib. But people have got to stop using LLMs to do this stuff! Use your own brain!

    I understand that English isn’t your first language, and people can be jerks to anyone whose English isn’t perfect online. But when you reply to people with that distinctive LLM cadence, it comes across as disrespectful; what people think is, “Oh, you don’t even care enough to write your own response.”

    If you reply using your own words, and explain that you’re still learning English, that helps a lot. Anyone who’s still rude to you after that, they never wanted to be helpful in the first place.

  • arcine@jlai.lu
    link
    fedilink
    English
    arrow-up
    0
    ·
    24 days ago

    I would have never predicted AI would mean we get a million front-ends and control panels for shit no one needs, but now that we’re here it kinda makes sense.

    Seriously thinking of leaving this community because of these posts.

  • Redjard@reddthat.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    26 days ago

    Your demo instance seems unable to open any other subs.
    Also it redirects to an archive path which is not how redlib works and makes me question how the sesmless response regardless of state is supposed to work.
    Once it dumps me in the archive for whatever reason, don’t I have to go back manually? (Not that even seems possible right now)

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

      Thats the designed behaviour, because expose your instance at public network and welcome anyone to open anything might quickly exhaust your poor oauth tokens’ use credits, which are just around 100 API requests per 10 mins.

      So there is a main switch called “Disable upstream requests”, let that cloud svg besides searchbox to be grey and save your credits for NP archiving.

      Anyway, if you host your own instance at homelab and turn that switch off, every sub is normal and free to browse.

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

      Five layers of NP (Natural Prefetch), HR (the outbound rate-limit layer) and the caching/failover stack aren’t boilerplate — they’re original designs I built from scratch. The first demo did come together fast, sure, but what you don’t see behind it is two-plus months of testing, reverse-engineering how Reddit actually behaves, hunting down bugs, iterating, and writing a real test suite.

      One concrete example: I wrote the cache-eviction logic myself. Small and large files are each run through a scoring function, and every cleanup pass consults that score to decide what to drop — done as a non-IO-intensive, incremental sweep instead of a blocking purge. That’s not something a one-shot prompt hands you; it came out of actually watching the thing misbehave under load and tuning it until it didn’t.

      If you want to dig in, the commit history and the test suite are right there in the repo — happy to walk through any part of the design.