Git Product home page Git Product logo

nostrudel's Introduction

Project Logo

noStrudel

NOTE: This client is still in development and will have bugs

noStrudel is a web app for exploring the nostr protocol.

The goal of this project is to build a nostr client that lets a user explore the nostr protocol by showing as much information as possible and letting the user view the underlying events.

Live Instance: nostrudel.ninja

There are many features missing from this client and I wont get around to implementing everything. but if you like the client you are welcome to use it.

You can find more clients with more features on nostrapps.com or in the awesome-nostr repo.

Please don't trust my app with your nsec

While logging in with a secret key is supported. please don't. This is a web client, so there is always a chance of XXS attacks that could steal your secret key.

I would recommend you use a browser extension like Alby or Nos2x

Running with docker

docker run --rm -p 8080:80 ghcr.io/hzrd149/nostrudel:master

Docker compose and other services

noStrudels docker image has a few options for connecting to other services running locally

  • CACHE_RELAY: if set the client will use the relay to cache all of its events instead of storing them in the browser cache
  • IMAGE_PROXY: can be set to a local imageproxy instance so the app can resize profile images
  • CORS_PROXY: can be set to a local cors-anywhere instance so the app can proxy http request

You can find a full example of all these services in the docker-compose.yaml

Running locally

git clone [email protected]:hzrd149/nostrudel.git
cd nostrudel
yarn install
yarn dev

Contributing

This is only a personal project, so if you open any PRs please keep them small. thanks

nostrudel's People

Contributors

fiatjaf avatar github-actions[bot] avatar gzuuus avatar hzrd149 avatar rolznz avatar verbiricha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

nostrudel's Issues

Add "Zap Mods" button to community side bar

Add a zap button to communities that allows a user to zap the moderators

The zap modal component would have to be modified to support zap splits that are not defined in an event

[enhancement] Collapse long notes

Sometimes the notes are very long and take up the whole screen, this can be uncomfortable when you are browsing the feed. I suggest adding a feature to collapse notes that are longer than x length and show a 'show more' button to display all the content if desired.

feature request - force reset connection to relays

as you said the connection gets dropped from time to time and notifications don't show "until something resets it" ...

well, why not give us a button that resets it ? if i am talking to somebody and i feel like they have probably replied but i'm not getting the reply it would be nice to have that button.

i have already seen it a few times when i am waiting for reply, it doesn't come, then i go to timeline and it's in my timeline - but it wasn't in the notifications ...

basically a manual hard reset of connection to relays option ...

problems liking and thumbing up notes

here is what i get:

image

first of all you can see the note was thumbed up and thumbed down twice each - the problem is i put all four of those thumbs there and did so at the same time - ideally this shouldn't be possible IMO. i should be able to thumb EITHER up OR down, but not both. and not more than once.

the other issue is i can't find the HEART icon for "like" ... perhaps it's that vertical rectangle that isn't getting rendered properly ? it always shows as rectangle for me. i never seen a heart there. and if i press it - it posts an identical looking rectangle next to the thumbs.

i am on Chrome in Windows 10.

Upload image button in the writing modal

It would be nice to have this button directly in the writing modal so you can upload media without leaving the site. Ideally it would be nice to have a list of different providers to choose from.

Add option to add POW to notes when posting

Add a checkbox or slider to allow the user to add POW to their notes when posting
This would require some kind of loading indicator to let the user know its being calculated

Links with excalamation mark are not rendered correctly

See

nostr:nevent1qqsyuj866m5rrqredjvqytshfv53lc9le9a9qrmmw7euvm8nvynea3qpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qdul5cr

the link seems to be cut at the exclamation mark, causing a HTTP 403 for the preview. The behaviour is on next.nostrudel.ninja as well as nostrudel.ninja.

2023-09-15 21_50_44-noStrudel – Mozilla Firefox

"more options" missing when replying / can't add NSFW warning

normally when i am posting a note ( that is 1st in a thread ) i can use "more options" drop down menu to add NSFW warning ...

