Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Twine – Open source multiplatform RSS app (github.com/msasikanth)
134 points by its_sasikanth 11 months ago | hide | past | favorite | 71 comments



I think you should be more specific what multiplatform means in the project description. i.e iOS and Android


Yes, I had the exact same reaction. Strong "We got both kinds, we got country and western!" energy here.


Just tried it out and it doesn’t feel quite right on iOS. Almost like the app is just a website loading in a browser. It’s very flat and the UI feels too “thin” (I know that doesn’t really make sense but it’s the best description I of how it feels to me right now).

I guess it just doesn’t feel very native - more of a web wrapper?


It's indeed not a fully native application except on Android. It uses JetBrain's 'Compose Multiplatform' framework for the Kotlin programming language. Without having written code in it myself, it's difficult for me to work out exactly what its architecture is, but it seems closer to Flutter's approach than a web wrapper. My educated guess is that it renders the application inside an OpenGL/Metal graphics context. On Android, however, it looks like it uses Google's Jetpack Compose components directly.


https://blog.jetbrains.com/kotlin/2023/05/compose-multiplatf...

"On iOS, Compose Multiplatform user interfaces are rendered via a canvas implementation based on the graphics library Skiko [Skia for Kotlin]."

So yes — it foregoes native controls for a canvas implementation that leverages the same 2D graphics library used for Chrome and Flutter.


> https://blog.jetbrains.com/kotlin/2023/05/compose-multiplatf... > > "On iOS, Compose Multiplatform user interfaces are rendered via a canvas implementation based on the graphics library Skiko [Skia for Kotlin]." > > So yes — it foregoes native controls for a canvas implementation that leverages the same 2D graphics library used for Chrome and Flutter.

fyi, flutter now uses a new graphics lib called impeller. It's not yet stable for Android though.

https://docs.flutter.dev/perf/impeller


I used Kotlin and Compose Multiplatform for iOS. So not entirely native app and uses Material components. Not a web wrapper though, well, except for the reader view which uses webview of the platform.


Just installed on iOS - also, dont forget that almost any subreddit is an RSS with /.rss

SO http://old.reddit.com/r/hackernews/.rss works. And yes, it looks great.

=

I'd like the ability to turn off thumbnails, select smaller thumbnails, and select font size in settings.

Would be great to have more control over the view, for some sites/feeds I want large thumbnails, for others I want zero thumbnails.

When I click on the feed's : menu, for share, open website, mark all as read - a check box for display thumbnails would be nice - myabe allow for feed labels, so I can show all "tech" labeled feeds for example....


> also, dont forget that almost any subreddit is an RSS with /.rss

You can just add .rss to the end, you don't need the slash ;)


Homage to /. OG :-)


Netnewswire works great for me, folders included too


Yeah plus it syncs with iCloud (no third party RSS service required) and has a mac app.

Twine looks nice but I feel it comes at the cost of information density compared to NNW.


Oh yeah, Net News Wire is amazing. It’s one of the inspiration for me when working on Twine. A fully featured open source project.

I just wanted to try out the new multiplatform technology and build a app I would want to use

fwiw, I do have plans to support integrations/3rd party services this year.


I tried it out briefly on my Mac but I didn't like it as much as I like Reeder. Granted, Reeder costs $10 to NetNewsWire's $0, but I still consider it excellent value for the money.


Wish it would connect with feedbin. I don't wanna import opml and have feedbin filled with unreads


I do have plans to support integrations/3rd party services.


Hopefully feedbin soon! Anywhere I can get notified?


I currently don’t have a separate task on GitHub. But GitHub releases are one place to keep track or need to create a new issue or discussion separate for feedbin.


Maybe have a Twitter or email notifs?


I'm using it every day. I wish you could turn off title truncating, as my style of using the app is to skim through the feeds and only click the interesting articles. Also it would be nice to be able to filter out future items from the feeds, as some feeds use future dates as a way to schedule or announce something, and I would like to see just the immediate news. If it weren't for these two points, I'd say a 10/10 app.


I think I'll wait for an F-Droid release before trying this: https://github.com/msasikanth/twine/issues/38

