Hacker News new | past | comments | ask | show | jobs | submit login
Tell HN: New features and a moderator
2381 points by dang on July 11, 2016 | hide | past | favorite | 451 comments
Today we'd like to introduce five new features and one moderator.

1. You can collapse comments in threads. If you're logged in, collapses persist across page refreshes and devices for a week.

2. You can tell which way you voted and undo a vote if you want. An 'unvote' or 'undown' link appears after a post's timestamp when you vote.

3. Save and share the best stories and comments. Click on a post's timestamp to go to its page, then click 'favorite' at the top. Your favorites are linked from your profile, and you can browse other users' from theirs.

4. On the front page and /newest, click 'hide' if you no longer want to see a story. The next story in the list will slide up at the bottom. If you change your mind, visit /hidden and click 'unhide'. If you're logged in, hidden stories persist for a week.

5. Find out which stories were the most popular on HN on a given day by visiting /front?day=yyyy-mm-dd. You'll see all the front page stories for that day, sorted by how much time they spent there. For example, Alan Kay's AMA had the most front page time on June 20: https://news.ycombinator.com/front?day=2016-06-20.

Finally, I'm pleased to introduce sctb, a.k.a. Scott Bell, as a Hacker News moderator. Scott has been moderating HN incognito for a long time, but starting today he and I will be sharing the public part of the job. Since Scott is familiar with all aspects of HN moderation, you shouldn't notice any changes in practice; this is just an internal refactoring to enable such innovations as vacations and a day off. Scott is my cofounder from Skysheet (YC W09), an excellent programmer with a meticulous eye for detail, and a thoroughly decent human being. Please welcome him and be nice!

Some UI issues and recommendations.

1. The up/down arrows after a vote leave behind a clickable void. That means you can still click that void after you have voted. If you changed the visibility on .votelinks instead of the buttons this would get fixed. Though even better UX would be to have togglable up/down buttons ala stackoverflow and others.

2. Why not provide the favourite link directly on the comment instead of forcing an extra click and page load. If it's a UI clutter issue maybe consider adding star and flag UNICODE characters. Again, having togglable icons for the same would be nice.

3. The collapse icon would be better off on the left for improved UI consistency.

EDIT: UNICODE characters don't show in comment. Is this a bug? They show in the textarea while composing the comment.

