Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Orange Juice – Small UX improvements that make HN easier to read (oj-hn.com)
124 points by latchkey 22 hours ago | hide | past | favorite | 142 comments
 help



Lots of nice tweaks, but the most important is missing: the ability to move the collapse comment buttons (`[-]`) to the left of commenters' usernames. Doing this makes the collapse buttons all aligned with each other, making them far easier to click in succession. "Comments Owl for Hacker News" extension does this I believe.

The grey bar on the left that the extension adds also collapses the comments. They are aligned vertically and they have a bigger clickable area than [-].

but then the upvote button is too close to the collapse thread, plus, why make it easier to hide discussion? => makes it easier for scripts to automate by visual/x,y placement

Latchkey, would you be comfortable with HN adopting your dark mode styling as a user choice someday, if they came around to liking it? I really like it and I think it’s in the spirit of the site.

For those that prefer userstyles, I made a dark theme a while ago https://github.com/andrecarini/hn-dark-mode/blob/main/hn-dar...

Tom (the moderator) said he was looking into getting it appended to the HN's CSS. I haven't asked them about it since ages ago, wonder if they dropped the idea.


I'm pretty sure that will never happen, as it would've happened already by now. People can and do already use custom CSS or Dark Reader for dark mode.

Some things have taken us 15 years and then pow they happened

dang, i pitched this on reddit like 20 years ago. I've always wanted to know what putting the new page on the front page would do to content quality. Something like this https://keizo.github.io/hackernews/

Dang your comment excites me to think that Hackernews can have dark mode in future.

Aside from all of this AI hype, This is the feature I am most excited about xD!

Dang, genuine question but when you moderate/view Hackernews yourself, I suppose that you must yourself be using dark mode too correct? or do you view hackernews in light-mode?


Although I did just confess* to enjoying accoutrements which for years have been selfishly withheld from others (bare-bones UI for thee but not for me), dark mode is not one of them.

* https://news.ycombinator.com/item?id=47696183


Out of interest, why do you suppose that?

Oh, I had thought that when dang said somethings took 15 years and pow they happened, maybe my interpretation was that dark mode is definitely something which can occur within the future in a similar fashion.

It does not work in embedded browsers inside RSS readers

custom CSS is the way. I don't believe HN will ever adopt dark mode. But the site is so stripped down it's easy to write custom dark mode for it.

Stylus is great for this kind of thing - it's basically Tampermonkey but for site-level CSS overrides.

https://addons.mozilla.org/en-US/firefox/addon/styl-us/


Thanks for this! I've been using it for less than a minute, and it has already exceeded my expectations:

Installed, opened the raw view in the GitHub link to the dark mode style linked to above to copy it into the clipboard, and was pleasently surprised that it opened in the extension with syntax highlighting and a button to install.

Clicked "Install", back back to HN, reload, dark mode.


Cheers! I feel like the vast majority of extensions could be rewritten as either TamperMonkey or Stylus scripts.

I’m always leery of installing new extensions (nothing against Orange Juice) because of all the high-profile cases where they get bought out by unscrupulous companies and basically turn into malware payload delivery systems.

It’s nice to be able to reduce the attack surface down to just these two extensions, which have been around for a long time.


I agree, though I use Violentmonkey instead of Tampermonkey because open source, and uBlock Origin because rewriting it as a *monkey script is somewhere between "Implement a MIDI Machine Control interface to my turntable" and "Rewrite FreeBSD in Rust" on my project list.

Side note: enable the Stylus "Instant inject mode" option to prevent light mode HN from briefly flashing when loading or changing pages.


Or you can just use my extension, heh.

That would be great! Please do.

Thanks! A lot of it is AI with my own input, but I think it did a great job.

The code is all open source and people can do with it what they want. It is GPLv3, but I'd special license it to them as MIT without question.


Ah, oh well. Thanks!

Well, if it's AI-generated, it's not really copyrighted by you and you cannot license it under GPL, since you did not write it.

Nice work, nevertheless, and useful!


It is AI assisted. I still wrote code and designed the core architecture of how it works.

I mean, it's a color scheme. With like 5 colors. So good luck getting it copyrighted anyway.

Not bad I do like the transparency on AI usage. So many projects omit this completely and its difficult not to assume someone just claude coded it in an evening to farm clicks. But this looks nice I'll probably check it out

All day long, I read about people vibe coding, so I decided to open my mind and try it out myself and see if I could do some sort of mix between my own skills as a life long web developer and whatever the kids are doing these days. Mostly because I have a strong belief that AI itself won't take our jobs away, but people who know AI will.

What I found out is that I'm never going back to a world where I don't integrate AI into my entire coding workflow. All the way from writing documentation to committing code. It makes things way more enjoyable.

I truly enjoyed creating this whole project, it scratches my itch, and I hope that it continues to grow and be maintained over many years. I have another web project that's going on 7 years now and gets 88k downloads a month [0]. This is my passion, I'm here until I die, and even that project is now benefitting from AI.

[0] https://github.com/lookfirst/mui-rff


This is super nice, thank you for including an AI disclosure. I would probably normally avoid something like this bc I would be considered by how much code oversight there is. Very nice to know that it's overseen properly by a human. Installed it and it's quite nice!!! great work :)

It would also be nice to be able to hide the checkbox it adds to the homepage. also disabling show focus box doesnt actually seem to work?


I want hacker news UX to stay as it is, mostly, but these are features I'd welcome.

What features would you welcome?

It would be nice to flag who the OP is in the story comments. Provides helpful context, esp. if they posted their own project.

Here's one potential implementation:

https://chromewebstore.google.com/detail/hn-maker-badge/khod...


Implemented.

> What features would you welcome?

1. Dark mode

2. (Now that i'm seeing it in action for the first time) inline responding. That said: this increases the weight of the page considerably (in JS code), so delegating it to the various third-party apps is arguably the better approach for this specific platform. (But now that i've seen it in use here i'll have to add this to the Fossil SCM's forum at some point, as this is sooooo much more comfortable.)


- Better formatting for text: (1) bullet points (2) markdown-like links (3) Slightly different background for code.

- More "sub-reddits". We already have Ask/Show HN. We probably can add a couple more to keep everything organized.

- Option to auto-collapse comments threads deeper than X levels by default. When they are all open by default like today, only the top comment and its children get more of the eyeballs.


I like how on Reddit you can click to the right of a comment header (username, timestamp, etc) to collapse that subthread. Gives you a much bigger hit target than just [-]. Also saves putting [-] over near the up/down arrows for consistency of positioning, a decision which could otherwise just create trouble on mobile.

Ooh, I'm having that feature for the next version of Comments Owl for Hacker News (which already moves the [-] to the left and increases the size of it on mobile), but does that not lead to accidental collapsing while scrolling on mobile?

I've already added using a confirm() for flagging and hiding in list pages on mobile to it because it's so easy to accidentally hit while scrolling.


Also "unread comment highlighting" would be so good to have.


That was actually kind of a pain to implement. Refined didn't do it fully, mine covers a lot more edge cases.

Can imagine!

All the features I've added to this extension.

But if you want to pick one: Inline replies.

Right now, I have to do a ton of magic to make that happen in order to work around your auth flow. Namely, pulling the auth token out of the other page and then having to keep track of it in session storage.

I could delete a whole lot of code if that was just built in.


By inline replies do you mean you click 'reply' and then a textbox opens in place?

The browser extension I wrote years ago, and which tomhow and I use for moderation, does this. I feel guilty about not having shared it a long time ago, but there just has never been time. Now that LLMs are starting to let me do things I've wanted to do for years, there's a chance I'll actually get to it before the sun dies.


Yes. Here is the implementation I've got... note that I also added links to the rules/guidelines in an attempt to help with that issue too, heh.

And yes... AI enables so many things.

https://oj-hn.com/assets/inline-reply-light.png


Thanks. My feeling as well.

I would like to see users clustered by their political and programming axes of belief

When someone who programs mostly in Rust responds to someone who programs mostly in Go I would like an animated bouncing icon that says "fight! fight! fight!" and when I press it it should leave a comment that instigates a fight, like "Serde is not really all that good".

What is the correct pronunciation of serde? Fight amongst yourselves. /s

I would like to see this projected into a "lawful-neutral" meme template