I currently use Nextcloud News, but it's a bit slow (especially with my 50k+ unread items), and doesn't support dynamically ranked feeds, only chronological ones. It's nice having read status synced across devices, though.


Can Nextcloud News scrape the full article text if its not included in the feed?


No, it doesn't. What you can do is use an RSS proxy to create your own feeds of any site and read that through Nextcloud News. I do this for a few specific sites and purposes - e.g. custom searches on auction sites.

As to Nextcloud News being slow with 50K unread items I wonder whether there's something else amiss as I have close to 600K unread items without undue slowdowns.

The only real slowdown I notice in Nextcloud News is caused by a dog-slow piece of javascript in news/templates/part.content.php which causes a delay any time an item is clicked in the feed. This can be solved by removing everything related to 'sharing' (i.o.w. everything after </time> in the list div (class=utils), make sure to balance those tags...). News is much faster in use that way and since I never use the 'sharing' related stuff - if anything needs to be shared I can just share a link instead - nothing of value is lost.


It Technically could as it has plugin support but as far as I am aware it doesn't.

Some alternatives:

- TT-RSS¹ has multiple plugins, including the one I currently support Feediron²

- FressRSS³ has CSS selector support out of the box and has a readability extension⁴ that supports Readability or Mercury

I've been dreaming of porting Feediron to both FreshRSS and Nextcloud news. But I barely have any free time as is... one day

[1] https://tt-rss.org

[2] https://github.com/feediron/ttrss_plugin-feediron

[3] https://github.com/FreshRSS/FreshRSS/

[4] https://github.com/FreshRSS/Extensions?tab=readme-ov-file#by...


It supports it, it's pretty hit-or-miss though.

You need to right-click on the feed in the web interface → "full text".

The library it uses is a port of Mozilla's "reader mode" (readability.js) feature in Firefox: https://github.com/nextcloud/news/pull/563


That feels very good! I've messed with Kotlin multiplatform recently and it's interesting.

I wonder why there is no desktop version.


It’s entirely possible to create a desktop target with Kotlin and Compose Multiplatform. I do have plan to improve the large screen layout support and do the desktop version. My initial priority is to first work on features.


Look, I know beggars can't be choosers, but with the impending demise of Google podcasts, I'm looking for a new podcast player. I don't understand why RSS readers in 2024 don't turn podcast items into little embedded me player widgets.


I've been happy with Pocket Casts on both Android and iOS. There's also a web player, but I rarely use it these days.


I went from Pocket Casts to open-sourced AntennaPod, and I highly recommend it. It's available on F-Droid.


Pocket Casts is open source. (I know you didn't say otherwise, but there's potential for misunderstanding given the wording.)


Could you describe what it was that made you switch?


Not the OP but for me I switched before they went opensource and I was having issues with how Patreon feeds were imported into Pocketcasts. Can't really remember the specifics but if I remember correctly their server was doing some episode caching and it was going all funky.

I stay with Antennapod now because it's very actively maintained and because of the Nextcloud gpodder¹ app and the Nextcloud Repod app². Lets me have a web player and sync entirely within my own infrastructure.

[1] https://apps.nextcloud.com/apps/gpoddersync

[2] https://apps.nextcloud.com/apps/repod


I’m building a free RSS reader with iCloud sync for iOS and macOS, Manabi Reader: https://reader.manabi.io

Currently it’s targeted at Japanese learners and has some optional paid features on top for flashcards/Anki integration and tracking vocab/kanji. But I’m working on “zooming out” the product for general use (including more languages and general knowledge retention) because it has a solid RSS system, readability mode, offline support, web browser functionality etc.

I built it in native SwiftUI.


Looks very cool but unfortunately iOS only.


Yes iOS and macOS


Twine is my new favorite RSS Feed app, only thing missing is feed folders!


I am working on labels, hopefully soon


Super cool. I really want to try out Kotlin multiplatform and see how good the app feels. Flutter so far feels "off". So excited to try this out.


Can you adjust the text size on the IOS app? And can you load images in a RSS viewer?


I would change to "Gorgeous"


A Compose Multiplatform app. Neat!


Does it also import folders when importing from a OPML file?


