Why our website looks like an operating system
posthog.com660 points by bnc319 a day ago
660 points by bnc319 a day ago
Oh god. It has a pleasant color scheme, but this is an awful idea. By trying to recreate windows and bookmarks in the web app you're at best just implementing redundant features and getting in the way of the native browser features by trying to showcase yours, at worst breaking regular web usage entirely.
Take their right click menu for items to select whether you want an in-app tab or real browser tab. Congrats, you've broken UX by making the native browser right-click menu unavailable on link items, and because you've only implemented this on some things most of your content is not deep linkable as navigation is a cursed in-app feature.
This is as usual a fun tech demo, but it should not be used for anything in the real world.
Without a doubt. Interesting idea and nice looking UI. But like you said it's creating a browser within a browser, without all the native browser support.
I found the navigation to be scattered and disorienting. In general clicking links opens new windows. In one case it navigated away from the current "page" and what I believe to be the back button (looks more like undo) didn't do anything. Why am I guessing what constitutes a page and how or if I can go back? Everyone has known how these things work in browsers for decades.
> I found the navigation to be scattered and disorienting.
I find to be significantly less scattered and disorienting than the vast majority of "modern" websites.
The problem of how you organize content in desktop user interfaces is far from solved. Often I have 6 virtual desktops, and maybe 5 Firefox windows and maybe a Chrome and an Edge (testing and the occasional app that doesn’t work with Firefox, a problem made worse by my employer forcing us to use the ESR) and those all have tabs. Not to mention various IDEs and distraction generators like Slack and Outlook that have enough urgent and important content that I can’t just get rid of them.
Adding a new kind of window or tab has the potential of organizing some little bit of this universe at the expense of there being more things to look at globally, I badly want to be able to hit a button and see not just the windows I have open but all the tabs and that counts browser tabs but also IDE tabs and ideally these sort of sub windows inside of browser UIs.
Reminds me of the startup I worked at where somebody got up at each standup meeting and said “we can’t find anything in the N different places (Slack, Box, Dropbox, Google Drive, Google Docs, …) places stuff could be so we need to add N+1 places.” For a while I pushed back against this obvious fallacy but nobody else did and management would approve another monthly subscription…. Until at some point the investors pushed back in the disorganization and added the distraction of OKRs and people thought “maybe we need a subscription to some service that reminds us to cancel subscriptions we don’t use”. One ring that would rule them all never seriously considered, I guess people didn’t actually expect “enterprise search” to actually work.
> The problem of how you organize content in desktop user interfaces is far from solved.
Strong disagree. Mature conventions have been established for decades, and while there are always edge cases and new incremental features that need to be worked into desktop UIs, the core desktop UI paradigm has been stable since at least the mid-'90s, and modern deviations away from it have almost invariably reduced usability and discoverability.
The modern trend of trying to shoehorn web or mobile UI design tropes into desktop applications has resulted in little but regression.
I think you’re mostly right, particularly when it comes to the settings dialogs in Windows which have been a state of ferment since Windows 8 such that I expect many of them to be reworked in several faddish ‘mobile’ phases while some will still look like they did in the Windows 95 era.
Comparing the various nag windows on MacOS and Windows, as much as they are annoying, the MacOS nags look like a 1999 rework of the modals from the 1984 original Mac whereas the web-based ones in Windows are easier on the eyes. I have looked long and hard at x-platform UI frameworks and they are generally pretty awful and with all the affordances the web platform has Electron looks good in comparison both in terms of UX and DX.
My beef is with the tabs-inside-of-windows, windows-inside-of-windows and the frequent need to have a large number of ‘items’ open and wanting some synoptic view of all the items open in all the applications on all of the virtual desktops a modern machine can have. I try pretty hard to keep it organized but if I am listening to music in YouTube it should be trivial to find the browser tab involved to close it and it’s not.
I’m reminded of the multiple document interface
https://en.wikipedia.org/wiki/Multiple-document_interface
Which was big in the Windows 95 era, particularly with Office that now seems largely forgotten. When Netscape 4 hit the streets Netscape changed their home page to use <layers> which were like absolute positioned <div>(s) to get an MDI effect like the page that started this discussion. Trouble was it didn’t work and they had to revert it quickly. I told my professor that I thought I wouldn’t understand how web pages worked in six months it was changing so fast but JavaScript supremacy took at least another 12 years even if Microsoft rolled out AJAX circa 1999 it took forever in internet time for people to get the significance.
> I try pretty hard to keep it organized but if I am listening to music in YouTube it should be trivial to find the browser tab involved to close it and it’s not.
If you use Chrome, there should be a music note icon in the top right, just to the left of your avatar, that shows when media is playing. You can control the media from there or click it to find the tab.
I don't think Vivaldi (what I use) has that exact feature, but the favicon switches to an animated speaker so its much easier to spot.
But I like to create shortcut-apps out of any apps (like YT Music) I use frequently, so they get their own OS-level window. It has other benefits too.
Sure there are lots of mature conventions. Easily dozens. And now we can 1 more immature one.
I really admire Posthog as a company and how they run things there. Big fan. But let's be honest. This website redesign, even though cool and unique, wouldn't work if they were an unknown brand. I think they have done a great job building a solid brand over the years and now have the freedom to update their website however they want.
If you are a no name startup, doing something like this will be a bad idea. My 2 cents.
I dont think it works for Posthog either
Yeah, the design is nice, colors, etc, I used to be fascinated by ExtJS 3.x's Windows-like webapp theme, even though I never really used it, because, like a sibling thread remarked: it's a bad idea to reinvent the desktop. Anyway, right now their product may be a good fit for my team, so I browsed and spend some time watching the video...
1) url history piles up pretty quickly, going back was irritating, closing a "OS" window should unstack that from browser history
2) more than one way to get to things (ie desktop icon + menu) so I visited certain pages ("About") more than once and felt trapped in a maze of deja-vus.
3) no way to scroll down and get the full glimpse, had to proactively click on words + icon, or menu items, to spot if inside there would be something relevant. Then, once the window opens: tabs, lots of tabs...
4) since the information is not really hierarchical, I can't delve into say Pricing. Got click on all the menu items... "Didn't I visit that before?" - and history kept piling up, so where was I before?
5) In Pricing, I read "Free tier - no support" - of course! - then $0.0001 for pay-for-use for the feature flag (every time the user switches the feature on/off? I don't get it, I'm sorry) ... then another free x pay-as-you-go box. Scroll down, then a huge calculator... . How much does it cost for my second app?
6) Cramped: lots of information in a reduced window - hit maximize every time, lots of borders.
7) Product features are really impressive, but the demo video gave the impression that it's really a busy app, overwhelming at times, with lot's of filtering options that look necessary to get the info out of the tool (great for power users, though!). But then the website is also busy and complex. If we add both up, app and website = high cognitive overload! I think I'll go shopping around first then come back later.
A disaster.
I hope they eat their own dog food. I'm pretty sure they will get lots of bad signals from their website.
As I'm reading about their scrolling philosophy, my hand gets tired and I switch to keyboard scrolling.
Oop, there is none.
I will never laud an application that breaks the most basic of keyboard functions. You can design a clever and flashy application with pointer-only UI, but you can't design a good one.
I used to be in-charge of homepage getting over 1.5M views a day. I would really be curious how this converts. I am assuming Posthog has a lot of metrics.
If I were to bet, while this is fun, it will be a disaster for conversions once the launch hype goes away.
The best of both worlds would be a different subdomain that serves up the same content but as a conventional site, like how old.reddit.com does it. Then you get to keep the neat gimmick, but have a fallback for users that can’t stand it.
I find it incredibly funny that this company has re-invented the horrid "nested window" UX of Windows 3.1, 30-something years after the fact.
> horrid ... 30-something years after the fact.
The article is specifically saying that they know that it looks like an OS - they think that this is an improvement and it lists the reasons why. You are just calling it old and horrid without addressing any of the points made.
I also have to imagine it completely shreds to pieces any accessibility reader.
It's doubly crazy because who's ever heard of software devs not following standards? They're called engineers for a reason! ;)
People have been doing this for years but it's always an experiment or a demonstration that it's possible. It's slow, it's bloated and it is the opposite of what people actually want, which is quick information.
Why don’t you read why they did that. Instead you responded with your own reasoning without countering or responding to there reasoning. I actually agree with you but the article has actual points that you didn’t bother to read or reference.
Like this:
Frankly for a site like this efficient use of space and multi tasking isn’t as important for a front page. A front page needs to be optimized to be in your face to understand what posthog is in as little time as possible then give you optional pathways to dig in for more detail. A website that’s like an OS is too busy, it’s optimized for productivity and I still have no idea what posthog does exactly.
Multi-tasking? With About pages, Blog posts, pricing, etc.
I have no doubt there is a subset of features here that could be implemented as a single page app.
> I have no doubt there is a subset of features here that could be implemented as a single page app.
Is this a joke? Posthog sells an app, sure, but their product site shouldn't be an "app" it all. It's an SEO funnel. No one should spend any amount of time on there except to figure out what the heck Posthog is and how much it costs.
Disagree. Most people don’t care about blog posts. Most of those are for SEO. It’s the beginning of a pipeline that flows from multiple endpoints.
A person can directly enter in the url that’s one endpoint. Another person can do a Google search and fine the blog that’s another end point.
All of those flows funnel the person in a singular direction with a single purpose: a purchase. Like what else do you want the customer to do? Go off on a tangent?
You can have multiple flows that loop back to a purchase but it’s much less predictable that way. Better to have a singular proven flow all the way to a purchase and that flow has to provide clarity on what the product is.
I come to the posthog website and I’m confused. This is a toy. It’s cool I can meander around and in time discover what the site does. I mean it’s ok.
A better site is one where I just look at the site I know what it’s for and I know the product. As I scroll down I see other tidbits or widgets that are like testimonials or proven examples and other things that convince me to buy. Finally I hit the pricing page.
That’s a better way to sell. Post hog is a cool site but not an efficient one. Not an efficient site for selling a product.
Why this feels so incredibly appealing compared to prevailing designs is probably something for a psychologist / cognitive scientist / neurologist (?) to answer -- there is certainly something here that warrants better study than what we in the software industry do in rushed blog posts.
But I can personally speak to at least one aspect, having worked for a company that does high end web sites and strategy for large SaaS products, and also being the target audience for such websites (director or VP Eng): the speed and ease with which I can find what I want (as a potential customer) using that top navigation menu is superior to anything I've seen done so far.
I could see immediately they have 34 products under 7 categories; 5 are popular, 4 are new. If I want to try out one: Docs > Product OS > Integration > Install and configure > Install PostHog.
And if I wanted to learn a bit about their engineering: Company > Handbook > Engineering > Internal Processes > Bug prioritization.
Pricing: Pricing calculator > select product > set usage, select addons.
Each of these interactions took only seconds. And I could switch between the product overview page I opened earlier and the pricing page I just opened, without waiting for any entire website to reload (or having to right click, open in new tab, and then scroll).
As I said, there is something here beyond just aesthetics. And one of the conclusions may be that our current UI/UX philosophy has inadvertantly become user-hostile.
i can remember a discussion with Cory (who built this with Eli, the front end eng) on the topic of "why do all websites consist of a collection of long scroll-y pages / is that appropriate for our business?" and we concluded it wasn't optimal.
at the time, we were trying to figure out how to add more products in without it becoming messy, and we concluded we're trying to do a lot more than just what would work well for a 1 product company (we have very extensive content for example) - we feel quite multidimensional. thus a flatter design was proving hard to do. we wanted something that could enable us to offer a very wide variety of things (like 10+ products, handbook, job board, newsletter etc)
a lot of existing websites are trying to convey what they do in <3 seconds, and all of the internet is going for that. our company doesn't fit into 3 seconds, or if it does it's annoyingly vague "a whole bunch of devtools"...! so we thought hey we'll do something that means people _will_ explore and learn what we do better. it will mean _some_ people bounce and that's ok, because those that stick will (sometimes!) love it.
as a project, it looked fun and we knew it'd stand out a lot as a way to justify it. it's much nicer and more cost effective for us to ship something 10/10 cool than go down the outbound-y sales route. we run at a 3 month cac payback period if you're into startup stats. the proviso is that only works if you go _really_ deep, so that your work actually stands out.
“as a project, it looked fun” - if that’s the rationale, I think it’s fine. The rest of it feels like a post-hoc rationalization though.
I’m not a super fan of this, and I kind of hated windows 3.x, so I might not be the target market. But I also hate many of the trends in modern website design, so maybe I’m just an old crank.
There could be a subset of this that is accessible, compatible, and doesn’t reinvent a browser in a browser. I might end up liking that better than the status quo - so I appreciate the experimental spirit!
This sounds like an expensive solution to a marketing problem re. the product. And if one digs even further, perhaps an issue with your product line - the benefits of it aren't immediately presentable in a simplified way to the extent it is differentiated relative to the competitors.
Changing the product line to fit the marketing narrative sounds like putting the cart before the horse.
That is not what I said. But youre a CTO, so Im not surprised. Stick to your lane of expertise perhaps.
> so we thought hey we'll do something that means people _will_ explore and learn what we do bette
Meh, currently doing just that. Trying to figure out what posthog is about, try to store some keywords in my brain if I ever need to return this product in future where it fits and just try to enjoy the site :) And I'm one of the folks that try to determine in seconds/minute whether this is worth digging in or not and whether I understand the offering.
Currently I enjoy the site alot. Not sure if that is the OS thing about it or just the way that information is presented and layout.
> the speed and ease with which I can find what I want (as a potential customer) using that top navigation menu is superior to anything I've seen done so far.
The menu bar is one of the most effective and proved UI pattern. Unfortunately, on Linux we have an entire desktop environment that ditched the menu bar for hamburger menus, which are one of the most ineffective UI pattern.
I would be more cautious in generalizing this feeling. To me that interface feels daunting and cognitively taxing, compared to a CLI or command palette.
I am trying to re-imagine the site as a beautiful CLI.
If anybody could do it, I expects its Posthog.
This only goes to show how badly designed are most websites. They're almost created like you don't have a computer, needing to resign yourself to paper-look-alike technologies with just a little bit of annoying effects that don't add anything to the experience.
This is definitely a surprising opinion to find on HN. Usually the prevailing thought is that anything that is even remotely heavy on JavaScript is bad design and therefore inherently unusable, unportable, etc. Whereas this is essentially JavaScript maximalism.
I think it depends. I basically see the web as two parts, "web documents" (usually called "websites") and "web apps" (usually just called apps), and it makes sense that web apps that require lots of interactivity (think drag and drop) would use lots of JavaScript, I don't people have a problem with image editors or map viewers being made more simple by the use of JS for example.
The friction occurs when people building a website for web documents think they should be building a web app, so you end up with a scaffolding that requires heavy JS just to serve what essentially is just text + maybe one or two images. The additional JS doesn't really save the user any time or pain, it just makes everything larger and harder to consume.
I write a lot of code myself and am usually against indiscriminate use of JS (so much so that I now recommend old fashioned server side templates over SPAs unless there is a good reason). But for this comment, I was donning my other hat: that of an executive with whom the decision to adopt (and pay for) a product usually rests. The bulk of a SaaS company's marketing budget goes to attracting and retaining the attention of such people, and ultimately getting them to pay. I feel this site does a good job of that without wasting my time.
You are jumping from a discussion about UI design to one about technology and implementation.
Perhaps the amount of JavaScript used in a website is not a contributing factor into how usable a person finds it /s.
Honestly, you don't judge a back-end by how much code it's built with or what platform it's hosted on. I don't get the obsession people have with JavaScript used on websites. Websites with terrible UX often abuse JavaScript yes, but correlation != causation.
It’s because they can see it.
They can go in the inspector and see “oh wow so many MBs of JS”, but they can’t see the backend.
There is a good point to that: this data that is downloaded is an end user resource. Over a mobile network etc it’ll matter. But the days where it mattered at home/office are long, long gone, at least for the audience of the websites that adopt this strategy.
The obsession I believe is a remnant of these old days. There was a transitionary period still a decade ago (when hn was already not that young) where users would spend time loading a website, then complain about the amount of js on the page and how that is unnecessary. The connections got upgraded but nothing strikes down a habit…
More like they can see it but also can't see it. There's megabytes of JS loaded just to show me a crappy glorified PDF that doesn't even work properly. A page I could have literally made using only HTML and CSS and it would be better, but somehow you've made it take 11mb of JavaScript code and it doesn't even work properly. That's the kind of website I scoff at.
I have no issues at all with this website. It's awesome. I mean it's a bit slow but that's probably because it's on the front page on HN right now - yet it still works pretty well. The design is delightful. Incredibly well done. One of the coolest websites I've seen. Who cares how much JS it takes, it's obviously worth it.
I think it’s the other end of the consumer web vs power user design spectrum.
Using an OS requires familiarity and cognitive effort. Tapping oversized buttons… less so.
There’s been a long trend (definitely as far back as the first iPhone release, maybe further) of every product release adding more white space, bigger elements, and overall reducing information density.
If your target is consumer web, the “don’t make me think” approach is probably still correct. But anyone who’s ever looked at a Bloomberg terminal knows there are still times when you designing for the lowest common denominator is the wrong play.
A company with a large suite of technical-ish products might be a place to experiment with alternative paradigms. That said, I poked at the site for a few minutes, then had to ask an LLM what PostHog actually does.
> the speed and ease with which I can find what I want (as a potential customer) using that top navigation menu is superior to anything I've seen done so far.
The web catches up to the past again. :-) Despite all the modern attempts at simplified "delightful" interfaces, a well-structured menu bar is hard to beat.
While I visually like the design, what's so innovative about a menu?
That observation seems wild to me as well. He just described every nav menu.
If I recall right, they have most everything in the same CMS, in particular their discussion/help forum is integrated into their main site. To me, that's what the difference is, having done similar work in the past. They have a unified and singular control over the content on their front page. It's not a dozen groups obviously jockeying for control of who gets to be higher on the page or featured more prominently, or just a portal for taking you to subdomains of each department. I don't think you can build a website like this if you don't have that CMS behind it unifying everything together, and I don't you can have a CMS like that unless you insist on it very deliberately organizationally, as the tendency in every org is towards sprawling feudal estates ruled by vp's.
Yes. That reminds me of another thing: no landing pages for each level of menu. If I go to Docs > Surveys, I can skip the overview and go directly to Features > Conditional questions. I dont' need to load an entire page with a giant banner of people smiling, and a call to action button that wants me to contact them before I have read through the functionality.
if, by way of totally random example, each feature team within each department measures how much revenue and how many customers come because of a specific feature that team is working on and responsibly, and that feature team's pm is compensated based on these metrics, then naturally each team will want to bloat the landing space on the front page areas as much as possible. very hard to make something that presents as cohesively as this when incentives of those involved are in competition with one another.
>probably something for a psychologist / cognitive scientist / neurologist (?) to answer -- there is certainly something here that warrants better study than what we in the software industry do in rushed blog posts
Very little here that isn't explained by age-old HCI concepts on design.
>And one of the conclusions may be that our current UI/UX philosophy has inadvertantly become user-hostile
Nope. You see the "X" stands for experience. And nothing ever betrays it's own name. You're just a computer nerd that nerds too hard to get it. You've probably even used a terminal without bellyaching for the next few days. What could you know about what normies want? *cough*
I don't think Don Norman would like this at all based on his rules for good web design. (someone should ask him fhough)
The top level comment is confusing marketing success with UI/UX success: it tickles their brain because they're the target audience. To everyone else this is weird and overwhelming if you're looking for something and suddenly run into it.
Might still be fun/whimsical if you're not looking for something and just stumble upon it, or get shown that
> As I said, there is something here beyond just aesthetics. And one of the conclusions may be that our current UI/UX philosophy has inadvertantly become user-hostile.
It's almost like, "marketing", itself, as a concept, is user hostile. Most sites' purpose isn't to be efficient, or informative. It's to give the impression that they are "making a statement" (we matter because XYZ), while looking dependable and professional enough to compel calling sales for more.
Commercial transparency goes against that goal (why would I call if I have all the price details I need?). Technical transparency goes against that goal (why would I call if I can tell precisely how this compares to market leaders and competitors?).
So, in many (mostly despicable) aspects, this site is terrible. Unfortunately.
I've always thought ‘multi-document interfaces’ as we used to call them are an anti-pattern. I have a perfectly good window manager; why does every app need its own incompatible, usually inferior window manager built in?
(Mind you on mobile I very much don't have a perfectly good window manager, and indeed can't even open multiple instances of most apps…)
Compared to the experience of something like “Gimp”, I prefer something contained to a single window.
Otherwise two or three such apps running at the same time becomes a game of “where’s my window”. I hate the idea of a toolbar being its own window to be managed.
That is because you are used to shitty window managers / desktop that don't remember position, do not support pinning and tagging windows, etc.
That is the issue, apps have to deal with the lowest common denominator in term of desktop management but there is absolutely no good reason to build a window manager inside a website.I think that with tabs people have generally forgotten they can open multiple browser windows.
Im not sure gimp being constrained to a single window would constitute a multi-document interface.
I mean, old photoshop versions (CS3?) also used multiple windows, so if I were to take a guess that’s where Gimp got it from.
"palette" windows were common in a lot of creative applications for a really long time. it seems like with larger screens and higher resolutions, that's a lot less common by default than it used to be.
They indeed feel way less of a pain than dealing with an app with complicated UI stuffed into a single window on a screen with half the size the app was designed for. Even with the site we're discussing here, once I cranked scaling to 200% it became noticeable harder to read than a regular webpage with some text on it would with the same scaling.
However, I believe there is a better way to approach this: put each significant piece of functionality into a separate window or even executable, and use regular moveable toolbars and well-known hotkeys inside each window. One window for code editor (with working Ctrl+Tab and Window -> Tile Horizontally menu), another for configuration, yet another for terminal and output window (with a Pin on top button). When I write code I don't normally need configuration tool, but if I need it even so often it gets opened alongside the editor and is now one Alt+Tab away, not taking any screen space at all.
I used an engineering tool suite written with this approach and it was much better experience than the single-window monstrosity that came as a replacement, stuffing entirety of functionality into a single app and breaking (not implementing) a lot of small conveniences like aforementioned Ctrl+Tab.
As a long time Mac user, MDI has always felt like a stopgap to make up for the OS not having the ability to manage windows on a per-application basis (so for example, being able to hide all windows belonging to a particular application or move them all to another desktop/screen).
It also feels very foreign on macOS - Photoshop suddenly gained the MDI-type UI in like CS4 or something, after having let windows and palettes roam free on macs since Photoshop’s inception. I always turn it off, feels claustrophobic somehow.
I think that's still a little too restrictive. Sometimes you really do want multiple groups of windows that may belong to the same (think multiple browser windows each with multiple tabs) or different applications (e.g. grouped by task). It's not hard to see how the application marketplace leads to every app doing everything including managing all the things it does, but it's not good for the user.
Custom groupings is a nice feature too, but that feature can live happily alongside app groups. In fact I think the two would compliment each other nicely.
> I have a perfectly good window manager; why does every app need its own incompatible, usually inferior window manager built in?
Because some applications do need multiple windows in the same application context. A common example would be image editors.
It is unfortunate that almost all generic MDI implementations (Win32 and Qt basically) are incredibly barebones. I want to have multiple windows visible when i'm using Krita, for example, but Qt's MDI support (that Krita does use) is worse than what Windows 95 had.
The ‘application context’ isn't a concept that adds value, at least for the applications I've seen. For things where the application windows do need to be treated differently (e.g. patch bays that can be connected together, or widgets that can be fused into larger widgets [1]) I have more sympathy for applications that want to do their own window management. But for something like the browser just grouping Web pages together, that's something entirely unrelated to the browser functionality that should be available in the window manager.
Well, yeah, it doesn't fit all applications and web browsers are a case where MDI doesn't really work. The linked site is more of a gimmick, at least as far as the documents go.
But my response was about calling MDI an anti-pattern in general. Just because it doesn't fit all cases, it doesn't mean it is an anti-pattern.
Oh no I get that the in-site MDI is a funny stylistic choice, and I've no problem with it. But the thing it's poking fun at is in-browser MDI, hence the comment.
I stand by the anti-pattern comment. I think there are very, very few cases where ‘MDI’ is appropriate, and I put it in quotes because the things being managed in that case are almost never ‘documents’ in any meaningful sense (rather they're some kind of graph node). Functionality apps build with MDI is basically always independent of the actual app and would be better implemented in the window manager — and more often than not there's actually no additional functionality over even the lowest common denominator of window managers.
Well, i already mentioned an example: image editors. IMO image editing is one of the perfect cases for MDI because not only you can have multiple images visible at the same time, but also multiple views of the same image (useful for pixel art, for example). Most MDI applications allow you to dock and/or float stuff in the edges/over the windows which is useful to avoid repeating the same chrome at every window (which is what a lot of applications that support multiple documents with toplevel windows do).
In theory you can have multiple toplevel windows with separate windows for the control stuff (tool window, tool options, panels, etc like GIMP has) but in that case you really need a virtual desktop dedicated to the application itself. Personally i prefer to dedicate virtual desktops to tasks (i have a fixed number of virtual desktops and their shortcut keys have become muscle memory over the years), so e.g. anything graphical goes into the same virtual desktop, but -say- GIMP in multiwindow mode feels awkward to use alongside Blender. Krita having an MDI mode is much better IMO, even if Qt's MDI support is primitive at best.
There's nothing stopping a window manager from supporting docking windows to each other, or the more common option in tiling window managers of having nested tiling groups so you can arrange your editor windows however you like and manipulate them together. Metisse [1] takes it even further, letting you slice a ‘palette’ out of one window and put it in another. In practice I, like you and I suspect a lot of other people, use workspaces in lieu of task groups, which works fine for simple use cases and small monitors.
The only applications that really need MDI are those that do something with their windows other than window management, which (loosely) implies that those things are something other than windows.
I think the issue is partly that most OS window managers really don't seem to optimize for having a dozen small windows on your screen in the way that the custom window managers in, say, art software or CAD software, often do. Mainly in terms of how much space their title bar takes/wastes.
Would you extend that argument to tabbed interfaces as well? Why should browsers support tabs (and an inconsistent interface by each vendor), when you can just open a new window instead?
The tabs reuse resources of the browser, and the browser does it really well - I think it's not even arguable that browsers are more complex than the OS GUI API, this is why e.g. Windows 11 uses react.js in start menu.
So if you create a webpage that is so damn advanced that it beats the browsers OR it somehow reuses heavy resources within one webpage, I'd say this is a good justification. And IMO the OP link isn't an example of that.
> Windows 11 uses react.js in start menu
They do what?!
EDIT: Sounds like they only use it for the "Recommended" section, though? https://news.ycombinator.com/item?id=44124688
One could argue that this affordance should be provided by the OS for a unified experience.
Nearly every UNIX command has its own way of formatting output, be it into columns, tables, lists, files, or TTYs (and windows, à la emacs, screen, other curses-based utils...). Even `ls` has a table formatting logic to it. This keeps the UNIX native abstraction relatively simple; everything is "just text." But the ecosystem, being quite rich, actually has a lot of divergent requirements for each utility. If that was avoidable, we probably would have seen some other abstractions appear on top of "just text," but we similarly haven't.
Because browsers only remember the last set of open windows reliably.
So if I were to split the 5 tabs I usually need for work in 3 windows I would routinely lose a bunch of them.
To throw gasoline on the fire: this how I’ve always felt about tmux. Why use an incomplete in terminal windowing system when I can just have multiple terminal windows open managed by the superior OS window system.
(That said I know tmux is sometimes the only option and then it makes sense to me)
I tend to run my tmux session for months at a time on my office workstation. When I remote in to that computer, I can type ‘tmux attach’ and all my context is there. I might have four long arc dev projects running at once, and my planning system, all within those windows.
On our datacentre servers, I also have tmux running. It is fast to connect to these hosts, attach tmux and continue from where I left off.
Another use case: it is common for corporates to require devs to use windows desktops, but to then give them a headless linux host in a datacentre for development work. Here, you use putty to connect to the linux host, fullscreen it, run tmux. On your desktop you have outlook and office and putty and a browser and no dev tools. You can do all your planning and dev work on the linux host, using your favourite ten thousand hours text editor and building your own tools, and this becomes your hub. You lose awareness that you are connected to this from a locked down windows host. Corporate security reboots your windows host for patching several nights in a row, and it does not cause you any hassle because your work context is in the tmux session on another host.
because the OS window manager isn't superior. i have two dozen tmux windows in half a dozen sessions locally. i have shortcut keys to switch between sessions and between windows. i can do that while mixing the terminal with other gui apps. i have yet to find a window manager that lets me group so many terminals into sessions all on the same workspace.
> i have two dozen tmux windows in half a dozen sessions locally.
> i have yet to find a window manager that lets me group so many terminals into sessions all on the same workspace.
Locally-speaking, I don't really see the point of mixing tmux sessions and tmux windows. I wonder if you mean "sessions" -> tmux windows and "windows" -> tmux panes.
What about i3/sway? You can have a tabbed container (functions like tmux windows) with split containers inside (functions like tmux panes). You can even float the tabbed container with all windows organized inside.
I don't really see the point of mixing tmux sessions and tmux windows.
sessions let you group windows. i have a group/session for each project/purpose. one session is for all remote connections. one for my personal stuff, diary, etc. one for my hobby. one for personal dev projects, one for client work.
sessions also means that i can connect to tmux from multiple terminal windows. i generally have two windows, one for dev work and one for everything else.
generally i feel that having more than half a dozen windows in a session makes the session unwieldy, harder to navigate, because it becomes more difficult to find the window i am looking for.
which would be the same problem if each was a gui window. try to find your way around 20 gui windows.
> one session is for all remote connections. one for my personal stuff, diary, etc. one for my hobby. one for personal dev projects, one for client work.
Why would you have all those open at the same time, though? Isn't that incredibly distracting? (Disclaimer: I have no experience with tmux to speak of, beyond briefly trying it once or twice.)
not being distracted is the whole point. if i have everything in a window, then i would have 20 windows. that would be distracting. with tmux i only have one visible window and all other windows are hidden, and i switch to the window i want to use. (ok, i could do that with gui windows too, i am just making a point)
these things are open because otherwise i would have to open them and close them every time i want to use them. by keeping them open i can switch back and forth faster. but, while i am not using them they are invisible. and i don't notice that they are there.
I just logically group tabs into the same terminal window. All OS's have hotkeys for switching between tabs and windows.
sure that works, but then you are also using terminal functionality and not the window manager, which still shows the window manager as lacking in features, which was the argument i was responding to.
seriously, a window manager that can group windows and manage those groups would be awesome. workspaces help, but they are often just there, and can't be managed, reordered, named, etc..
actually, i think kde may have some of that functionality.
i still prefer tmux in any case because it is more scriptable, and it provides a detach function. although i recently started exploring wezterm, which can be configured to work like tmux and also has a way to detach and reattach sessions: https://news.ycombinator.com/item?id=44762241
tmux (and screen) are incredible assets for remote sessions, both for continuity across dropped shells and multi-shell activities when the connection process is tedious (multiple jumphosts, proxies, etc.)
I've fallen out of using it, but for a while I was using dtach to do similar without the virtual terminal multiplexing. Much much more direct.
I'd just run a vim session. If I needed terminals, they were in my vim! Even wrote a short shell-script to automate creating or re-attaching to a project specific vim session. https://github.com/jauntywunderkind/dtachment
Haven't looked into it, but I'm love a deeper nvim + atuin (shell history) integration.
It might be quite similar window/tab managing functionality, but for me it's the same thing that made me choose tmux over screen: it comes with a nice status bar as default and hotkeys are somehow easier to memorize.
The continuity benefit is much less than it used to be, now that we have systemd with `enable-linger` so we can make proper daemons.
that's not what tmux provides continuity for. the continuity is for interactive sessions. on my server i have more than 20 tmux windows, each one for one specific purpose. they have been running for several years.
My point is that a lot of hysterical-raisin interactive sessions really don't need to be.
I thought that on MS Windows MDI is part of the operating system. There are programs that can change it at runtime. That's honestly pretty neat.
>why does every app need its own incompatible, usually inferior window manager built in?
You answered your own question, because a lot of applications work across multiple platforms, and if you want to have control over the experience because you don't know what capacities the OS's window manager has you need to abstract it away.
Abstracting something away and duplicating it for yourself are two very different things! Remember Java Swing?
But I take your point, if you want to target the lowest common denominator of window managers it makes some sense to do your own window management. Mind you you could just ship both a browser and a window manager…
I wonder to what extent the pattern of applications doing their own window management masks (and therefore perpetuates) the problem of inadequate window managers.
Nice idea, awesome implementation, but please no. I now need to learn a new UI and UX, I have to to organize windows inside my windows. I want websites to be more like a block of text rather than a super fancy interface.
Agreed. Closer the website to the single chunk of text, easier it is to customize for the user agent (think reader mode, dark mode, accessibility). This won't apply to every website, but this is what I expect from blogs - block of text.
It adds a ton of overhead in general. Perhaps there is a subset of the website that could be a single page app or apps. But the entire website? yuck.
Usability and perf experience for me:
- I'm getting about 5 FPS scrolling on a M4 Pro
- Moving a "window" around takes 29% of my CPU, and renders at about 2 fps
- I'm losing about 40% of my screen height for reading (14" laptop screen). So much so none of the article is visible above the fold, just the title and by-line.
- My browser's CMD-F finds things on layers hidden under the current window
- Changing window size via corner drag is also selecting text on other windows, no prevent default.
- Xzibit says: Tabs are bad, so we put some tabs in your tabs?
No FPS or CPU issues on my M3, it's all very smooth.
Same slow spreadsheet load as sibling, but that seems like a backend issue.
EDIT: nevermind, this is not correct.
It appears as though all spreadsheets are grouped together in the same window under tabs. Perhaps its fetching the data for all of them. I noticed they all took a long time to load and then after one loaded, the others had loaded.
I imagine that could be sorted out to load per tab. Im more concerned about the idea of grouping all spreadsheets together. As opposed to a normal website which could embed a datatable in whatever page layout you want.
In general it bothers me to encapsulate what are essentially just page layouts as apps.
Interesting. I’m in safari.
I'm also in Safari on my MacBook Air M1, but the performance is pretty good though...
The blog post mentions some things use a spreadsheet. So I clicked the link.
It opened a change log. It took about 5 seconds to get to 94%. Then about 20 seconds to load.
There are about 40 items.
My goal on a webpage for specific product information is simply to extract data and leave. I have zero interest in learning a new immersive UX for a task that should take seconds.
The modern web's obsession with maximizing engagement and time on page is fundamentally user hostile. It creates a frustrating experience for anyone viewing the web as a utility rather than just a source of entertainment.
It's neat but it runs like a dog. I opened a couple of things and tried to move the window... I'd take a statically generated bunch of webpages over this. If you're going to make one of those multi window webpages looking thing, make it good.
To note, in the past, this was a big no-no because SEO was important. You had to have good SEO for search engines to index your content efficiently and show up well ranked in search results...
Now, well, that ship has sailed and sank somewhere off the west coast...
It took a good 20 seconds for it to fully load in Firefox on Android.
"omg mobile"
- some posthog dev waking up this morning after yesterday's release
Another FF on Android user here. Out of the many issues I've run into with this website, performance hasn't really been one of them. It's not perfect and it did lag once or twice but your average newspaper site is a lot worse.
It didn't lag once it loaded, it just took a long time to load. The top navbar and other elements loaded fairly quickly, but the text only popped in after about 20 seconds.
What are you using that's causing performance issues?
It runs like a dream when playing with the first window. When opening a second window and dragging it around it stutters for a second then resumes back to full speed and every window after is full speed. (I'm assuming that's the browser going: "Oh wait, they really are using those functions every frame, let me spend a moment to optimize them so they're as fast as possible for future executions)
M4 MacBook Pro running safari, in general it's running at about 10 fps when dragging windows around. Chrome seems to perform better but I still get quite a few dropped frames. Most of those long frames are spent deep in the React internals so I'm guessing that's the cause.
SEO was about documents. Now days everyone wants to make games. How do you rank games?
I think it's about user retention. If people have fun on your website, they'll stick around and they might even read some text!
If your website is about finding things, then spending more time is a bad sign.
I love the website. It stands out amongst a million vanilla SaaS marketing sites all using the same section stack template.
But nobody will actually use it the way they describe in this article. Nobody is going to use the site enough to learn and remember to use your site-specific window management when they need it.
Me too, think it's neat:) But it seems like the majority of the comments on HN dislikes it though.
Almost perfect. Inspirational.
It just needed to create a little box you can drag around when you click on nothing, like OS desktops have.
So here's the snippet to do that, toss this in the console and live the dream:
(() => { let startX, startY, box, dragging = false;
const style = document.createElement('style');
style.textContent = `
.___selection-box {
position: absolute;
pointer-events: none;
border: 1px dashed #2b76d6;
background: rgba(43,118,214,0.12);
z-index: 999999;
}
`;
document.head.appendChild(style);
function onDown(e) {
if (e.button !== 0) return; // left click only
startX = e.pageX;
startY = e.pageY;
dragging = true;
box = document.createElement('div');
box.className = '___selection-box';
box.style.left = startX + 'px';
box.style.top = startY + 'px';
document.body.appendChild(box);
e.preventDefault();
}
function onMove(e) {
if (!dragging) return;
const x = e.pageX, y = e.pageY;
const left = Math.min(x, startX);
const top = Math.min(y, startY);
const width = Math.abs(x - startX);
const height = Math.abs(y - startY);
Object.assign(box.style, {
left: left + 'px',
top: top + 'px',
width: width + 'px',
height: height + 'px'
});
}
function onUp(e) {
if (!dragging) return;
dragging = false;
console.log('Selection rect:', box.getBoundingClientRect());
box.remove();
box = null;
}
window.addEventListener('mousedown', onDown);
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onUp);
console.log(" Selection enabled. Drag with left mouse button. Check console for rect.");
})();I just wanted to say, this is a very nice example of clean vanilla JavaScript. Well done!
> Legally-required cookie banner
> PostHog.com doesn't use third-party cookies, only a single in-house cookie
You're legally required to let me opt out of that cookie. Unless it's essential to the site functionality, in which case you don't need the banner at all.
Exactly. If they indeed only use the cookie for essential functionality, this kind of joke banner only makes their choice to respect visitors' privacy equally annoying.
Even worse: because it makes it seem like the EU law is just meritless pestering of people, they are actually fighting for the right for worse sites to spy on their visitors.
It's baffling.
> EU law is just meritless pestering of people
It is that. It has done literally nothing to improve anything whatsoever, in any country. And most of the "cookie management" scripts that people use, barely even work. Both the law and the way it's complied with in practice are a dumb solution to a problem that the EU should have forced browser vendors to solve. Only the user's browser can choose not to send back cookies, and it would be trivial for the user to be shown a dialog when they navigate to a previously-visited site in a new session saying:
Last time you were here, the site stored information that may help them recognize you or remember your previous actions here.
< I want to be recognized > / < Forget Everything >
[ ] Also keep these third-party cookies <Details...>
[x] Remember my choice and don't ask again for ycombinator.com
The EU law is fine, the implementation used isn't. But never blame the EU laws for cookie banners; the law does not mandate banners at all, let alone the ones full of dark patterns to nag you into accepting anyway. That's all the industry.
The industry could have come up with a standard, a browser add-on, respect a browser setting, etc but they chose the most annoying one to pester you, the user.
> let alone the ones full of dark patterns to nag you into accepting anyway.
In fact the law pretty explicitly disallows dark patterns like that. Of course tech companies have a loosy-goosy relationship with the law at the best of times.
Yeah, and only when (I think) Google got a hefty fine did the banner implementations start to add an instant "opt-out" button. The tech companies really try to skirt the rules as closely as possible.
I'm glad I'm not in EU legal, it's gotta be like dealing with internet trolls ("I didn't ACTUALLY break any rules because your rules don't say I can't use the word "fhtagn"")
The #1 problem with the cookie law is that it's not enforced.
Start fining sites with dark pattern banners and they'll start going away.
I feel like the #1 problem with the cookie law is that the vast majority of websites need to do something in order to comply while keeping their business model and the law hasn't provided a clear direction for how to comply with it.
If they had done that, nobody would be making cookie banners wrong.
> In fact the law pretty explicitly disallows dark patterns like that.
Yes. For "cookie banners" the law in fact forbids hiding "Reject all non-essential and continue" to be given less visual weight than "Accept all and continue", let alone hiding it behind "More details" or other additional steps.
It also requires consent to be informed (i.e. you need to know what you're agreeing to) and specific (i.e. you can't give blanket consent, the actual categories of data and purposes of collection need to be spelled out) and easily revokable (which is almost never the case - most sites provide no direct access to review your options later once you've "opted in").
One good example I can think of for a "cookie banner" that gets this right is the WordPress plugin from DevOwl: https://devowl.io/wordpress-real-cookie-banner/ (this is not an ad, but this is the one I've been recommending to people after having tried several of them) because it actually adds links to the footer that let you review and change your consent afterwards.
EDIT: Sorry, I first misread "disallows" as "allows". I've amended my reply accordingly.
> The EU law is fine
Kind of. The intent is good and the wording disallows some of the dark patterns. The challenge is that it stands square in the path of the adtech surveillance behemoths. That we ended up with the cesspit of cookie banners is a result of (almost) immovable object meeting (almost) irresistable force. There was simply no way that Google, Facebook et al were ever going to comply with the intent of the law: it's their business not to.
The only way we might have got a better outcome was for the EU to quickly respond and say "nope, cookie banners aren't compliant with the law". That would have been incredibly difficult to do in practice. You can bet your Bay Area mortgage that Big Tech will have had legions of smart lawyers pouring over how to comply with the letter whilst completely ignoring the intent.
GDPR requires informed consent before collecting data. It's a wonder we don't have to force everyone through an interstitial consent page.
Yes, this sounds good. This sounds like something desirable. I mean, this is the expectation literally everywhere else so... why not the web?
Also, data collection is fully a choice. You can always choose not to. I've built websites with logins and everything and guess what - no cookie banners necessary. Just don't collect data you don't need.
> GDPR requires informed consent before collecting data.
And this is a good thing, no? I certainly think so.
> It's a wonder we don't have to force everyone through an interstitial consent page.
If the information being tracked is truly essential to the site/app (session management and authorisation data for instance) then no consent is needed, for anything else ask before you store it, and most certainly ask before you share it with your “partners” or anyone else.
There's obviously a lot more real world than they can codify into laws and examples but I think if you can get consent, you should get consent. The ICO:
> Private-sector or third-sector organisations will often be able to consider the ‘legitimate interests’ basis in Article 6(1)(f) if they find it hard to meet the standard for consent and no other specific basis applies. This recognises that you may have good reason to process someone’s personal data without their consent – but you must avoid doing anything they would not expect, ensure there is no unwarranted impact on them, and that you are still fair, transparent and accountable.
Session tracking, storing account information, addresses, etc all seem obvious in any e-commerce system but you still have every opportunity to notify and consent that data collection.
I think you and I both think that data protection is a good thing, I'm just a little more wary of leaning on legitimate usage* as a way to skip formal consent.
The EU law isn't fine.
Many websites are free because they survive from ads. Ads make more money if you collect data. The EU law essentially cut the revenue of all these websites. Their choice is to not collect data (meaning less revenue) or show a popup (meaning more bounce rate, which means less revenue).
People who think this is a good thing are being short-sighted. That's because this law mainly affects websites that host information that visitors visit from clicking on links on the web. If a website is like Facebook or Youtube, where users must sign up first or probably already have an account, they will be able to collect data for ads with or without banners since they have their own ToS for creating an account, and they can infer a lot from how the user uses their services.
I'm not saying privacy regulation is a bad thing. It made countless businesses reconsider how they handle people's data. But it's clear to me that there are two problems.
First, this regulation hurts all the small websites that need to exist in order for we have to have a healthy "web." A lot of these are making only barely their hosting costs in ads, so there is no way they can afford the counsel to figure out how to comply with laws from another continent. If we had another way to support these websites, this wouldn't be a problem, but ads are really the lifeblood of half of the internet, and almost nobody wants to donate or pay a subscription.
Second, this regulation doesn't even really protect people's private data in the end, which may give users a false sense of security because they have the GDPR on their side. I forgot the name, but there was a recent gossiping app that required the user to upload a photo in order to sign up, which should be deleted afterwards, but they never deleted it and when the app was hacked the attacker had access to photos of all users. It's the same thing with GDPR. We can tell when a website is clearly not complying with the GDPR, but there is no way to tell if they actually complied with the GDPR until the server gets hacked.
Even the way they comply with GDPR isn't enough to protect users' privacy, e.g. if you have an account on Discord and you want your data deleted, they will simply turn every post your made into an "anonymous" post. This means if you sent a message that discloses your private information on Discord, that will never get deleted because its outside the scope of compliance. You could literally say "Hi, my name is XYZ, I live in ABC" and they won't delete that because you consented to provide that information, they will just change your username from "xyz" to "anonymous" or something like that.
I still wonder what are the actual benefits of GDPR with these cookie banners when 99% of the users just stay on Facebook and Youtube anyway.
> Many websites are free because they survive from ads. Ads make more money if you collect data.
My business is to get money out of other people's wallets and bank accounts. I could get make much money if you just logged into your bank account and approved transactions whenever I told you to, or screamed less whenever I took the wallet out of your pocket on my own.
That there's a way to earn more money does not justify it as legitimate thing to do, and if you can't figure out how to run a service in legitimate ways does not mean that illegitimate ways that attempt to violate its users in secret suddenly become okay.
Like I said, GDPR only stops the smallest websites from doing that, and in most cases they're barely a "business," they're just some website that gets paid only enough in ads to cover its hosting costs so that the webmaster doesn't have to pay money on top of time to publish information for free for everyone on the internet.
The largest websites will still "violate its users in secret." That's why I don't think GDPR is as useful as people purport it to be.
> First, this regulation hurts all the small websites that need to exist in order for we have to have a healthy "web."
there is nothing healthy about force-feeding ads optimized via collected data.
You're going to get force-fed ads optimized via collected data either way. The only question is whether small websites will exist that rely on third-party ad networks or only Facebook and Youtube will exist because they have first-party ad delivery systems. I don't think the latter is healthier than the former. Do you?
I read an interview with a bunch of different young people. They all basically said "I just click 'yes' or 'accept' automatically". It sounded like they all believed that this was something they had to do in order to get to the content.
Bad implementation of the EU law indeed, as another comment said. It fails the purpose completely and just create more problems for nearly everyone.
If you like things the way they were before the law, just answer yes to all cookie banners you see.
It does not take time if you don’t care to read it. Yours click yes, and they will remember you want to be tracked.
Yep, it baffles me that a lot of people would rather not have the option to reject cookies. Its weird to say "I don't want to stop a website tracking me because the UX is terrible. I'd rather get tracked instead.". Of course, it would be better if the UX were even better, but I'd rather take something over nothing.
> Yep, it baffles me that a lot of people would rather not have the option to reject cookies.
Back in the day browsers offered this natively. When the advertising companies started building browsers there was a lot of incentive to see that go by the wayside of course...
But the earlier comment isn't saying that you shouldn't have options, rather that the law needs to be more specific, such as requiring browsers to work in coordination with website operators to provide a unified solution that is agreeable to users instead of leaving it completely wide open to malicious compliance.
These kind of laws need to be careful to not stifle true innovation, so it is understandable why it wanted to remain wide open at the onset. But, now that we're in the thick of it, maybe there is a point where we can agree that popup dialogs that are purposefully designed to be annoying are in volition of the spirit and that the law should be amended to force a better solution?
> that the law needs to be more specific, such as requiring browsers to work in coordination with website operators
1. The law isn't about browsers or websites. It equally applies to all tracking. E.g. in apps. Or in physical stores.
2. The world's largest advertising company could do all you describe. And they do work with websites. First by repackaging tracking through FLoC. Then by just simply repackaging tracking and calling it privacy: https://x.com/dmitriid/status/1664682689591377923
> It equally applies to all tracking. E.g. in apps. Or in physical stores.
Obviously. And where there are problems in those domains equal specificity would be asked for. But since we're talking about in the context of browsers specifically...
> But since we're talking about in the context of browsers specifically...
... then we all know it only cookies that matter? I don't understand the ellipsis