EDIT2: Add the following User CSS using your preferred browser addon for a bit of cleanup.

    .togg {
      float: left;
      margin-right: 5px;

    .votearrow {
      margin-bottom: 10px;

It would also be handy to have some visual guides for the indentation levels of nested comments as on Reddit. I've hacked my own indentation marks using a CSS injection for now, but this is clearly still not optimal:

    @-moz-document url-prefix(https://news.ycombinator.com/) {
      td { vertical-align: top }
      td > img { background: repeating-linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0) 38px, rgba(0,0,0,0.3) 38px, rgba(0,0,0,0.3) 40px); margin-top: 4px; height: 12px!important; }
      div.votearrow { padding-bottom: 3px; background: url('http://localhost/uparrow.png') !important; background-size: 12px 20px !important; width: 12px!important;}
I've also increased the size of the voting arrow because it's just uncomfortably small. By Fitt's law [0], smaller buttons require more time and effort to click!

[0] https://en.wikipedia.org/wiki/Fitts%27s_law

Riffing off your code, this extends the bars all the way up/down.

  td.ind > img {
      background: repeating-linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0) 38px, rgba(0,0,0,0.1) 38px, rgba(0,0,0,0.1) 40px);
      margin-top: 0px;
      height: 100%;
  table.comment-tree td,
  table.comment-tree tr,
  table.comment-tree th,
  table.comment-tree tbody,
  table.comment-tree table {
      margin: 0;
      padding: 0;
      border-spacing: 0;
  table.comment-tree td.default {
      padding: 0.5em 0.5em 1em 0.5em;
  table.comment-tree td.ind {
      padding: 0 0.5em;

Slight addition using wider, shadowy gradients to conceal some aliasing issues:

    td.ind > img { opacity: 0 }
    td.ind {
            linear-gradient(to left, rgba(246,246,240,1) 0px, rgba(246,246,240,1) 14px, rgba(246,246,240,0) 14px),
            repeating-linear-gradient(to right, rgba(0,0,0,0) 0px, rgba(0,0,0,0.03) 39px, rgba(0,0,0,0) 40px);
Screenshot: https://i.imgur.com/f2WfHyp.png

Unfortunately it breaks on the 'threads' page.

Proper nesting layout will only work if they use proper nesting. Given the limitations - great job! I only use the first two lines as the png does not load.

Try this:

    background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='20'><polygon points='0,20 12,20 6,0' style='fill:rgb(179,179,179);stroke:none;' /></svg>") !important;

of course it doesn't.

the url leads you to localhost. you'd need a local webserver which serves your preferred upvote picture.

Re: #3, I think when Reddit first implemented comment tree collapsing they also put the button on the right, but I saw a thread where someone pointed out that since the length of usernames is variable, putting the button on the left makes it impossible to mass collapse/uncollapse several comments by only moving the mouse vertically. After that they moved the collapse icon to the left, which I think is a much better UX.

#1 should be fixed now. Thanks!

Re #2: yes, clutter (icons don't solve the clutter problem, and HN's design is emphatically textual), plus there should be a bit of a speed bump before favoriting much as there is before flagging.

> clutter (icons don't solve the clutter problem, and HN's design is emphatically textual)

Even if you don't want to add more icons, you could still improve the visual elements you have (the vote arrows.) Links with title tags around Unicode glyphs would arguably be more textual than empty divs with gif arrow backgrounds and no accessible text fallbacks.

I still think they should work something like this: https://jsfiddle.net/84q0zecv/10/ even without the colors I think it communicates the states well, and is visually not that different from what the site already has.

What about discoverabiliy? I doubt most users are aware flagging or favoriting comments is possible.

That's definitely a problem, which we're thinking about.

Regarding Unicode, we do strip the most distracting codepoint ranges: emoticons, dingbats, misc symbols, etc.

The "pointer" cursor state remaining after clicking an up/down arrow looks like it was rushed or not quite finished.

I understand HN likes to keep things limited, which has been a real benefit to the overall UX on HN. But minimalism is often something that requires more time to get right, rather than just the result of having spent less time working on it. I feel like that might have been the issue here.

Alas, one can spend plenty of time working on something, care quite a bit about one's minimalism, and still have bugs.

That one should be fixed now.

Suggestion: Can you move the collapse button to the left of the username? One way I tend to use nested comment threads is reading all top comments, collapsing as I go.

Great stuff, overall -- thanks!

That would certainly increase the number of accidental votes.

As it stands, I have already accidentally clicked "ago" and gone to a comment permalink when I wanted to collapse a thread. Not much better.

Since collapse persists on page loads, hopefully it is better now. Then again, we can un-vote now, so I think we're back to having the behavioral advantages and disadvantages being close enough that it's a toss-up what any particular user thinks is more of a problem.

Why not double-click the comment body to collapse/expand? or maybe some other behavior that isn't creating a click minefield.

But at least now we can undo upvotes/downvotes so it's not as much of an issue as before!

...which is now not a problem.

It's not as much of a problem, but if people are regularly trying and failing to perform the action they want it's a UI wart.

Accidental upvote is a possible wart, collapse on the right is a guaranteed wart.

When in doubt, stick with already established standards.

Reddit does it that way, and I haven't seen any of the developers complain about accidental votes.

Because accidental votes are not a problem when you can undo a vote, which is now possible as well.

I've used HN Enhancement Suite for a while, and that really wasn't a problem.

I feel like it would be worth the trade-off.

This would be appreciated here too. The functionality is great but it feels unnatural where it's currently positioned.

Making it a slightly bigger target with a dash would also be useful: [–] instead of [-]

More generally, can you try to adjust it so that the [-] button doesn’t move around after being clicked?

The spacing above the username at the top of the comment shouldn’t change when a thread is collapsed.

I would say: left of the vote button too.

That's the behaviour I have on the reader I wrote. https://hack.ernews.info Works pretty well

I agree -- the Hacker News Collapse Chrome extension works this way, and I have become accustomed to it.


yes. it doesn't make sense from any design perspective. alignment is an important visual signifier and usability design tool.

there is no reason why vote arrows would be aligned across posts (it suggests a connection where there is none), while there are several for the collapse buttons.

this is textbook user interface design!

Great features, thanks!

The one feature I can't believe I lived without that the HN Enhancement Suite chrome extension provides, is highlighting unread comments since your last visit. It actually makes it worthwhile revisiting e.g. a 200 comment thread when there are now 300 comments without just reading all the same comments again and being unable to spot the new ones.

If it became supported cross device by HN itself I would be very grateful.

Yes. Another user has argued for this effectively and persuaded us to do some version of it.

Yay. I often find threads where I have an educated guess that there will valuable comments but the thread is very new, not many comments yet, ends up as yet another HN tab that I left open and then go through them all once or twice a week... Although maybe that's not a bad thing - that saves tons of time ;)

The simple hack I use in my own extension to provide that feature on reddit without Gold just simply logs the timestamp of every visit of the thread in a cookie, and then allows to select "new comments since visit X", and then just computes the comment time back into a timestamp, compares, highlights.

If HN would provide the actual timestamp in ISO format, as reddit does it, we could've had that a lot simpler a lot earlier.

For other people's interest - there is a "Reddit New Comments Highlighter" chrome extension that does that for non-gold users.

I could've saved a day of work if I had known that before, lol.

Although my thing nowadays uses an XPosed module to integrate with Relay and uses a server, cause I wanted that to work.

Thank you so much for these new features! They make using HN a much better experience.

It would be a massive improvement.

I bet whoever has the top comment on this one is going to see their karma go up and down as everyone tests out the unvote and undown feature. :)

Tested upvote, worked.

Tested undo upvote, worked.

Tested downvote, worked.

My testing is complete.

I followed your testing instructions on your comment. Test passed.

new user so pardon my ignorance but I dont have a downvote button. Do I need to enable it somewhere?

You need a certain amount of karma to downvote. I think it's 500, but I'm not sure because I don't have that much yet. :)

Edit: it's confirmed at 501: https://news.ycombinator.com/item?id=12074198

Just 5400 more days and I'll be able to downvote! What a time to be alive!

I just upvoted you there because I'm nice like that.

Thanks! Only three more votes before I get superpowers. :)

I upvoted you. With great power comes yadda yadda yadda.

Edited to add: PSYCH!! Now it's going to take 4 upvotes to get super powers. BWAHAHAHA!!

Edited to add #2: Just kidding! You're 2 upvotes away again!

P.S. Dear friends, I'm sorry. I won't abuse my vast and terrible ability to grant or deny imaginary Internet points ever again. -xf

With imaginary power comes imaginary responsibility, and don't you forget it!

That's not how karma trains work!!

Just upvoted you twice and it seems you're now past the 501 mark! Welcome to voting land :P

Upvoted to join the upvote train.

And down vote arrows do not appear on aging posts.

I was confused as to why I have a downvote button now, I just realized I barely passed 500 few days ago, woo.

You need to have a certain amount of karma before you can downvote comments. I'm not sure what the threshold is these days.

You get it after 500

There is a karma limit (of ~500) to get downvote privileges.

you need to have a certain amount of karma (number next to your account) for the downvote function to be available.

A few weeks ago I recently obtained the downvote ability at 500 karma.

I suspect you mean 501. I reached 500 a few weeks ago, and left it there for a while... it was such a nice, round number.

Can I suggest 512 for an even nicer round number.

Sorry upvoted you, onwards to the next round number.

^ This is correct. I was equally confused when mine hit 500 and downvote wasn't there.

Presumably somewhere in the HN code you would find `karma > KARMA_THRESHOLD_DOWNVOTE`.

More likely (> karma downvote-threshold) since news.arc is written in, well, arc.

Sure. I should have disclaimed my pseudo-code I guess. Point was just that I expect there's a > and a 500, as opposed to a 501.

What did you do to get to 500? I am still at 84 and feels like it will be forever.

You need a certain Troll Level.

No, you generally don't get to downvote in HN until your karma is above some threshold that changes occasionally.

I went for iterations - up, down, up, down, up, down. So it seems to track. I left an upvote to make sure it stuck when I come back in a few hours to revisit.

Now put that in a loop to see if they have any memory leaks :)

You are on some kind of genius crowd sourced testing thing, you should start a SaaS!

So was the final state of your vote down or did you change it afterwards? Did you test attempting to upvote twice in a row, downvote twice in a row, etc? :)