Not at the moment. I am currently working on labels/folders support. So, hopefully I can finish it in next couple of weeks


Not having folders is a deal-breaker, all other things look great.

I'm ready to give feedly the boot.


The UI has Tidal vibes, neat.


A little weird its named “twine” since that name has been in use for years by a JavaScript interactive fiction development platform.

https://github.com/klembot/twinejs

https://twinery.org


Also the recommended Python tool to upload Python packages to PyPi: https://pypi.org/project/twine/


First thing I thought of as well. Actually used to work with the guy who developed and maintains it. AFAIK they trademarked the name as well.


Indeed. It is a registered trademark.


For a long time I've been a happy user of rss2email, originally written by Aaron Swartz. https://github.com/rss2email/rss2email

It periodically fetches the rss feeds, and sends the content to a specified email address where you can use your email reader to sort them into folders.

Assuming you have a "good" email client, this takes care of most of my RSS requirements: Free software, offline availability, and the ability to read anywhere.

The only missing feature I think it could use is a nice GUI to manage feeds.


Interesting, I use kill-the-newsletter to go the other way around. But your approach would give a good search and archiving functionality, something that rss clients (mostly) lack. I'm using feedbro (Firefox extension) as RSS client only because I can assign points to keywords to prioritize the huge info volume. The only other client that has such functionality is on Emacs, afaik. Had not tried it.. anyway, it would be cool to find an email client that allows me to add scores to emails based on keywords in the subject and/ or content. E.g. if it says hacker +10, if it says python +5. Oh. Negative values would be cool too. Ok I should go to bed. I'm daydreaming xdd


I use a non-rss solution. Obsidian note taking app with a plugin called ReadItLater. I use it to clip pages I want to read later. Obsidian has really good fuzzy search capabilities and everything is saved in Markdown format with YAML headers.


Yes, I much prefer the idea of comms via email, but news via RSS. Email being bidirectional makes more sense to just stick to comms for, especially with `noreply@` for most newsletters.


I also can’t believe that this feature doesn't exist in any other rss client. I’m almost at the point of writing one myself.


It looks pretty nice, but would seem a bit cringe to call your own app "Gorgeous" in a Show HN, like calling yourself a 10 on a dating profile, or introducing your kid as beautiful. I'd personally just leave it out and use something like "Open Source RSS app for Android/iOS"


Yeah, I wasn’t sure if I should include that or not. But some users did highlight that before with the app. So went with it, but yeah fair point. Looks like the title is modified already.


Indeed. Was curious, took a look, and it uses the same widgets as everything else.


And like with most multiplatform apps, it doesn't look native at all on iOS. I prefer my current combination of: https://netnewswire.com + https://miniflux.app

Both open source too.


For me, “beautiful” and “multi-platform” are opposites.


I was initially debating whether to use native UI or not. But Compose Multiplatform offered the flexibility to provide UI for multiple platforms, so decided to try that out instead.


Agreed. Miniflux is rock solid and I use Reeder on my iOS devices, which actually is gorgeous and looks native on iOS. Have used NetNewsWire as well.


I think I just got unlucky trying Miniflux when there happened to be a bug that prevents the sync frequency from being respected. Once that’s fixed I plan to give it another try.


The title is a bit misleading, I expected a desktop app or similar, but it is a mobile-only app (android+ios).


I do plan to support desktop environments eventually. But the current plan is to work on features and large screen layout support.


I wouldn't call it misleading because you made an assumption. It is multi-platform as advertised.


I was hoping for a self hosted copy of The Old Reader.


It’s technically entirely possible to do this with Kotlin WASM support. I was thinking about it a couple days ago. Maybe a fun experiment to try out.


[flagged]


Thanks, people are entitled to their opinions, so I am fine with it. I am building to learn and play around with Kotlin and Compose Multiplatform and want to have an RSS app I like to use. So, I will continue working on it.

I did experiment with light mode a while back. I didn't end up implementing it. But maybe in future, I will add it as an option . Here is the sample of it

https://x.com/its_sasikanth/status/1737280450127704222?s=20


I think the sample looks great.


[flagged]


Also not to be confused with the interactive fiction creation tool.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: