Today I am releasing "narr", a lightweight RSS and Nostr longform reader for the desktop: https://github.com/fiatjaf/narr

It supports all sorts of RSS feed discovery from HTTP URLs and renders them beautifully in a simple straightforward interface, you can also paste nostr:... URIs, including nip05, npub and nprofile codes (they should also work without the nostr: prefix).

If you install narr and use it in the next 2 hours you'll be entitled to our special bonus offer: you'll get one free complaint and one free feature request, which you can write as a reply to this note -- but only if you include a screenshot of your setup.

Reply to this note

Please Login to reply.

Discussion

Great work sir

One extra: if you figure out what the name "narr" stands for without looking you also get the special bonus offer.

Nostr. Algo. RSS. Reader.

Nostr. And. RSS. Reader.

Not a RSS reader

never anger rapist reptiles

Since all the names attempted so far are better than the actual name and that is making me feel bad I am canceling this offer.

Netflix and Rim Rubs

Naked ambush revival reverend

It means "crazy person" in German.

Notes and relays, retching

Not another rss reader

Not another rss reader

not a real romulan

Short for narrator

Nostr And Rss Reader

That's one hell of a bonus offer.

Thank you for the compliment. Because of that you'll get the specialest bonus offer: access to our specialized https://github.com/fiatjaf/narr/blob/master/doc/fever.md API that supposedly works with specialistic iOS RSS clients, such as Reeder.

I appreciate the special bonus, but I don't like walled gardens. Android for life.

Wish you merry Christmas if you celebrate it🎄

trying to run it but ran into an issue. the default port it uses 7070 is used by i2pd https://i2pd.website/

I'm sure I can reassign it but you might want to pick a different default port

Installed. configuring now

Consider this a timestamped placeholder for my feature request, which I'll have to think about a little...

So far the "import" feature already gets me pretty far. need to look into the proper way to handle subscribing to npubs (my "import" pulled in my vinney.npub.pro feed, which I assume is not the narr-native way)

Just paste the npub in the "add feed" box.

Yep. I did that and still saw nothing (for myself) until I realized that this app is only showing long-form posts.

So I wrote one and see it now. Nice!

👏

looking forward to trying this. 🙏😇🫂

I've already used my one free complaint, but for my free feature request I would like to see this packaged for nostr:npub1aghreq2dpz3h3799hrawev5gf5zc2kt4ch9ykhp9utt0jd3gdu2qtlmhct and nostr:npub126ntw5mnermmj0znhjhgdk8lh2af72sm8qfzq48umdlnhaj9kuns3le9ll

I see you've already got a docker file in the repo 😀

I forgot to say this was another special bonus offer: anyone who submits a PR packaging this for Umbrel or Start9 will get my sincere thanks.

I thought about doing it myself, but honestly it's way too hard, I can't possibly figure that out.

Start9 is about to release a new way to package apps, I think it's best to hold off until it's released since it looks significantly easier

For umbrel you just need a place that hosts the docker images. most people use a github action and host the images on github

PR for docker builds created https://github.com/fiatjaf/narr/pull/3

Oh, please tell me you're adding 30040s.

You're reading my mind now, that's exactly what I wanted, thank you, I'll test it out right away.

This looks great for people who can read. Wish I could do that. I can only write.

damn this is the most polished ui I’ve seen you release. or maybe im partial to the solarized light color. or maybe both are true.

in any case, nice work!

Long life to the long format.

Obrigado pelo trabalho fantástico nesta ferramenta. Projetos assim mostram como boas ideias e execução cuidadosa podem fazer a diferença. É ótimo ver algo tão bem feito disponível para a comunidade.

---

Thank you for the fantastic work on this tool. Projects like this show how good ideas and careful execution can make a difference. It's great to see something so well-crafted available for the community.

That's not a complaint or feature request. Denied!

Given the anchor icon and the exclamation point in "narr!" I'm assuming it's a pirate reference.

Next thing: Nostr npubs that curate and republish long form posts. then, along with the individual users you add to narr, you can also add these "curation nodes" on various topics.

Imagine the zaps a high-quality curator will pull in....

nostr:nevent1qqsqqq8tyr50n8xy3f3rdrwq5k5q0r9d3tm5tkngaq3sl54lc9fcjqspzdmhxue69uhhwmm59e6hg7r09ehkuef0qgsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8grqsqqqqqp3v3vy7

I'm an hour late, as I wasn't home, but a very elegant solution.

Awesome! I have no complaints, just a bug report: Footnotes don't seem to render for NIP-23 posts. But it's also possible that you hate footnotes and you'll never implement support for them in that case that's cool too.

Another proof that Markdown is a mess.

"Just use a Markdown library", they said.

I have many of these type of links 😅

https://rakhim.exotext.com/markdown-editor-for-exotext

Markdown is the shitcoin of markups.

Or "the shitcoins", actually, since there are like 50 million forks.

And I hate that I can't resize images dynamically, in Markdown. Too lazy to do it before uploading.

And the wrongly-numbered ordered lists! 😭

And it's soooo nice because the footnote data is written right next to the anchor. Much easier to write and proof.

Fixed this in the latest release, but there is no migration, you'll have to delete the feed and add it again.

This is sick! Awesome work nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6

nostr:note1qqqwkg8glxwvfznzx6xupfdgq7x2mzhhghdx36prplftls2n3ypqfk2my5

