17 votes

Lilliputian: A Mobile Client for Tiny Tiny RSS

14 comments

  1. smores
    Link
    Looking at git history, apparently I’ve been working on this for about 10 months! It’s a progressive web app build with react/typescript/redux, and relies on redux-sagas and redux-persist (plus...

    Looking at git history, apparently I’ve been working on this for about 10 months! It’s a progressive web app build with react/typescript/redux, and relies on redux-sagas and redux-persist (plus service workers) to provide offline support and a usable experience in spotty networking conditions. I originally started building it when I was frustrated that none of my favorite link aggregators were at all usable on the subway back when I lived in NYC, and now I mostly use it instead of those link aggregators because I actually love having the control over my feed that RSS provides.

    9 votes
  2. [2]
    ffmike
    Link
    Projects like this give me a wistful happy feeling, reminding me of those lovely days long ago, when there were under a thousand weblogs total, before the word "blog" was coined, before atom...

    Projects like this give me a wistful happy feeling, reminding me of those lovely days long ago, when there were under a thousand weblogs total, before the word "blog" was coined, before atom became an alternative to RSS (in turn before atom became a text editor rather than a feed format), and it really felt some of the time like this evolving network of decentralized standards might keep the web non-corporate. Good on you for helping keep that feeling alive.

    7 votes
    1. smores
      Link Parent
      Thank you :) I barely remember the internet as you’re describing it; I grew up with Facebook and YouTube and corporate centralization as the de facto standard practice. But the current state of...

      Thank you :) I barely remember the internet as you’re describing it; I grew up with Facebook and YouTube and corporate centralization as the de facto standard practice. But the current state of the internet makes my skin crawl, and I want to be a part of a movement to put power back in the hands of users. RSS is a teeny tiny first step, but it’s something I love and find incredibly useful!

      3 votes
  3. [4]
    cfabbro
    (edited )
    Link
    Hmmm... I currently use Thunderbird to manage my obscene amount of RSS feed subscriptions, but it's a bit of a big, clunky, bloated beast with a whole whack of email/usenet/chat features I have no...

    Hmmm... I currently use Thunderbird to manage my obscene amount of RSS feed subscriptions, but it's a bit of a big, clunky, bloated beast with a whole whack of email/usenet/chat features I have no need of. But this is the first time I am hearing about Tiny Tiny RSS, and it seems like it would be almost perfect for me... especially with the enable embedded videos plugin, which is something I have been aching to have on Thunderbird for ages now!

    So thanks for introducing Tiny Tiny RSS to me. I will definitely be checking it out, and if I wind up sticking with it, I might even check your mobile client out too. :)

    5 votes
    1. smores
      Link Parent
      So glad to have been able to introduce you to TTRSS! It’s plugin ecosystem is excellent; I probably should add this to the Lilliputian README, but the af_readibility plugin makes Lilliputian...

      So glad to have been able to introduce you to TTRSS! It’s plugin ecosystem is excellent; I probably should add this to the Lilliputian README, but the af_readibility plugin makes Lilliputian significantly more useful by inlining the full article contents when possible. I rarely need to leave the app to read the content, which also gives more control over how the content actually renders.

      3 votes
    2. [2]
      calm_bomb
      Link Parent
      Holly smokes! Did you live under a rock? Tt-rss is one of the most popular OSS RSS readers that sprung up after the demise of Google reader.

      Holly smokes! Did you live under a rock? Tt-rss is one of the most popular OSS RSS readers that sprung up after the demise of Google reader.

      1 vote
      1. cfabbro
        (edited )
        Link Parent
        No. I have just never really been unsatisfied with Thunderbird after over a decade of using it, only experiencing the occasional "I really wish it had this feature" moments, so never really...

        No. I have just never really been unsatisfied with Thunderbird after over a decade of using it, only experiencing the occasional "I really wish it had this feature" moments, so never really bothered to look for alternatives. I did look at some SaaS alternatives at one point a few months ago out of curiosity, but none of them seemed enough of an improvement over Thunderbird to justify a switch (esp for the price). I never considered looking for a self-hosted FOSS one though.

        4 votes
  4. [7]
    calm_bomb
    Link
    @smores I installed yarn, cloned your repo, built lilliputian and installed serve as described in the README, but how do I run serve? I can't find the binary and have no idea where to look for it.

    @smores I installed yarn, cloned your repo, built lilliputian and installed serve as described in the README, but how do I run serve? I can't find the binary and have no idea where to look for it.

    1 vote
    1. [6]
      calm_bomb
      Link Parent
      Found the serve binary, but nothing happens when I try to log in. No loading, no progress, nothing in the CLI (even with serve -d to debug).

      Found the serve binary, but nothing happens when I try to log in. No loading, no progress, nothing in the CLI (even with serve -d to debug).

      1 vote
      1. [3]
        smores
        (edited )
        Link Parent
        Hi there! Do you have a .env file with the REACT_APP_TTRSS_ENDPOINT pointing to your local ttrss instance? If so, and login still isn’t working, would you be able to open the browser console and...

        Hi there! Do you have a .env file with the REACT_APP_TTRSS_ENDPOINT pointing to your local ttrss instance? If so, and login still isn’t working, would you be able to open the browser console and send me any errors you see there? I think you might literally be the first person to try this out other than me, it’s definitely possible that I missed something in the setup!

        EDIT:

        Working on adding better error handling, but if I had to guess at the problem without looking at the console, it's probably a CORS issue! The best way to solve this depends on how you serve your TTRSS instance, but if you're not using a reverse proxy the easiest way is to add this to the bottom of your ttrss/config.php, switching out localhost:3000 for the domain you're serving your Lilliputian instance on:

        if (strpos($_SERVER["SCRIPT_NAME"], 'api/index.php') !== false) {
          header("Access-Control-Allow-Origin: localhost:3000");
          header("Access-Control-Allow-Methods: POST, OPTIONS");
          header("Access-Control-Allow-Headers: Content-Type");
        }
        

        Alternatively, if you're using, e.g., caddy as your reverse proxy:

        ttrss.domain.name {
          cors /api localhost:3000
          header /api Access-Control-Allow-Headers Content-Type
          ...
        }
        

        I'll add this to the README!

        1 vote
        1. [2]
          calm_bomb
          Link Parent
          I'm not hosting my tt-rss. I got an account with tt-rss.nixnet.xyz, so I can't change the config.php part. Also, I'm not using a reverse proxy. I hoped it would work if I installed it on my local...
          1. I'm not hosting my tt-rss. I got an account with tt-rss.nixnet.xyz, so I can't change the config.php part.

          2. Also, I'm not using a reverse proxy.

          3. I hoped it would work if I installed it on my local desktop and pointed the .env variable to the actual tt-rss URL.

          1 vote
          1. smores
            Link Parent
            Ah that stinks. I can look into that provider and see if there’s anything to be done, but this is one of those internet fundamentals that can’t really be worked around. If they have their server...

            Ah that stinks. I can look into that provider and see if there’s anything to be done, but this is one of those internet fundamentals that can’t really be worked around. If they have their server configured not to allow requests from browsers pointed at localhost, you probably won’t be able to run Lilliputian against it :/

            EDIT: actually... I’m not 100% on this but I might be able to ship a proxy with Lilliputian that bypasses this CORS issue. I can look into it tonight!

            1 vote
      2. [2]
        smores
        Link Parent
        I’m going to make a ticket right now for better error messaging on the login page, this is definitely sorely lacking!

        I’m going to make a ticket right now for better error messaging on the login page, this is definitely sorely lacking!

        1. calm_bomb
          Link Parent
          Here's the error from the console (you guessed right): 16:10:34.647 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at...

          Here's the error from the console (you guessed right):

          16:10:34.647 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://tt-rss.nixnet.xyz/api/index.php. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).