There is a bug after you undo your vote for the 500th time :)

I can repro this. Thank you for the instructions.

when does one get down vote power? edit: never mind i read below.

You can downvote?? Are you a wizard?

nice username, i love memes too!

Finally! I tested on you :) The upvote is awesome, there have many times over the years I've mistakingly hit the up/down and wished for a redo.

I wanted to upvote that comment and so I did!

Then later I changed my mind because really, it deserved a downvote.

Anger passed and facing the consequences of my actions I was nothing but a broken man. I brought back equilibrium and removed that downvote.

This is when I realized that the timing was perfect for a self-centered comment.

This comment made me want to test the reply. When there is a mighty wind, two cheeks are funnier than one.

I tested it on you, and left the upvote. :)

I'm having fun refreshing your profile page and watching your karma jump around.

Wow that is quite impressive jumping. Sometimes I forget how many people lurk on HN.

Same lol.

1314, 1313, 1311, 1314....

GP's karma is in the 1500's now. Wow that's a great comment.

When it settles down you have to tell us how many upvotes you ended up with on this. I tested back and forth several times and left you with an upvote. Your karma was about 200 less last time I checked!

I can't downvote. How much Karma do I need to activate it?

I'm at 495 and can't downvote.

Quick, 5 people upvote me and I'll tell you if it kicks in.

OK, at exactly 501 you get a little down arrow (doesn't appear at 500).

dang already confirmed it below, but at least I got to feel like a camgirl for 5 minutes.

Thanks for playing!

Would you like to know whether you lose your downvoting ability if your karma drops below 500 again? Just ask, and I'm sure the HN crowd is willing to help you find out :-)

Also, would that freeze the downvotes you gave earlier, or would you still be able to undo them?

We can all dream

I got my downvote ability at around 550 or so...

For me it was 500.

I'm not sure the number is constant. I think it scales with either the age or the prominence of the comment. I've seen threads where I was unable to downvote top tier comments, even though I could downvote their children.

It's constant at 501.

I did see interesting behavior when I crossed the threshold: I couldn't downvote comments that existed before I reached that karma level (or at least the UI didn't render them with a down vote button).

Downvoting wouldn't be affected by that per se, but downvote arrows last for a much briefer time window than upvote arrows do.

I think after 8 hours you can't downvote a comment anymore.

Are you sure you do not suffer from a mitm?

I have 117 and can downvote.

Are you certain? Maybe you are thinking of the 'collapse' button, which is represented by a minus sign?

Yep, although it is not near the upvote button and sits among such links as parent and flag.


400 or 500 points, I forgot which. Maybe someone with something between those two can tell?

Don't know for sure but empirically it's more than 450.

Voted up. Saw the "unvote", didn't click it. I believe Hacker News has tested the functionality. I'll leave the upvote. Here's to you splawn.

I failed unvote by tapping on collapse link

Haha, looking at your profile page, your comment karma is increasing at about 20 upvotes / min

A pessimist would see their karma go down, then back up -- maybe.

I actually did that before reading this comment. :)

I think we really just need to test that down-voting works. But I almost never use down-votes so I'll leave that up to the "crowd".

It's you :-)

