[HN Gopher] Show HN: Orange Juice - Small UX improvements that m...
___________________________________________________________________
Show HN: Orange Juice - Small UX improvements that make HN easier
to read
Author : latchkey
Score : 68 points
Date : 2026-04-08 18:08 UTC (4 hours ago)
(HTM) web link (oj-hn.com)
(TXT) w3m dump (oj-hn.com)
| Imustaskforhelp wrote:
| 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
| latchkey wrote:
| 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.
| smcleod wrote:
| 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)
| Leftium wrote:
| 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
| smcleod wrote:
| Whoops! I was confusing refinedHN with modernHN
| (https://www.modernhn.com)
| latchkey wrote:
| Just use my extension?
| smcleod wrote:
| Whoops! I was confusing refinedHN with modernHN
| (https://www.modernhn.com)
| Leftium wrote:
| 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
| latchkey wrote:
| I have that in there.
|
| https://github.com/OrangeJuiceExtension/OrangeJuice/blob/b8
| 4...
| Leftium wrote:
| 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)
| latchkey wrote:
| 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...
| Leftium wrote:
| I opened an issue with screenshots: https://github.com/Or
| angeJuiceExtension/OrangeJuice/issues/1...
| latchkey wrote:
| 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).
| lagniappe wrote:
| >AI-assisted, not AI-slop
|
| >AI is used as a pair programmer to speed up implementation and
| review, but architecture and final decisions are human. Tested,
| not vibe coded
|
| >The extension has extensive unit test coverage, quality checks,
| and automation through CI/CD. This project is intentionally not
| vibe coded.
|
| I felt non-specific mixed feeling reading this. Seemed
| unnecessary to say that so prominently twice. Be confident. If
| you do a good job it shows in more ways than the code.
| Isolated_Routes wrote:
| This is helpful! Thank you
| latchkey wrote:
| :heart:
| cobbman wrote:
| I want hacker news UX to stay as it is, mostly, but these are
| features I'd welcome.
| latchkey wrote:
| Thanks. My feeling as well.
| dang wrote:
| What features would you welcome?
| latchkey wrote:
| 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.
| dang wrote:
| 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.
| latchkey wrote:
| 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
| riidom wrote:
| Also "unread comment highlighting" would be so good to have.
| latchkey wrote:
| That was actually kind of a pain to implement. Refined
| didn't do it fully, mine covers a lot more edge cases.
| riidom wrote:
| Can imagine!
| robin_reala wrote:
| That's coming to stock HN:
| https://news.ycombinator.com/item?id=47670008
| minouye wrote:
| 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...
| maxloh wrote:
| I built a Stylus theme to make Hacker News' UI more modern.
|
| Some screenshots:
|
| https://raw.githubusercontent.com/mon-jai/modern-hacker-news...
|
| https://raw.githubusercontent.com/mon-jai/modern-hacker-news...
|
| https://raw.githubusercontent.com/mon-jai/modern-hacker-news...
|
| Repo:
|
| https://github.com/mon-jai/modern-hacker-news
| latchkey wrote:
| 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.
| altairprime wrote:
| 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.
| latchkey wrote:
| 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.
| altairprime wrote:
| Ah, oh well. Thanks!
| zvr wrote:
| 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!
| latchkey wrote:
| It is AI assisted. I still wrote code and designed the core
| architecture of how it works.
| tomComb wrote:
| That would be great! Please do.
| satvikpendem wrote:
| 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.
| latchkey wrote:
| Or you can just use my extension, heh.
| dang wrote:
| Some things have taken us 15 years and then pow they happened
| Imustaskforhelp wrote:
| 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?
| robin_reala wrote:
| Out of interest, why do you suppose that?
| QQ00 wrote:
| 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.
| latchkey wrote:
| https://github.com/OrangeJuiceExtension/OrangeJuice/blob/b8
| 4...
| Novosell wrote:
| 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.
| latchkey wrote:
| Yes. -\\_(tsu)_/-
| DrBenCarson wrote:
| ...why?
| latchkey wrote:
| [flagged]
| 59nadir wrote:
| Why not just use the actual logos? It's not as if you
| *have* to generate them.
| semolino wrote:
| Taking shortcuts with design tends to result in users
| trusting your project less.
| dartharva wrote:
| You need AI to just replace the svg?
| satvikpendem wrote:
| 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.
| latchkey wrote:
| 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.
| Fraterkes wrote:
| 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?
| latchkey wrote:
| Sorry for wasting your time.
| satvikpendem wrote:
| What simpler page would it be? It just shows off the
| features with screenshots, not sure what else could be
| made simpler.
| ipsum2 wrote:
| 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?
| latchkey wrote:
| 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.
| xydac wrote:
| its funny how us developers build varied UX, but nothing beats
| the simplicity of HN's default experience. quick and bloat free.
| latchkey wrote:
| That's the beauty of this extension, it keeps things simple.
| greenpizza13 wrote:
| 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.
| latchkey wrote:
| Defaults to system. The toggle is in the top right corner of
| the navbar next to your karma.
| Klonoar wrote:
| What on earth is that Firefox logo...?
| latchkey wrote:
| FIXED
| ramon156 wrote:
| > 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.
| latchkey wrote:
| Sure. What language would convince you?
|
| UPDATE: I've changed the copy, it is pushing right now.
| satvikpendem wrote:
| 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.
| wesz wrote:
| 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...
| latchkey wrote:
| How is it over-engineered slop? Happy to improve things, but I
| thought it was pretty clean.
| wesz wrote:
| 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?
| latchkey wrote:
| 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.
| wesz wrote:
| 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.
| latchkey wrote:
| Thanks for the feedback!
| 59nadir wrote:
| 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.
| latchkey wrote:
| [deleted] apparently not ai generated. still sounds
| weird.
| 59nadir wrote:
| 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...
| dang wrote:
| Hey please don't cross into personal attack. You can make
| your substantive points without that.
|
| https://news.ycombinator.com/newsguidelines.html
| satvikpendem wrote:
| "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.
| latchkey wrote:
| 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.
| satvikpendem wrote:
| 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.
| latchkey wrote:
| 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.
| latchkey wrote:
| The orange box is to mark where you are currently focused.
| If you use the keyboard navigation (keys: j/k), it really
| helps.
| satvikpendem wrote:
| It's distracting for those who don't use hjkl so might be
| good to have it as an option.
| latchkey wrote:
| 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
| etothet wrote:
| I noticed this as well and came here to comment about it. The
| term "vibe coding" is becoming quite overloaded.
| odysseus wrote:
| How about a Safari/Mobile Safari extension so iPhone users can
| use it?
| latchkey wrote:
| 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
| odysseus wrote:
| 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.
| latchkey wrote:
| 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.
| librasteve wrote:
| dang.
|
| just shedding feedbin & reeder (paid)
|
| it's 'hide read stories' for me & darkmode
| latchkey wrote:
| Thanks! How about inline replies? That's my favorite.
| gitgud wrote:
| 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
| latchkey wrote:
| 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?
| darepublic wrote:
| I would like to see users clustered by their political and
| programming axes of belief
___________________________________________________________________
(page generated 2026-04-08 23:00 UTC)