back
▲ 133 points

Show HN: HN Follow – Follow Your Friends on HN

val.town
by stevekrouse·3y ago·81 comments·view on hn ↗
HN Follow lets you follow authors on Hacker News, and get email notifications when they post. It was inspired by alerthn.com and hnreplies.com.

The app was built in an experimental style on Val Town. We’re trying to create a new web primitive that you can:

1. write like a function 2. run like a script 3. fork like a repo 4. install like an app

This is our 5th iteration of this same “HN Follow” app. We launched the 3rd version here on Hacker News six months ago[1], but it was very kindly removed from the front page by dang in favor of us launching Val Town itself first, which we did in January[2].

We’re trying to strike the right balance between something you can use and install with one click, and something you can infinitely customize. For example, you could fork `@rodrigoTello.hnFollowApp`[3] and change the input parameter from authors to a generic query, like I do here[4] to get notifications whenever “val town” is mentioned on HN. In addition to emailing myself (via `console.email`), I also send a message to our team’s Discord. The possibilities are endless, but it can also be overwhelming. We’re trying to find the balance where we help you navigate the space of possible integrations, without limiting you the way a no-code tool would. We would really appreciate your guys’ feedback and suggestions!

[1] - HN Follow, first launch: https://news.ycombinator.com/item?id=33533830

[2] - Val Town launch: https://news.ycombinator.com/item?id=34343122

[3] - `@rodrigotello.hnFollowApp`: https://www.val.town/v/rodrigotello.hnFollowApp

[4] - My fork of hnFollow: https://www.val.town/v/stevekrouse.hnValTown

81 comments
What's the value of bringing Facebook/Instagram mechanics into HN? Wouldn't that skew social dynamics away from egalitarianism, giving rise to "influencers", social bubbles and rise in clickbait? I think that not having a 'follow your friends' mechanism is a feature of HN.
I want the opposite of that: "This guy is an asshole and I just don't want to see him ever again."
I have this half-baked idea for an anti-social media website where the only way to "engage" is by blocking people.
3-minute uBlock script:

news.ycombinator.com##:xpath(//span[contains(@class, 'comhead')]/a[contains(@href, 'user?id=USERNAME')]/ancestor::td[contains(@class, 'default')])

Replace USERNAME with the user you don't want to see.

Edit: it only works on comments, but you can just as easily make one that hides their submissions as well.

On slashdot you could mark people as friends and foes. You could then assign a penalty to posts by foes (and posts by foes of foes and posts of friends of foes, I think?) so they were unlikely to meet your 'show post' point threshold and would therefor be hidden.
Great idea! What about fade-away hnstyle with a color teint? Maybe updating à gist with Val Town and referencing that gist from a css file with Stylish? Or another way js only…

Edit: some can hack it to tint people they like.

This is HN. The corpo minimal social news site of the most successful VC incubator. Egalitarianism and HN barely overlap.
How about an app that shows a list of friends like below

pg(3)

cj(4)

stevekrouse(2)

Each of above name is hyperlinked and leads to a page where I can see all their updates. The count in bracket let's me know how many updates they have. This is not necessarily a suggestion for this app. I wish more social media apps adopted this approach instead of current time hogging feeds.

This is a cool idea too! The easiest thing to do here would be to schedule it to run daily or weekly instead of hourly. But you can also build this aggregation thing too on Val Town. Lmk if you want a hand with that!
Just some random feedback on the val.town interface. The concept is interesting but I have one gripe.

I want to know what the code I'm about to run will do and I notice the pretty unique `@stevekrouse.hnLatestPosts` type interface where it looks like you can reference functions. But this leads to a deep chain of reference. Like, that function leads to `@stevekrouse.hnSearch` which leads to `@stevekrouse.fetchJSON` which leads to `@stevekrouse.normalizeURL`, etc.

There is some kind of DAG of dependencies that is invisible to me. I'm wondering what could be done from a UI perspective here? Like, maybe a tree view where each node is expandable? Right now it just pops open a new browser tab and I end up with context spread across multiple tabs.

The concept of composable references is powerful but I think the UX could be improved.

You mean like how github does in their search page?

You hover click on a method and a side panel shows up with source code of that method

I like the idea. I worry it will result in skewed incentives affecting content if widely adopted (i.e. LinkedInSanity)
What do you mean by LinkedInSanity?
> Remove filler, upsells, click bait and other low or negative-value annoyances.

https://github.com/taylr/linkedinsanity

Mis-remembered the phrase, it's /r/LinkedInLunatics.

Thanks for the callout!

Do you have an option to opt out of being followed?
No, sorry. It's just polling HN via the Agolia API, so if you post on HN publicly, anyone can poll for that data.
Is there anything preventing you from adding an opt-out feature?

Yes, anyone can poll, but releasing a product that polls puts the onus on the product to honor the spirit of the site.

I come here because the site doesn’t have all of the usual social media features, which is arguably part of how/why the community is still an interesting place to visit.

I am sure there are bots/people that follow their enemies and downvote lol. Everytime I post something unpopular, I get my non-controversial posts downvoted predictably for some time. Or maybe that's just shadow moderation.
The val.town idea is very promising but I think it's not as social as it could be.

The val.town page is dedicated to developers and convinces with features. What I am missing is content. The explore page [1] has popular functions, which are the content of val.town, but they are not content in a social sense.

HN and reddit engage users before they make an account. It's very good that I can run code without making an account. But I have to interact and think before I am hooked. Could users be hooked on content? I could imagine a landing page on a second domain that would show the result of scripts that users vote to the top. (Of course the knowledge would lie in preventing dick pics.)

Adding votes should also be possible for the explore page itself. HN/newest is not as convincing as the ranked HN frontpage. A short Readme section and a result section would make the code more approachable.

The UX seems to be choosing precision over smoothness. Trying the HN Top Story in /explore, it's surprising that the result is just the title, without a link. To change that, I would prefer if a simple click on the function would directly allow me to edit the function. The ctrl-click with the new tab works, but it doesn't feel right.

[1] https://www.val.town/explore

I could never be friends with someone who posts on HN.
Right. They would have nothing different to offer other than what you have already gained from here.

I found out this the hard way after coming across someone who posted on hn.

I don't understand your comment; I have several real-life friends who have accounts here (and normally I discover it by accident, and we don't exchange our nicknames as everybody would try to pretend we enjoy some semi-anonimity here).
They are paraphrasing " I don’t want to belong to any club that would have me as a member!"
Got to say, the H1 on the main landing page is amazing.
thanks!
I like the idea of val.town, each snippet is isolated and can reference to other snippets & packages.

One thing I wish was that other runtimes would be shipped aswell, like Ruby. But I understand that maintaing such runtime is a burden.

I know that Vercel supports Ruby as serverless runtime though, so I know it’s possible.

Other than that, I think val.town will boom in popularity soon. It’s a unique idea.

“When they post”

Does this include comments, or just posting submissions?

IMO the former would be overkill for email notifications, and the latter would be not terribly useful.

It includes both. I just made a forked version that takes an extra `tags` parameter that lets you customize which kinds of posts you want to subscribe to:

https://www.val.town/v/stevekrouse.hnFollowApp

You can see all the tag types (and other search options) here: https://hn.algolia.com/api

Happy to help you customize it however you'd like :)

Just curious, how do you prevent/mitigate abuse or spam in a cloud scripting environment like this?
Great question!

Andrew Healey wrote a great blog post about sandboxing, particularly related to us: https://healeycodes.com/sandboxing-javascript-code

And we recently launched more secure semantics: https://blog.val.town/blog/restricted-library-mode

But in the general case, it's a hard, never-ending cat-and-mouse game, particularly with free and unauthenticated use. We will eventually probably need to restrict use severely unless you have somehow proved you're a real person (ie connect to your github account) or are a paying customer.

… that’s a lot of email isn’t it?
Speaking as a heavy user and inbox 0 person, the rule I use for these emails is "skim then delete".
Depends who you follow, right?
Now, the really scary option would be to automatically correlate HN accounts with other accounts and pieces of text based on the previous work done in this area to find alternative HN accounts (that was already awkward enough).
Why did you choose to build this on Val.town?
We're the creators of Val Town ;)
Orange Reddit is real.
Off topic, but I would love the opposite of this. The ability to block certain HN users, just hide their comments entirely. Certain people have shown again and again they are not willing to have good faith arguments, and I simply don't care to be subjected to their nonsense.
The downside to allowing blocking is that the site works best when you downvote that kind of content, because then everyone else doesn't have to be subjected to it. It's why we resisted a block feature on reddit for a long time. Because the site only works if bad stuff is downvoted.
A minor point, but the vernacular has shifted to this being called "muting" whereas blocking is the much more toxic, "and they can't see what you post either".

Platforms that implement blocking almost always see it weaponized by hate groups, not to mention how antithetical it is to allowing a user to control their feed, and the argument of "targeted harassment if people can see my content" doesn't hold water given how trivially easy it is to circumvent (if targeted harassment is the goal).

Such a system would fail at HN, if offered by the site itself. Many users have accounts registered for the sole purpose of bypassing “identity over time” recognition, whether by karma and flagging or simply by username recognition. Anyone who perceives themselves to be blocked would just keep registering new accounts to exempt themselves from it, or maintain a collection of accounts to circumvent it. The absence of blocks removes a key benefit of doing so, which helps keep the sockpuppet population down.

(Note that if you see users that are frequently breaking the guidelines, please consider emailing the site mods using the footer contact link, so that they can consider whether further review and/or action is necessary.)

I haven't particularly noticed this. I mean, sure there are times when I've felt a lack of good faith in the other party, but that tends to be individual discussions rather than seeing repeat offenders; its often been noted the quality of discussion here is higher than most other places - but perhaps I don't spend enough time on here to have noticed the really annoying types.
I wonder if this can be achieved with uBlock Origin.

Like delete the div where div > div > span=WirelessGigabit.

There are browser plugins that will do this. I use one, it does wonders for my mental health.