I found a potential bug/oddity.

If you collapse a comment in a thread it also collapses when viewing the comments page on a user's profile, and visually it is very hard to spot when collapsed on that page due to the styling.

For example, open the below link[0], collapse this comment, then refresh the link. The comment becomes quite hard to spot on that page. The red/orange star or vote button is also strangely missing while collapsed, which further makes it visually hard to distinguish.

[0] https://news.ycombinator.com/threads?id=Someone1234

I agree this is somewhat confusing. If I collapse a comment thread on a story page, I wouldn't expect that same comment to appear collapsed in every other context. The only other ones that come to mind right now are: on a user's comments page or the new user's favorites page.

This is a side-effect of how regular the HN codebase is at its best: when you make a change, you get it everywhere. It would require special code to make this not work on /threads pages. Perhaps we should do that, though.

Alternatively a style change would help massively. Even if the thread is hidden it should have the same anchoring on the page as a thread which is not, so the eye tracks the positional anchor.

Why is hiding stories available to logged-out users? Reloading just makes them appear again. :p (EDIT: may be bug)

On a related tangent, why have all instances of "submissions" on HN been replaced with "stories"? It's an change which IMO does not fit the usage. (A Show HN wouldn't make sense as a "story.")

> Reloading just makes them appear again

Well, that's true of collapsed comment threads as well, and I somehow doubt that logged-in users are the only ones who see things on the front page they'd rather not.

> why have all instances of "submissions" on HN been replaced with "stories"

Because posts to HN are either stories or comments? Happy to discuss this at hn@ycombinator.com if you want to apply some lexicographical fine points.

> I somehow doubt that logged-in users are the only ones who see things on the front page they'd rather not.

Currently, the change is not persistent across reloads, which make the feature (to hide undesirable submissions) not helpful. I'm unsure if that is a bug but that does not seem intentional, and it reproduces on several browsers. FWIW, it works as described on logged-in accounts.

(Edit: Scott mentioned in another comment about Local Storage issues. That may be related.)

> Because posts to HN are either stories or comments?

Edited OP to note that "story" doesn't fit the tone of content unrelated to news, like Show HN. It's not a big deal, but it was a recent change I found odd and unprompted.

OK, we've disabled hiding for logged-out users for now, since they weren't persisted (that part wasn't a bug) and had other issues.

Now that we have thread collapsing there's no reason not to discuss finer lexicographical points right here!

Great changes btw.

How long does the "unvote" option last? Permanently? If I accidentally bump the "unvote" button on a comment that's years old, can I re-apply my vote, or only if it's an upvote?

That is a subtle point and I was curious if someone would ask about it!

Unvote links last for an hour. This is because the main use of voting data is to rank posts, and that's time sensitive. If we let people go back and unvote after hours have gone by (let alone years), that would be rewriting history, or counterfactually messing with it.

Even an hour is arguably too long. Since the main purpose of this feature is to correct misclicks and over-hasty impulses, a few minutes would probably be enough.

An hour seems a good compromise, since one reason you may want to change your vote would be if the post was edited after you voted.

An hour provides enough time for the edit to happen, and for you to see it and change your vote.

If this is not a target use case and you only want people to be able to undo misclicks, then 5-10 minutes may be adequate.

I think a few minutes would be fine - but it would be nice to still know how I voted after the fact.

Hmm. Good point.

How about in lieu of a stylesheet/visual change (since those seem to be few in number over the years), have upvote/downvote status result in a HTML element class attribute that browser-plugins can leverage for custom styling?

I was always under the impression that the reason you couldn't undo was purely to encourage putting thought into your votes, instead of clicking after the first sentence, getting through the rest of the post, and looking to take your upvote back.

Guess I was wrong. I'd say 30 seconds should be enough, with this thought in mind =]

The main use case for the unvote button is for mobile, and on a spotty mobile connection it might take a lot longer than 30 seconds until the action registered.

Sometimes I'll vote on a comment, and then as I'm reading the replies and clarifications, or other comments elsewhere in the discussion, I'll realize I misunderstood something and will want to go back and change my vote.

I'd agree an hour is too long; I would only really unvote if it was accidental (ie, immediately) or upon perusing the other comments or data that made me rethink my moderation (which would reasonably be ~5m or so).

I'm glad to see you guys finally got the resources you deserve to make these changes!

I'm also happy you guys are stealing all the best stuff from Reddit and leaving the other stuff behind. Great set of new features!

What I find more annoying is that it's on the right hand side even though all the other actions (vote on post, vote on comment, reply) are on the left hand side. Seems like a trivial thing but that is annoying quite a bit.

>>> 5. Find out which stories were the most popular on HN on a given day by visiting /front?day=yyyy-mm-dd. You'll see all the front page stories for that day, sorted by how much time they spent there. For example, Alan Kay's AMA had the most front page time on June 20: https://news.ycombinator.com/front?day=2016-06-20

That's cool, I guess, but algolia <https://hn.algolia.com/> seems like a much better tool for the task.

From your comment, I was curious whether they were pulling the results from Algolia behind the scenes. The result sets for a given day look to be pretty different with Algolia being ordered by points purely.

Front [0]

(92 stories hit the front page)

Top 10:

    1. Sega Saturn CD Cracked after 20 Years
    2. Tell HN: New features and a moderator
    3. Restoring Y Combinator's Xerox Alto, day 3: Inside the disk drive
    4. Riffle: an efficient communication system with strong anonymity
    5. Hacker News' “Who is Hiring?” thread, part 2, remote and locations
    6. Chalice: Python Serverless Microframework for AWS
    7. Yoshi (YC S16) launches “set it and forget it” vehicle re-fueling service in SF
    8. A Glimpse into the Apollo Guidance Computer
    9. Errol Morris's Secret Weapon for Unsettling Interviews: The Interrotron
    10. Friends are as genetically similar as fourth cousins
Algolia [1]

(885 stories)

Top 10:

    1. Tell HN: New features and a moderator
    2. Sega Saturn CD Cracked after 20 Years
    3. Pokemon Go is a huge security risk
    4. How we're scammed into eating phony food
    5. Pokémon GO: The Data Behind America’s Latest Obsession
    6. Announcing TypeScript 2.0 Beta
    7. Elixir 1.3.1 released
    8. Hedge Fund Wants to Use Atomic Clocks to Beat High-Speed Traders
    9. A beginners guide to thinking in SQL
    10. Hacker News' “Who is Hiring?” thread, part 2, remote and locations
Note: The Algolia date picker doesn't seem to like you starting and ending on the same day. It changes start date to the day before, so perhaps this is including a little more than one day of data.

[0]: https://news.ycombinator.com/front?day=2016-07-11

[1]: https://hn.algolia.com/?query=&sort=byPopularity&prefix&page...

> <https://hn.algolia.com/>

I see this bug's still hanging in there.

Dang those are some nice features! :-) I really really love the collapse feature. Does the collapse persist across new comments being added or are those not collapsed? We'll have to see.

And final thought on the stories/submissions vs comments the challenge is that comment is both a verb and a noun, you comment, and you can read a comment. Whereas stories is always a noun. Submission is the correct name for something submitted.

Collapses persist even if new comments are added underneath them, though the number of comments in the tree (e.g. '[+4]') will update.

Comments are submitted, too, though, so the word 'submission' seems oddly ambiguous to me. Also, I doubt I've ever anyone say 'submission' in conversation. People say "story" or "post" and of those two only "story" is unambiguous.

(But I'm happy to change it back if people feel strongly about this! It's an amusing lesson in how you can't change things without being noticed.)

Posts is an interesting alternative. It has the same verb/noun flexibility as comments. But really it is minor, I wondered what 'stories' was but quickly realized it was things that I had submitted. So I think you should keep what ever you feel is best.

Given that you know "when" a thread was collapsed and you know when a given comment was added, there is data available to compute "new since you collapsed it" but I recognize that would an interesting challenge. So you keep the comments in a list, and the list can be internally sorted in date or karma order, then sorting by date you could splice it at the date it was collapsed and compute the length of the two lists (pre-collapse and post-collapse). I have no idea how useful that is, just collapsing huge threads (especially ones that wander off topic) is such a huge win.

I agree with Chuck, by the way. "stories" is much less clear than "submitted". Perhaps in the theme of verbose clarity, "submitted stories" would be a good label?


Even if I mention that you could make it "Submitted stories / comments" on a single line to be just like the two others?

yeah collapse is nice, but curious what will happen on collapsed thread which is added to...

i'm also confused, wasn't there already a "saved" section where upvoted items went previously? seems like all which was done was renamed a few items (and added the favorite which allows marking for later, without giving a vote)

The old 'saved' list still exists, but has been renamed to 'upvoted' because that is a more precise name. That list is private—we certainly don't want to publish users' votes.

The new 'favorites' list is for highlighting the best stories and comments you see on HN. That list is shared, because want people to browse each other's favorites. The idea is to help disseminate more of the amazing content that people post to Hacker News, much (most?) of which is only seen by a few readers. And I hope that for dedicated HN users it will be fun to curate your own list of highlights, plus see what others have on theirs.

Also if the most-favorited stories and comments turn out to be interesting, we'll publish those lists.

Users could see stories which they've upvoted, but these were not visible to others. Your favorites will be.

I've been playing around with the 'hide' feature on the new page for a bit and I've developed a simple workflow to help catch spam:

Look at a submission, decide whether to just ignore it, upvote it, flag it as spam or open a tab and leave a comment or to watch it for later.

Then 'hide' the submission. Like that you can easily keep track of what you've seen and what still needs to be looked at.

You could use the same method for the homepage.

It's a super useful feature.

Thanks Dan & Scott!

Great features!

Request: Feature 5 most-popular-by-day is almost exactly what I've wanted for a long time, except in RSS form - a feed that updates once per day with the top 30 stories from the previous day in the order of most time on front page. None of the external HN-specific RSS generators do it quite right.

We'll look into RSSifying this if you'll email hn@ycombinator.com to remind us.

Thanks, folks, for the great improvements!

1. The time-capsule feature is really cool. Traveling back in time to see what sort of tech people were building / what other things were on the front page when X popular product launched is going to be so much fun. Update: it only goes back about a year and a half. See below.

2. Undoing votes has also been something I've wanted for a long time. I've accidentally downvoted/upvoted more times than I'd like to count when using my phone.

3. I currently use a bookmarking service to keep track of posts I want to save on HN, but native favoriting is much better. :)

Also, welcome, Scott!