Dammit, I missed the time window!

This is so unfair!

Still got my complaint in 😏

unfortunately doesnt work for peasants that uses macOS 12 or lower

Just compile it from source and it will work.

🙂

Cool!

The iOS version don’t work.

Neat!

Running it with a dev server 😃

The prebuild binary for MacOS is not working on my ARM powered Macbook.

Building the Docker images are giving me some errors

$ docker build -t narr -f etc/dockerfile .

```

=> ERROR [build 5/5] RUN make build_linux

------

> [build 5/5] RUN make build_linux:

0.096 mkdir -p _output/linux

0.097 GOOS=linux go build -tags "sqlite_foreign_keys linux" -ldflags="-s -w -X 'main.Version=2.4' -X 'main.GitHash=57a78c6e'" -o _output/linux/narr ./cmd/narr

0.100 go: go.mod requires go >= 1.23.3 (running go 1.22.3; GOTOOLCHAIN=local)

0.101 make: *** [makefile:21: build_linux] Error 1

------

dockerfile:5

--------------------

3 | WORKDIR /src

4 | COPY . .

5 | >>> RUN make build_linux

6 |

7 | FROM alpine:latest

--------------------

ERROR: failed to solve: process "/bin/sh -c make build_linux" did not complete successfully: exit code: 2

```

$ docker build -t narr.arm -f etc/dockerfile.arm .

```

=> ERROR [ 9/10] RUN env CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build

------

> [ 9/10] RUN env CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build -tags "sqlite_foreign_keys linux" -ldflags="-s -w" -o /root/out/narr.arm64 ./cmd/narr:

0.110 rosetta error: failed to open elf at /lib64/ld-linux-x86-64.so.2

0.110 Trace/breakpoint trap

------

dockerfile.arm:26

--------------------

25 | # Build ARM64

26 | >>> RUN env \

27 | >>> CC=aarch64-linux-gnu-gcc \

28 | >>> CGO_ENABLED=1 \

29 | >>> GOOS=linux GOARCH=arm64 \

30 | >>> go build \

31 | >>> -tags "sqlite_foreign_keys linux" \

32 | >>> -ldflags="-s -w" \

33 | >>> -o /root/out/narr.arm64 ./cmd/narr

34 |

--------------------

ERROR: failed to solve: process "/bin/sh -c env CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build -tags \"sqlite_foreign_keys linux\" -ldflags=\"-s -w\" -o /root/out/narr.arm64 ./cmd/narr" did not complete successfully: exit code: 133

```

Docker is a giant pain. I've updated the images now, blindly, so they have the latest Go compiler.

docker is only useful on OSX .. because your options are brew, or docker. Embarrasing

it's actually not that difficult to build go native server apps right in mac

https://go.dev/dl has the both apple platform binaries and with intellij or VSC you should be able to build anything

the only reason why he would be having problems is by using non-Go stuff like mongo or redis or pgsql or some other dumbshit

No it's docker and arm vs. not arm.. that kinda stuff.. but docker sucks more than just that

But yes, just use go.. aka, you're gonna have to learn how to install go (on osx).. 😁

I’m learning Go with little steps, using it natively on MacOS 🤓 Reason: the Khatru relay framework hehe

But using Docker right, it can save a lot of time for people who just would like to run the thing with ease. I agree there are many hoops to go through to get it to work, but sometimes the effort is worth it.

this is why i adapted the badger event store btw

khatru is nice but most of the eventstore options you can choose from require complex native, socket based database servers to be installed as well, which is a nightmare for mac

if you stick with pure #golang you don't have any other tooling to care about, it's all in one

i would also say after having a lot of experience with khatru codebase (and eventstore and go-nostr) that relayer is better than khatru, but it's not maybe quite as complete in some parts, the architecture is better and its concurrency is less buggy

it's virtually identical, the shell, just absurd anyhows

i probably am going to have to scatch together some kind of build-testing rig for mac in the future with this chat client i'm building

it is actually easier to use go natively

there's almost nothing you can't do with pure go, and there is cross compilation tooling that lets you do it without even dirtying your hands with apple or windows shit

i was building GUI apps that could deploy on iOS and macOS and windows without having to leave my linux system like 6 years ago

?? You mean "write something"?????🤷🏻‍♀️

Jack, just stop the game. That's enough for me if you won't reply or meet me after the game. Do you make sense?? To gain salary usually is the most important things for me.

I don't require any prize or meeting with players. Of course, I welcome if they wanna meet me. So don't worry about how I am famous. Let's go to the goal together right now.

nostr:nevent1qqsqqq8tyr50n8xy3f3rdrwq5k5q0r9d3tm5tkngaq3sl54lc9fcjqsppemhxue69uhkummn9ekx7mp0qgsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8grqsqqqqqp8qjdey

I'm curious if there is a way to use the primal app to somehow publish an RSS feed or subscribe to an existing one. I'm thinking about Zerohedge for example.

fuck yeah. ty

Nostr aggregator rss reader

Would be pretty cool if we could interact and discuss in real time over nostr for each publication

It looks like great app but I have not really looking in to it until next year .

Wish you everyone here in reply happy Christmas ( if you celebrated ) and happy holidays ( if you don’t )

Narr if you didn't use nostr 😄