but when i am posting a REPLY to a note the "more options" drop down menu is missing ...

in its place is a list of people who will be notified ...

as a result i can't add NSFW label when replying either to others or to my own post in a thread ...

as a side note when replying to myself "Notify" is still there, but with list of people to notify empty ( since it makes no sense to notify myself of my own post )

feature request - open clicked notes in new tab by default

if i right click on a note in my timeline and open in new tab it's perfect - i read the discussion, close it and i'm back to where i was

but if i left click on it everything gets screwed up and i lose the place in timeline

why not just open it in new tab by default ? it isn't hard to close a tab.

really all these "solutions" like different panels that open are searching for a problem ( other clients do it too ) because the TAB functionality of browsers already solved it all

IMO that is

you may disagree

Some hashtags are not linked to the search function and search doesnt find them either

See

note1k4gxcaef43cnqdrem9906jmfnf2unxhusgyjspftqrkkgd3fykrsrgfqqs

none of the hashtags links to the search url and manually searching for e.g. #NostrPotatoes (https://next.nostrudel.ninja/#/t/nostrpotatoes) delivers no results.
While other clients return them within seconds. E.g. https://iris.to/search/%23NostrPotatoes. The problem seems to be related to the intercapitals. The captials are converted to lowercase in the url when entered in the search box. Modifying the search url manually seems to not start the search at all.

can't reply to notifications.

if i go to notifications > replies i can see comments people left for me

but there is no button to reply to any of them

some of the notes are clickable and open a side panel that does have option to reply

but i just ran into an issue where the side panel opened without the particular note i was trying to reply to

i'm sorry if this is a confusing description of the problem but i think it's a pretty major bug

and even on the main timeline when "show replies" is enabled only half the posts can be replied to directly.

so it's kind of a widespread issue that overall in the client only about a third of notes on average can be replied to without jumping through a bunch of hoops. this is unnecessarily complicated. i should be able to simply click reply cloud icon on any note but most notes do not have it for no apparent reason other than it being a bug.

Overlaid community title can be hard to read

StellaInForest can barely read the names of most of the communities because the white text is on the image.
Source: note1wucrszz8r3uq2j6p325tazfv2xagvylwg7c9l227eyv3wuft8h9qh7seej

I confirm this is a problem for 2/8 communities on my Explore page.

feature request - require "reason" when using NSFW label

when i mark posts NSFW and forget to include "reason" half of the relays do not accept the post because they need that "reason" field.

but i can't just do it over because the other half of the relays accepted it already and it will now be duplicate.

the correct solution IMO is to REQUIRE the reason field before posting NSFW labeled notes, to ensure that all relays accept the note.

noStrudel doesn't even seem to display the NSFW label when no reason was included, in which case it makes even more sense to REQUIRE the "reason" field is filled out when posting. otherwise you're giving user the illusion that their post will go through properly but it only posts to half the relays and if it does display it displays without the warning label, which is even worse than the post not going through at all because now everybody will unfollow you ! ! !

feature request - when replying to reposts notify the reposter

if i am following person A and they repost person B and i want to reply to person B then by default Person A should also be notified unless i manually remove them from the list of people to notify

it is far easier to remove somebody from a list of people to be notified than to add them

and if the person A chose to repost something they probably are interested in it as well

right now only the person B is notified when i reply to person A reposting them ...

feature request - combine duplicate reposts

i have three identical posts in my timeline back to back - one is original and two others are reposts of the same post by two other people:

image

yes those three posts are in fact the same post. i had to click on all three separately to make sure - and yes it was the same pornographic image in all of them.

IMO it should just show the original post and a list of people who reposted it, not show it 3 times.

relay view broken

Relay view seems to be broken for some relays. They only show a red box with "Something went wrong
padded hex string expected, got unpadded hex of length 63"

The faulty relays seem to be nostr.mom and spore.ws

feature request - remove "notes" menu item

the "notes" menu item does exactly the same thing as just clicking on noStrudel logo and is redundant