Edit: I tried to view the front page [1] on the day I launched Breakup Notifier [2] ~5 years ago, but I get an error message. Is there any way you HN wizards can add the ability to go back further in time?

> We don't have this data before 2014-11-11.

[1]: https://news.ycombinator.com/front?day=2011-02-21

[2]: https://news.ycombinator.com/item?id=2243650

Alas, we only started tracking this data in November 2014.

I have historical rankings for all major list pages (/news, /news?p=2, /active, /best, /classic, etc) since 2014-05-05, if it's helpful. Currently 27MM records.

Sounds like it might be useful for getting the front page archive to back that far. Can you email us at hn@ycombinator.com?

Maybe you could complete your data with what would have been scrapped / archived at the time. Though I don't know if there's such a dataset for this timeframe (pre Nov. 2014)

Bummer. Oh well. :)

Which bookmarking service do you use, just curious?

I use Pinboard. FWIW, I also write one of the more popular iOS apps for it. :P


Huge thanks to you guys. Collapsing comments are working perfectly on iPad.

> 1. You can collapse comments in threads. If you're logged in, collapses persist across page refreshes and devices for a week.

The most impressive thing to me is that this feature exists and yet HN seems to have kept its good ol' fashioned <table>-layout. Obviously, it logically follows that it is perfectly possible to write a script to traverse a hierarchy of nested-<tables>, just as it's possible to recreate the Apollo guidance software in Brainfuck...but it's still impressive nonetheless.

Hey, we need something to keep complaining about....

Hey, good job there, much needed improvements. Thanks.

There is a CSRF vulnerability in the "favorite" feature.

A very quick demo, Visit this URL: https://jsfiddle.net/o9hw1u75/embedded/result/

Now visit your favs from your profile and you'll notice that "SQL Injection" post is automatically added your fav list. Just like upvote system fav needs to be protected against CSRF.

Whoops, good catch! Will fix. Edit: still can't believe I forgot about that after all these years...

Thanks for the report! This should now be fixed.

Thanks dang et al. for doing such an absolutely stellar job. Even more than this steady stream of new features, the key thing I've been noticing for the last couple of years is a complete absence of laments about how things have been going downhill. Keep it up!

I have a piece of feedback.

The new collapse button is at the end of the comment. This means that the collapse button's position on the page changes based on username length and duration wording (hours Vs. minutes, etc).

One nice thing about other websites which I won't name, is that you can read and collapse all of the top comments without having to "seek" the collapse button constantly. You can literally scroll and collapse as you read, it is always in the same spot.

The functionality is most welcomed, and I'd take this design over not having it. But it could be slightly better with a subtle design change.

The argument against that is that with the collapse button so close to the vote arrow, we would be guaranteed to get misvotes, especially on mobile. The undo vote feature would no doubt help with that some, but only so much.

To be honest I would rather have the vote arrow moved somewhere else. I'm often more interested in collapsing a comment thread than voting. I'm not sure if this is something only I care about though.

It'd be hard to say what most users prefer. I would venture to guess that we're all conditioned to vote before collapsing comments simply because we've never had the option to collapse comments until today. So behavior preferences will change over time.

However, I'll hypothesize that it's preferable (overall) to have more friction on collapsing comments. A lot of great discussion happens in response to even a mediocre top-level comment, and forcing the user to take a few extra moments to skim the child-comments will increase the serendipitous discovery of these nested gems. Furthermore, the problem of a mediocre top-level comment with mediocre nested comments being at the actual top of the discussion is mitigated by the ability for people to downvote the thread, as has been done (with varying levels of efficacy) until today.

> . . . forcing the user to take a few extra moments to skim the child-comments will increase the serendipitous discovery of these nested gems.

Excellent phrasing. As a fairly long-time user who lurks more than he comments, I can concur that much of the best conversation I've read and participated in happened to be such nested gems. Serendipitous, indeed.

>A lot of great discussion happens in response to even a mediocre top-level comment, and forcing the user to take a few extra moments to skim the child-comments will increase the serendipitous discovery of these nested gems.

Is this actually data-driven or just a guess on your part? My experience is that a mediocre comment rarely ever gets good replies.

Anecdotal; comment vote scores aren't exposed so I'm not sure if an analysis is possible, even with what's been loaded on to BigQuery [0].

Maybe "mediocre" is the wrong word, as it implies an absolute judgment (on some non-existent scale of "quality"). I guess my intuition is derivative of the "don't judge a book by its cover", in that even if a submitted and upvoted story is not something I feel like reading, I still might read the comments to see the discussion.

Maybe someone internal to HN can do a quick calculation of how many child-comments surpass their parents (while accounting for the differences in visibility).

[0] https://news.ycombinator.com/item?id=10440502

Why I agree with you, and would argue for putting the vote arrows somewhere else, is that voting should only happen after someone has fully read a comment and at least given it a second to think about it. It makes more sense for the collapse functionality to always be in the same place so you can do it somewhat "mindlessly", but for voting you specifically don't want to be able to do it mindlessly.

Definitely agree, the collapse should now be prefixed and the voting should be moved elsewhere.

This design was the minimum change possible (which has a value, but usually a net negative one).

But it would be a backward incompatible change :D

So why not switching these two, putting the vote arrow on the right and the collapse button on the left? The tree controls I know all work that way that the collapse button is on the left.