This is pretty darn cool. i've not yet seen any mention of one particular quirk so will point it out: on Firefox it flashes between "normal" and "upgraded" mode pretty starkly (A) when switching pages and (B) when tapping "add comment" (which is apparently done via page reload rather than the HN API). i've no clue whether an extension/app has any influence over the timing of that so cannot suggest how it might be resolved, but will say that it's particularly jarring.

I can't figure out how to toggle to Light Mode (maybe it uses the system setting?). HN is something I prefer to be in Light Mode but everything else in dark. Gonna remove until this is configurable.

Defaults to system. The toggle is in the top right corner of the navbar next to your karma.

It looks pretty good! I'm using it now and its a meaningful improvement to the existing site.

Out of curiosity, why did you make a new Github account for the extension instead of developing it on your own account?


Thanks!

Because I see this becoming bigger than me and a separate organization made sense. There is a super thin backend component right now too. There is the potential to also add in some extra features that require a server/db. I'm kind of inspired by the atuin model of things.

I've got a LONG list of features I'd like to implement over time.


Pretty cool. This is the glitchy userscript I use on Firefox mobile[1] (with screenshot) to make tap targets bigger and move navigation at the bottom of the page + collapsed.

[1] https://gist.github.com/mhitza/0956d7e2c11d3102cbd4cba7f6d06...


i like some of the things this does, but pretty much all of this is not UX improvements, it's UX opinions.

as a personal project to make HN better for you, i guess it's cool. but making every link open in a new tab so my back button never works is definitely not for me.


That's good feedback, I can change that to a preference.

UPDATE: implemented as a preference that you can turn off. just click the app icon in the extensions list.

https://github.com/OrangeJuiceExtension/OrangeJuice/releases...


"Tested, not vibe coded" yet you mention the AI has written all the tests. This extension may not be vibe coded but it's close to that, it seems. Regardless it seems to work well, I replaced the older Refined Hacker News extension with this, which seems like where you initially sourced the code from as the features are very similar, 1:1 even for some.