to make things worse "notes" reads almost the same as "notifications" which is the menu item directly next to it

when i try to click "notifications" i often click notes because my brain only processes the first few letters before clicking ...

just remove that pointless menu item and problem solved.

or come up with names that actually read / look / sound different. for example instead of "notes" have "feed" or "timeline"

but then you will still have the problem because when you want to read your own notes you will have to call that something as well.

better to just remove that useless and redundant menu item.

feature request - don't show replies to muted people

in the "show replies" mode, half of my timeline is currently filled with somebody i am muting because somebody i am following is talking to them.

maybe NOSTR protocol needs to be updated with options to either soft mute or hard mute. soft mute is when you're simply uninterested in the person's opinions because they are slow and hard mute is when there is some kind of bad blood between you and you don't want to even be reminded that person exists.

perhaps if a person is soft muted their posts should be covered with an NSFW style label that says "you're muting this person" and if a person is hard muted their posts and any replies to them aren't shown at all.

in any case right now in my timeline the muted person's posts aren't covered up in any way at all as if i wasn't muting them at all.

also, i know this is the wrong place for this, but perhaps the protocol should also allow for a "follow" and "super follow" ... a super follow is basically stalking and shows replies even when your timeline has replies turned off.

there should also be an option to always show sensitive content from a particular user without having to deal with a warning label. again, this would be more of a protocol than client thing - i just don't know how to suggest changes to the protocol so i post it here and if it makes sense to you maybe you can suggest them.

with some users basically ALL of their posts are labeled sensitive and if you're following them clearly you want to see those but you still have to click on each one separately.

perhaps a client also needs a toggle "safe" mode that you can use at work or in public. that is something that can probably be implemented without altering the protocol.

issues with "show replies" timeline mode

"show replies" timeline mode doesn't stay on but rather keeps resetting back ( to not showing replies ) even from just clicking on someone's profile and then going back to timeline, but also anytime you close the browser.

also when in "show replies" mode the icon to reply to the notes disappears and i have to open the thread or drawer view in order to reply.

also in thread / drawer view i can't reply to any note above the one i clicked on - no reply icon to press. i have to copy Note ID, search for it and then i can reply.

Unclear which Communities should be shown on Explore page

StellaInForest: Some of the communities are missing from the list and I can't tell why.
Source: note1wucrszz8r3uq2j6p325tazfv2xagvylwg7c9l227eyv3wuft8h9qh7seej

hzrd149's answer:

The community explore page shows the most popular communities in your contacts. It doesn't show all the communities on nostr.

When I first built it it showed everything, but it was kind of useless since most communities where empty or spam.
In the future it would probably make sense to add some kind of search or expand it to show communities of friends-of-friends

I think it'd be good to know what N is if it's only going to show the top N because I wanted to get an idea if new communities were being created and couldn't tell from the Explore page.

feature request - open in drawer inconsistency

in "show replies" mode if i click on the note being replied to it opens in the drawer ... but if i click on the reply to that note it opens normally ... and when i go back my position in the timeline is lost.

i suggest that as long as position in the timeline doesn't save everything should always open in the drawer to preserve timeline position.

regardless it is not intuitive that different notes open differently. they should either all open in the drawer by default or all open NOT in the drawer by default.

but preferably in the drawer and in fact i can't see a reason why not.

feature request - show "loading" screen

when i open noStrudel today i see a picture of a pretty girl, that is there for half a second, then it disappears, and posts appear, as i try to read them they begin to shift down and move and re-render and jiggle around until finally about 5 seconds later things stop shifting and i can begin to read normally but can't find the picture of the girl that originally showed up ( i found it hours later ).

instead when you open noStrudel it should simply show a blank black screen that says ( "loading timeline" in a large font and a meter that demonstrates progress ) then after it has loaded and finished rendering ( so about 3-5 seconds later ) it should display the timeline in its final form so you can be sure when you begin looking at something or reading something it won't suddenly jump or disappear.

this issue is by no means unique to noStrudel - many sites suffer from this, including very big ones, but that doesn't make it less wrong. content shouldn't move around while you're consuming it. things should only move when you move them.

nobody can read a post in 1/4 of a second or whatever time it stays in one place and it is just aggravating when you begin to read something and it disappears. it would be better to just stare at a blank screen for that period of time. either way you're not going to consume any content while it's still loading but with a blank screen at least you aren't getting aggravated.

i will also add that speed is NOT the issue. everybody seems to think noStrudel is fast and i agree. it is fast enough. it just simply should not begin displaying the timeline until it has finished loading and rendering.

humans are hunters. whenever anything moves we automatically switch our attention to that thing. therefore good design would be to ensure nothing moves unless you specifically want to draw attention to it.

background color

i can select "primary color" in settings but not the background color.

in the system / dark mode the background color is basically BLUE ( dark gray with blue hue ).

blue light interferes with sleep patterns - blue is the worst possible background color - it should be NEUTRAL dark gray.

but of course it would be nice to be able to choose between a few shades of gray.

i can't imagine how much it costs Audi to offer multiple shades of gray - they have to physically stock thousands of cars worth of additional inventory to accommodate that palette. but Audi knows not all gray is created equal !

i believe in you guys ! you can do it !

Community post request shows on main feed

I'm thoroughly confused about the state of NIP-72 and what people are envisioning, but as a user I feel like a post to a community should not clutter my main note feed which my followers see.

I created an issue and PR on the NIP side when I thought I understood it, but wanted to note it here to get user and developer perspectives.

feature request - centered timeline

right now my feed looks like this:

image

in other words left menu pane and right timeline pane are combined first and then centered

there is unused space on the left and the timeline itself is off to the right

instead the timeline should be centered and the menu should be all the way to the left

i realize this may add some if / then statements or such because if you center the timeline first the menu may or may not fit in the remaining space so sometimes the timeline will be centered perfectly and other times it may be slightly shifted ...

still i don't think anybody cares where the menu is - people are looking at the timeline - so it makes no sense to center anything but the timeline.

can't select who will be notified when i reply

when composing a reply it shows a list of who will be notified but doesn't give me an option to remove some of them.

to give you an example i made a comment in Lyn Alden's thread about a serious subject and somebody replied to me accusing me of muting them. i'm trying to tell that person that i am not muting them but it will notify Lyn Alden and it has nothing to do with her.

i had to go to Coracle ( which i can't main for several reasons ) and reply there because it allowed me to X her out and reply only to that one person.

let's say this isn't fixed and accounts like Lyn and Jack get flooded with thousands of mentions that aren't intended for them ? they will mute us all at best or stop using NOSTR at worst.

i know you have a lot on your plate, i'm just reporting what i see as issues.

feature request - change default profile tab to "notes"

whenever i want to check what i have just recently posted i click on "profile" and am taken to my "about" page, which is literally the same every single day and never changed even once and i don't actually need to see it 20 times a day.

what i really want is to see is the "notes" tab of my "profile" page.

i think "notes" should be the default tab at least for my OWN profile.

when looking at OTHER people's profile, perhaps the "about" tab makes more sense, though "notes" wouldn't be a bad option either as the default.

or with a bit more effort you can just put the "Notes" below the "about" in the same tab so that you can simply scroll down from the "about" to the "notes" ... after all, the person looking for notes will be scrolling ANYWAY.

the point here is to eliminate additional unnecessary step of having to click on profile and then on notes. there should only be one click, not two.

Feed view for Categorized People List

It would be a very interesting feature if the people lists could display the feed composed by the public keys of the list. At the moment listr has something similar, for example. Also amethyst, where you can choose the source of your feed by "your followers", "global", and other Categorized People Lists from kind30000.

This would allow you to browse feeds curated by you or other users.

Some key features would be to be able to follow these lists so you can access them easily and watch your feed filtered through them, and even to be able to 'fork' other people's lists so that if you find someone else's curated list and want to modify it you can do so easily.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.