The vote arrows really could use some size/distinction love on mobile.

A subreddit I was on recently (sorry, can't recall which) has styled the collapse-sensitive region to be the entire indent region of a comment block. This is actually unbelievably awesome.

> The undo vote feature would no doubt help with that some

As long as the user is aware of the misclick, I don't see this as a likely problem, personally. Awareness of the misclick is, in my opinion, quite likely, given that they will see the arrows disappear and won't observe the expected thread collapse.

Easily solved with some margin and padding, heck maybe even a media query for the mobile users!

If you're going with mobile in mind, would you consider replacing "-" and "+" with "collapse" and "expand"? Trying to hit one character on mobile can be frustrating.

The HN app I use lets you click anywhere in the heading line to collapse/expand. Could you do the same here?

> The HN app I use lets you click anywhere in the heading line to collapse/expand. Could you do the same here?

Both the username and the date are clickable links in the HN interface (to the user profile and the comment itself, respectively).

I meant 'the empty space to the right of the line'.

I actually prefer it at the end, as HN uses the same (or very similar) theming for Desktop and Mobile. Before Reddit redid their mobile experience, having voting buttons next to collapse meant many inadvertent votes when trying to collapse on mobile.

Until HN has a good mobile theme by default, I'd prefer collapse and voting buttons to be well separated from one another.

But you can undo votes now!

So true! I'm not sure which I dislike more: random location for collapse or inadvertentle votes that require an undo action.

For me, at least, the most frequent use case for collapsing a thread is in the middle of it, when the discussion has veered off into territory in which I have no interest. In this case, I need to either scroll back up and find the originating post of the thread in order to collapse it, or scroll down until I find the beginning of the next thread.

What I'd like to see is a control that takes advantage of this right-side position of the collapse button to add something like the following, perhaps only visible on rollover:

  [-] all
In which the `all` link collapses all the way up to that thread's OP, immediately revealing the next thread below.

That's precisely the hack I mentioned a few comments back on ... some subreddit somewhere.

Essentially, the left-hand indent zones are collapse regions for the post topping that level of the hierarcy. It's sheer brilliance.

Can't find the sub, though I've looked for it. I thought it was a science one. Maybe politics -- somewhere I don't often go. Hrm, no, not there either.

100% agree with when the desire to collapse a thread occurs.

I think this old reference is on par with your comment, at least it's how I view and agree with it.


Realizing many comments down that you are wading into unwanted territory makes the side column incredibly useful to pulling the rip cord as it were.

Each comment has a significant vertical footprint(at least 2 lines after the upvote triangle) on mobile so maybe this opinion is biased, but I am also of the mindset that users shouldn't be alienated to a separate app to cover a relatively simple wart removal.

Heck, having a visible column in the left position to flick up or down for a collapse or return to parent becomes increasingly useful. But now I'm on a new tangent.

Coming from HN Enhancement Suite add-on I too found this annoying.

and it broke the plugin :/

A piece of kludgecode for Greasemonkey[Firefox] or TamperMonkey[Chrome/Chromium]. The script will all move the collapse links to the left margin on this page:

  // ==UserScript==
  // @name        move_collapse_link
  // @namespace   com.kludgecode.hn.demo
  // @include     https://news.ycombinator.com/item?id=12073675
  // @version     1
  // @grant       none
  // @run-at      document-end
  // ==/UserScript==

  window.$destination =  document.getElementsByClassName('comtr');
  window.$source = document.getElementsByClassName('togg');

  for (var i = 0; i < $source.length; i++) {
    var row = $destination[i].getElementsByTagName('tr')[0];
    var cell = row.insertCell(0);
Modifying the @include line by replacing the query portion of the URI with an asterisk, will cause the code to run on all HN "story" pages. Matters of preference ought to be within the users control. I like Greasemonkey/Tampermonkey because suddenly a lot of things are.


Perhaps also adding the first line (truncated if need be) of the Parent's comment would be a nice addition also?

It would help when scanning all the collapsed comments and seeing some context other than the Parent's username?

Nevertheless these enhancements are much appreciated!

That site is reddit, and they too introduced collapsing on the right side of the name. I have faith that HN will change it!

I like the button well separated from voting buttons. It's still too close to the "unvote" text, on mobile, which needs considerable love.

I was going to say the same thing. On mobile, hitting collapsing or unvoting is 50/50 right now.

I've been using this handy Chrome extension for years. It places the collapse button in front of the username.


Similarly, I've been using the userscript version of this (or at least something similar to this if it isn't the same) now available at https://greasyfork.org/en/scripts/2960-hacker-news-collapsib...

> The new collapse button is at the end of the comment. This means that the collapse button's position on the page changes based on username length and duration wording

exact same thing happened on reddit when the feature was introduced

I can confirm, I personally implemented a reddit-like app and started with the [-] on the right. Realized that it was really annoying and placed it on the left.

This. It took me a minute to find the collapse link, but once I found it... What a time to be alive.

You mean seek the collapse button linearly. :)

Yay, some extra RAM for me! I was using this extension to collapse comments, the new functionality seems to be identical with what the extension does.


Great features, the collapsable comments chrome plugin is one of the first things I install on a fresh machine

Awesome! One small bit of feedback: clicking [-] to collapse a thread moves the nearby text ("user 3 hours ago [+ 5]") a small amount vertically. It would be cleaner visually if it stayed in place, and it's easier to un-do an accidental collapse if you don't have to move your mouse.

A bit more info here - it moves a small amount vertically only if both the upvote and downvote arrows are visible. Collapsing older comments where only the upvote arrow is visible doesn't have the same effect.

Welcome Scott. @dang - Good luck with the initial "vacations and a day off". I found that the initial incantations of these turned into a "Astro work day on neglected home projects" by the life partner. Hopefully not too many down rounds before you see a positive cycle.

Like the new features.

Please make the Up and Down arrows 3-4 times larger and put a square around them that changes colour when it's hovered.

Thanks a lot for these useful additions though!

EDIT: An image says 1000 words (slight exaggerated): http://imgur.com/LKyUaSl

Especially for mobile ;)

Ah, I noticed sctb a few days ago when he posted along the lines of "we detached this thread" or something like that and wondered how many low-key or sporadic moderators there are.

One fewer now!

Collapsing threads! Thanks!

The problem is that the collapse is on the right. It used to be this way on Reddit too, but after users complained they moved it to the left. Right now it's hard to collapse a series of top level comments in a row since you have to keep moving the mouse around a lot.

Feature request to move the collapse to the left side, like on reddit?

For people holding a mobile phone with their right hand and using their right thumb to collapse, works wonderfully.

Is there a reason not to have the mobile version slightly different from the desktop one? You could keep happy both populations.

For me it's on both sides: https://i.imgur.com/vTPD63G.png

One of those is because of a chrome extension. I guess just get the extension. :)

The one thing the web should have had from the beginning: flexibility of what happens to the contents on the client. Somehow this "feels right", given the original Alan Kay's vision of what should be happening on a personal device. Users should always be able to tweak things the way they like them.

There were no multi-level collapsible threads, so I'm replying to your post to see it work :)

Another reply for deeper testing!

It seems to work. I mean of course it will, and it's going to be a great way to skip "I'm surprised by all the negativity here" posts.

And thank you for extending the test case!

Looks like this means HN's JavaScript is no longer just a single short script tag's worth. Definitely welcome changes, and thanks to those involved.

I've been using HN with JavaScript disabled and it has worked fine until today. Only thing that didn't work for me was search.

But these new features require JS and that's fine with me. Not all JS is evil.

Same story here. Actually, I think all of these new features would work without JS, using just CSS, except retaining collapsed threads across page loads (although given that CSS is technically Turing complete it is probably possible if the state were persisted server-side, which you can do with an html form; personally I would just use JS and cut my hosting costs). Check out this demo of CSS-only HTML:


I love the hiding feature, thank you. I did noticed I can't hide YC company "hiring" posts.

Ex: "GitLab is hiring a security engineer (gitlab.com)"

Good catch. That's probably a side effect of job ads being treated differently in the code. We'll look into fixing it.

Bug: This appears as a "Please read about some new features. [x]" heading, but clicking the "x" does nothing (including after page reload)

Otherwise: Awesome! The collapse feature in particular is something I've long wanted.

It looks like this can happen if you have local storage disabled (perhaps temporarily, if you're using an incognito window).

Doesn't seem to be the cause for me. I've not disabled anything (in fact, going into local storage I can see a few settings), and I'm not incognito.

If you'd like to email hn@ycombinator.com and include any errors you see in your browser's console, we can help troubleshoot. Otherwise, we'll remove the banner before long.

As someone who can never keep track of interesting links, I welcome the "favorite" functionality as another system I will use for a while, until it gets cluttered up and meaningless :) But honestly, good stuff.

I think many HN readers should take a good look at this list of features and look at how long HN has been around. These may seem like obvious things, but HN stayed very true to MVP for a very long time.

Any insight as to why now was the right time to add in these features might help others identify timing of expanding on a core feature set.

These are awesome improvements. One change set, 1000% improved messaging. I think the only thing left that I wish I could do is click on a parent link from a given link (when you're in the middle of a long comment list and you want to see the specific post to which a message is responding).

> You can collapse comments in threads. If you're logged in, collapses persist across page refreshes and devices for a week.

This is a nice feature, though I'd prefer if collapsing preserved the "root" comment and collapsed the responses, rather than hiding the root comment.

We did consider that, but sometimes one wants to collapse a very long top-level comment.

Why not set a max height for the top-level comment and use overflow CSS?

When hiding the first and then the last story, this was the result: https://news.ycombinator.com/snip-story?onop=news&id=1207282...

I guess that's not intended...

Damn it, first bug. Ok will try to reproduce. Can I email you if we can't?

Edit: this should be fixed now. Thanks!

Was able to reproduce, but only hiding first then last - last then first doesn't break things.

Was that intuition to test that? Hiding the first then the last story seems an awfully specific test.

It was just pure coincidence.

This is an interesting read: https://news.ycombinator.com/hn.js?fviVA4TBdTrpMa3yBUk0:

function $(id) { return document.getElementById(id); }

I am happy to add "undown/unvote" to my list of internet words that should have existed before but did not.

Just curious - why are things like "Gitlab is hiring" not hideable? I don't plan to apply for a job there, so I don't care to see that story anymore today. But I don't see a way to hide it.

That's a bug: https://news.ycombinator.com/item?id=12074233.

Edit: should be fixed now.

Looks good! Thanks!

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