I also use this extension HNRelevant (https://addons.mozilla.org/en-US/firefox/addon/hnrelevant) which shows a list of similar posts, you might want to add that as an optional feature as well.

What's the tech stack, pure TS? You also might want to migrate from Biome to oxc, I did recently and it plays well with Vite+ (or just move to Vite+) directly.

Noticed a bug, once I edit my own comment and go back to the main post, I show up as [op] not you. Also I should be able to edit my post inline not be moved to a separate page.


It is heavily coded with AI, but I'm also a 30+ year web developer. I'm not just one shotting all of the code, I'm reading it too. I'm feeling like it is giving me super powers.

See the thread below about refined, which hasn't received an update in 4 years.

I have HNRelevant on my list of features that I've been collecting.

I tried oxc and didn't like it as much as biome. They admittedly aren't as good at formatting yet. The real winner here is ultracite.


Sounds good. Another bug or quirk, with Refined, I was able to reply and then tab once to the reply button and hit enter. Now with the "HN's approach to comments and site guidelines." text I can't do that, "comments" and "guidelines" are links so I have to tab three times to get to the reply button which is annoying. Omit that text or change the tab order (this is possible in HTML with the tabindex attribute, just make the reply button higher priority).

Also add ctrl/cmd-enter support to submit the reply.

Also this orange border when clicking a comment or link on the front page is a bit annoying, especially when it doesn't seem to actually do anything (it's not a tab select style, that shows up as the browser's normal style), and it seems to persist.


Great suggestion! I literally took your comment, passed it into AI. At first it tried to remove the text as well as set tabIndex to -1 in code, but I think now I've got something I like.

This has been fixed and is making its way out now.


The orange box is to mark where you are currently focused. If you use the keyboard navigation (keys: j/k), it really helps.

It's distracting for those who don't use hjkl so might be good to have it as an option.

Good feedback. I'm pushing a fix for this now. When you click the extension icon, there is now a preferences pane there and a checkbox to enable/disable the box.

https://github.com/OrangeJuiceExtension/OrangeJuice/pull/15


I noticed this as well and came here to comment about it. The term "vibe coding" is becoming quite overloaded.

omg this is amazing, finally there is someone noticing that the ux of hn needs to be improved...


This is exactly what I don't want my extension to become. I don't want a new UX, I want the existing UX to be enhanced.

I use refined Hacker news Extension.

https://github.com/plibither8/refined-hacker-news#highlights

It might be beneficial to tell me what the difference between these two can be? A lot of the features from my first glance (I can be totally wrong though) are within HN refined.

I would really appreciate a short summary of differences. Personally I am really happy by HN refined though so kudos to @plibither8


Refined hasn't received an update in 4 years.

https://github.com/plibither8/refined-hacker-news/issues/135...

I used refined for years as well. Great product, but the underlying code was meh, and the author abandoned it. If you're using refined today, you're experiencing a lot of bugs as the HN DOM has changed over time.

I maintained my own fork for a long time but finally motivated myself to try out AI assisted coding and this is what came out of it. It isn't a port, it is a clean rewrite from the ground up.

I took every feature that I enjoyed from refined, re-implemented it from scratch, with a totally different architecture that allows much more control over the DOM and runs a whole lot faster.

I had AI write hundreds of of unit tests, so that we can make sure that bugs don't appear in the future. I also fixed a whole ton of edge cases along the way.

The entire deployment, all the way to the browser stores, is fully automated with CI/CD, so that we know that the supply chain is safe.

In other words, you might as well migrate. If there is something missing that you enjoyed, file an issue, or even better... a PR.


I tried contacting the author to see if he would open source it but he's gone dark and doesn't seem to really exist on the Internet anymore. So I grabbed the source code and modernised it, added additional feature and it's what I've been using ever since. I haven't open sourced it out of respect for the original author however the software does not actually have any license that prevents it so I have been considering what the best approach might be (any ideas?).

*Edit: Whoops! I was confusing refinedHN with modernHN (https://www.modernhn.com)


Are you referring to https://github.com/plibither8/refined-hacker-news?

It's MIT-licensed open source.

I've been using a fork (also MIT): https://github.com/alexferrari88/refined-hacker-news


Whoops! I was confusing refinedHN with modernHN (https://www.modernhn.com)

Just use my extension?

Whoops! I was confusing refinedHN with modernHN (https://www.modernhn.com)

I just tried switching from a slightly more updated fork of Refined Hacker News (2025)[1]

One thing I miss is the orange mark identifying the OP of a post.

[1]: https://github.com/alexferrari88/refined-hacker-news



Ah, I see it must be the bug mentioned in another thread: https://news.ycombinator.com/item?id=47695328

There was no [OP] label when I first reloaded this page, and now after replying, I am marked as the [OP].

edit: it seems the [OP] relies on a URL hash with the ID of the OP. However, this doesn't work for me because I don't navigate to HN posts from the HN site.

I usually come from https://hn.leftium.com. (Or a page like https://hw.leftium.com/#/item/47694036)


I'm so confused. Can you explain it to me a bit more clearly what you'd like to see? I literally just took the code from refined.

https://github.com/plibither8/refined-hacker-news/blob/ee7ef...



Got it! I was using the username instead of the author of the item.

https://github.com/OrangeJuiceExtension/OrangeJuice/pull/18

Fixed and closed (all with AI).


So many extensions and services, because YCombinator cannot have a part-time employee working on such an important community:

* https://hncompanion.com/

* http://oj-hn.com/

* https://hnrelevant.imadij.com/

* https://hnreplies.com/


Dan and I are full time YC employees and other engineers at YC do plenty to keep HN running. HN’s software is continually developed to handle growth in traffic, along with abuse, spam, and (particularly recently) bots and generated content. The lack of new UI features is not due to lack of resources/investment but because it’s always been the HN way to maintain a minimalist design and for the content and discussions to be the primary feature.

I think the minimalist design is good. But hasn't the font size decreased over time in practice? When HN was first created, the average monitor had a much lower resolution, which made text appear larger. Now I think it's quite difficult to read compared to other websites. Obviously it's easily solved by zooming, but I think it would make sense to adjust for the change in resolutions over the years

"Minimalist" in 2026 is different than what it used to be in the '90s.

Of course, and part of my reason for being brought onto the team full time is to explore ways we can develop HN for the future. That doesn't mean that every 3rd-party HN project represents a feature that should be added to the core HN UI.

I didn't know, and I thought only @dang was working on HN. You must agree that at least some basic features, like a dark theme and indicators for new comments, could be easily handcrafted or implemented with coding agents!

That's not the reason, it's mainly because the current awful interface is a distinguished mark of pride, so there is a noticeable resistance to changing that, so it's easier to not change

Also, my favorite:

https://hckrnews.com


Why hire when you can get it for free?

Because it's a mess. So many extensions are fighting each other because HN has long stagnated. There are so many AI startups with YCombinator that can rewrite it in a modern language and make it a POSITIVE example.

I really like some of the hncompanion features a lot. I'm happy that people are trying different approaches and I agree with tom's response to you above.

Dark mode!

dang.

just shedding feedbin & reeder (paid)

it's 'hide read stories' for me & darkmode


Thanks! How about inline replies? That's my favorite.

Another feature idea for you:

There’s an extension that I loved called “Proven” (now archived) which uses keybase.io proofs to show other proven accounts next to hn users

https://github.com/dschep/proven

Also about this:

> Mermaid Diagram Rendering

Honest question, how often are people posting raw mermaid diagrams in comments here?… I’ve never seen one


Is there something else that replaces keybase proofs? I still see a ton of people, including yourself with keybase in their profile, but is anyone still seeing that used?

Nobody uses it because it wasn't supported. I had started off doing images, but their CSP policies prevent an extension from embedding images into the dom. SVG is still game on though. That said, I've seen a bunch of people try to create their own ascii art diagrams and wouldn't it be nice to have them just rendered as svg?


This is helpful! Thank you

:heart:

its funny how us developers build varied UX, but nothing beats the simplicity of HN's default experience. quick and bloat free.

I would actually like a setting for less. I don’t like upvote downvote social dynamics. How about giving me a mode for a simple conversation by time, without the hierarchy.

That's the beauty of this extension, it keeps things simple.

How about a Safari/Mobile Safari extension so iPhone users can use it?

Agreed. Unfortunately, the browser extension tool that I use, wxt [0], doesn't support Safari yet. It seems there are some work arounds, but I haven't gotten to it yet. PR's welcome, of course. =)

[0] https://wxt.dev/guide/essentials/publishing.html#safari


Is it just:

pnpm wxt build -b safari xcrun safari-web-extension-converter .output/safari-mv2

And that’s it? Or is there some hidden extra work involved.


I don't know. If it is that simple, that would be great. I'll have to dive into it. Part of it is also to ensure that it gets added into the CI/CD workflow and fully automated.

Just doing that for Chrome and Firefox took a huge amount of effort to get fully set up and approved. Thankfully, it is now at the point where every PR goes live automatically.


The improvements are nice, that's for sure. But i checked out github and it looks like overengineered ai slop, you could implement all the features with 1/10 of the code. But again, nobody cares nowadays which makes me sad. You even generated chrome/firefox logos using ai...

Why don't you do that? Instead of doing that you unfairly critisize the guy that gave away his time and effort on something which no-one is forcing you to use. Shame.

Oh man, he must have gave away so much time prompting ai agent. Shame on me:)

I wrote code. But, the whole point of this project for me was to experiment with how far I could take AI as an assistant to help me with coding. So far, I've been extremely impressed.

How is it over-engineered slop? Happy to improve things, but I thought it was pretty clean.

You claim to have 30+ years of webdev experience and yet 2 MEGABYTES of javascript only for those features doesn't feel/look wrong to you?

Hey please don't cross into personal attack. You can make your substantive points without that.

https://news.ycombinator.com/newsguidelines.html


You're not really answering the question.

That's the bundle size, not the amount of code in the project.

I've done nothing to try to optimize the bundle size, but I suspect that a lot of it has to do with some of the third party dependencies like mermaid.


Well, i downloaded firefox extension and checked the size of only *.js files without any additional assests - and it's 2 megabytes. Mermaid is around 800kb, so it still leaves over 1 megabyte of javascript.

The amount of abstraction alone for the project of this scope makes me cringe. You introduce unnecessary complexity.


In all fairness, 30+ years of web development is exactly what would convince you that shipping 1+ MB of JS is fine, no? I'm not really kidding... Web development is where all of the worst practices in programming thrive and come from. Some of them are spending minutes (sometimes 10+ minutes) compiling/"building" web pages before they "deploy" them, and so on.

30+ years in web development is what you say at the support group to explain why you're there, not to convince people you've developed good taste and reasonable sensibilities.

Edit: Zed Shaw didn't know it at the time, but "Rails is a ghetto" wasn't describing even a local minimum in web development, it was the start of an incredible valley we've yet to see the bottom of. A sea of unskilled morons unable and unwilling to learn even the basics of just about everything came in droves and never left. Now they have bullshit generators that'll generate the shit code they probably were going to ship anyway, except faster.


Yeah, i'm also webdev with a couple of decades under my belt and i cry from time to time seeing what happened to it in the past 10+ years.

Webdevs nowadays blindly follow "trends" that phase out every couple of years, without really bringing anything of the value to the ecosystem.


I'm curious, what value have you brought to the ecosystem? What's your github? Is this it? https://github.com/wesz

Yes, it is. I'm not really active on github (other than some toys i want to share with friends), i didn't even update portfolio on my website in over 10 years.

I'm happy to share my projects and contributions privately, if you're interested.


Please share. You've said some nasty things in this thread about me personally as well as my hard work. Stuff that even got reprimanded by dang.

Now, you're talking about bringing value to the ecosystem, and I'm not sure how 10 year old github accounts, and private repositories fulfill that.

Let's see what you've got that is so amazing.


I didn't say anything nasty, now you're just delusional. I had a feeling you were butthurt when you dug my profile:) Relax, calm down and then we can talk.

[deleted] apparently not ai generated. still sounds weird.

I can assure that it's not. What makes you think I'd waste my time writing HackerNews comments using LLMs? Take a look at my post history and tell me honestly that you believe that to be the case.

No, I just used a phrasing that reminded you of LLMs and that's it. Funnily enough it also has no real bearing on my argument; your 30+ years of web development didn't stop you from shipping more than a MB of JS to add some basic features to HackerNews [because LLMs wrote everything for you].

"Every accusation is a confession" and all that...


Thanks for the feedback!

Did you ai generate the Chrome and Firefox logo? That isn't what they look like, or have ever looked like, from what I know.

Yes. ¯\_(ツ)_/¯

…why?

I'd rather focus on building features vs. caring about logos.

Update: I'm having AI fix this since you guys want to focus so hard on it. Of all things... lol.

FIXED!


Taking shortcuts with design tends to result in users trusting your project less.

Why not just use the actual logos? It's not as if you *have* to generate them.

You need AI to just replace the svg?

These days, everyone is using AI for even small things, because honestly it's easier to say to an AI to use original SVGs and have it go out and find the correct ones with a web search tool call than to do it myself, it's simply a waste of my time for small tasks like that.

Of course I don't, but if it helps me do trivial tasks so that I can focus on other things, I might as well use it.

I think it's fine if you find the design of the site a trivial thing that others shouldn't focus on, but it kinda begs the question why you didn't just have the ai generate a much simpler page. Why have the ai generate all this fluff when you just want to show of what you've made? You (rightfully!) care about not wasting your own time, why waste ours?

What simpler page would it be? It just shows off the features with screenshots, not sure what else could be made simpler.

Sorry for wasting your time.

What on earth is that Firefox logo...?

FIXED

> Why Install Orange Juice?

> Because Hacker News is great, but repetitive UI friction adds up. Orange Juice keeps the original feel while removing the things that cost you time every day.

That does not convince me to use your app? This is like calling someone's Kia shit and instead telling them to buy a Tesla, but just stating that it's better.

I'll stick to HN, thanks.


To me, that doesn't sound like your analogy at all. It'd be true if the extension for example redirected an HN thread to a reddit thread of the same posted URL, ie a replacement of the original, but the extension simply adds features to the existing site. There have been extensions like this available for years, like Refined HN which this is based off, as well as many third party HN clients. Therefore I think you should try it before judging so harshly.

Sure. What language would convince you?

UPDATE: I've changed the copy, it is pushing right now.




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

Search: