1. 58
  1.  

  2. 28

    That is a very reductionist view of what people use the web for. And I am saying this as someone who’s personal site pretty much matches everything prescribed except comments (which I still have).

    Btw, Medium, given as a positive example, is not in any way minimal and certainly not by metrics given in this article.

    1. 19

      Btw, Medium, given as a positive example, is not in any way minimal and certainly not by metrics given in this article.

      Chickenshit minimalism: https://medium.com/@mceglowski/chickenshit-minimalism-846fc1412524

      1. 13

        I wouldn’t say medium even gives the illusion of simplicity (For example, on the page you linked, try counting the visual elements that aren’t blog post). Medium seems to take a rather contrary approach to blogs, including all the random cruft you never even imagined existed, while leaving out the simple essentials like RSS feeds. I honestly have no idea how the author of the article came to suggest medium as an example of minimalism.

        1. 8

          Medium started with an illusion of simplicity and gradually got more and more complex.

          1. 3

            I agree with your overall point, but Medium does provide RSS feeds. They are linked in the <head> and always have the same URL structure. Any medium.com/@user has an RSS feed at medium.com/feed/@user. For Medium blogs hosted at custom URLs, the feed is available at /feed.

            I’m not affiliated with Medium. I have a lot of experience bugging webmasters of minimal websites to add feeds: https://github.com/issues?q=is:issue+author:tfausak+feed.

        2. 3

          That is a very reductionist view of what people use the web for.

          I wonder what Youtube, Google docs, Slack, and stuff would be in a minimal web.

          1. 19

            Useful.

            algernon hides

            1. 5

              YouTube, while not as good as it could be, is pretty minimalist if you disable all the advertising.

              I find google apps to be amazingly minimal, especially compared to Microsoft Office and LibreOffice.

              Minimalist Slack has been around for decades, it’s called IRC.

              1. 2

                It is still super slow then! At some point I was able to disable JS, install the Firefox “html5-video-everywhere” extension and watch videos that way. That was awesome fast and minimal. Tried it again a few days ago, but didn’t seem to work anymore.

                Edit: now I just “youtube-dl -f43 ” directly without going to YouTube and start watching immediately with VLC.

                1. 2

                  The youtube interface might look minimalist, but under the hood, it is everything but. Besides, I shouldn’t have to go to great lengths to disable all the useless stuff on it. It shouldn’t be the consumer’s job to strip away all the crap.

                2. 2

                  That seems to be of extreme bad faith though.

                  1. 11

                    In a minimal web, locally-running applications in browser sandboxes would be locally-running applications in non-browser sandboxes. There’s no particular reason any of these applications is in a browser at all, other than myopia.

                    1. 2

                      Distribution is dead-easy for websites. In theory, you have have non-browser-sandboxed apps with such easy distribution, but then what’s the point.

                      1. 3

                        Non-web-based locally-running client applications are also usually made downloadable via HTTP these days.

                        The point is that when an application is made with the appropriate tools for the job it’s doing, there’s less of a cognitive load on developers and less of a resource load on users. When you use a UI toolkit instead of creating a self-modifying rich text document, you have a lighter-weight, more reliable, more maintainable application.

                        1. 3

                          The power of “here’s a URL, you now have an app running without going through installation or whatnot” cannot be understated. I can give someone a copy of pseudo-Excel to edit a document we’re working together on, all through the magic of Google Sheet’s share links. Instantly

                          Granted, this is less of an advantage if you’re using something all the time, but without the web it would be harder to allow for multiple tools to co-exist in the same space. And am I supposed to have people download the Doodle application just to figure out when our group of 15 can go bowling?

                          1. 4

                            They are, in fact, downloading an application and running it locally.

                            That application can still be javascript; I just don’t see the point in making it perform DOM manipulation.

                            1. 3

                              As one who knows JavaScript pretty well, I don’t see the point of writing it in JavaScript, however.

                              1. 1

                                A lot of newer devs have a (probably unfounded) fear of picking up a new language, and a lot of those devs have only been trained in a handful (including JS). Even if moving away from JS isn’t actually a big deal, JS (as distinct from the browser ecosystem, to which it isn’t really totally tied) is not fundamentally that much worse than any other scripting language – you can do whatever you do in JS in python or lua or perl or ruby and it’ll come out looking almost the same unless you go out of your way to use particular facilities.

                                The thing that makes JS code look weird is all the markup manipulation, which looks strange in any language.

                                1. 3

                                  JS (as distinct from the browser ecosystem, to which it isn’t really totally tied) is not fundamentally that much worse than any other scripting language

                                  (a == b) !== (a === b)

                                  but only some times…

                                  1. 3

                                    Javascript has gotchas, just like any other organic scripting languages. It’s less consistent than python and lua but probably has fewer of these than perl or php.

                                    (And, just take a look at c++ if you want a faceful of gotchas & inconsistencies!)

                                    Not to say that, from a language design perspective, we shouldn’t prize consistency. Just to say that javascript is well within the normal range of goofiness for popular languages, and probably above average if you weigh by popularity and include C, C++, FORTRAN, and COBOL (all of which see a lot of underreported development).

                            2. 1

                              Web applications are expected to load progressively. And that because they are sandboxed, they are allowed to start instantly without asking you for permissions.

                              The same could be true of sandboxed desktop applications that you could stream from a website straight into some sort of sandboxed local VM that isn’t the web. Click a link, and the application immediately starts running on your desktop.

                            3. 1

                              I can’t argue with using the right tool for the job. People use Electron because there isn’t a flexible, good-looking, easy-to-use cross-platform UI kit. Damn the 500 mb of RAM usage for a chat app.

                              1. 4

                                There are several good-looking flexible easy to use cross-platform UI kits. GTK, WX, and QT come to mind.

                                If you remove the ‘good-looking’ constraint, then you also get TK, which is substantially easier to use for certain problem sets, substantially smaller, and substantially more cross-platform (in that it will run on fringe or legacy platforms that are no longer or were never supported by GTK or QT).

                                All of these have well-maintained bindings to all popular scripting languages.

                                1. 1

                                  QT apps can look reasonably good. I think webapps can look better, but I haven’t done extensive QT customization.

                                  The bigger issue is 1) hiring - easier to get JS devs than QT devs 2) there’s little financial incentive to reduce memory usage. Using other people’s RAM is “free” for a company, so they do it. If their customers are in US/EU/Japan, they can expect reasonably new machines so they don’t see it as an issue. They aren’t chasing the market in Nigeria, however large in population.

                                  1. 5

                                    Webapps are sort of the equivalent of doing something in QT but using nothing but the canvas widget (except a little more awkward because you also don’t have pixel positioning). Whatever can be done in a webapp can be done in a UI toolkit, but the most extreme experimental stuff involves not using actual widgets (just like doing it as a webapp would).

                                    Using QT doesn’t prevent you from writing in javascript. Just use NPM QT bindings. It means not using the DOM, but that’s a net win: it is faster to learn how to do something with a UI toolkit than to figure out how to do it through DOM manipulation, unless the thing that you’re doing is (at a fundamental level) literally displaying HTML.

                                    I don’t think memory use is really going to be the main factor in convincing corporations to leave Electron. It’s not something that’s limited to the third world: most people in the first world (even folks who are in the top half of income) don’t have computers that can run Electron apps very well – but for a lot of folks, there’s the sense that computers just run slow & there’s nothing that can be done about it.

                                    Instead, I think the main thing that’ll drive corporations toward more sustainable solutions is maintenance costs. It’s one thing to hire cheap web developers & have them build something, but over time keeping a hairball running is simply more difficult than keeping something that’s more modular running – particularly as the behavior of browsers with respect to the corner cases that web apps depend upon to continue acting like apps is prone to sudden (and difficult to model) change. Building on the back of HTML rendering means a red queen’s race against 3 major browsers, all of whom are changing their behaviors ahead of standards bodies; on the other hand, building on a UI library means you can specify a particular version as a dependency & also expect reasonable backwards-compatibility and gradual deprecation.

                                    (But, I don’t actually have a lot of confidence that corporations will be convinced to do the thing that, in the long run, will save them money. They need to be seen to have saved money in the much shorter term, & saying that you need to rearchitect something so that it costs less in maintenance over the course of the next six years isn’t very convincing to non-technical folks – or to technical folks who haven’t had the experience of trying to change the behavior of a hairball written and designed by somebody who left the company years ago.)

                                  2. 1

                                    I understand that these tools are maintained in a certain sense. But from an outsider’s perspective, they are absolutely not appealing compared to what you see in their competitors.

                                    I want to be extremely nice, because I think that the work done on these teams and projects is very laudable. But compare the wxPython docs with the Bootstrap documentation. I also spent a lot of time trying to figure out how to use Tk, and almost all resources …. felt outdated and incompatible with whatever toolset I had available.

                                    I think Qt is really good at this stuff, though you do have to marry its toolset for a lot of it (perhaps this has gotten better).

                                    The elephant in the room is that no native UI toolset (save maybe Apple’s stack?) is nowhere near as good as the diversity of options and breadth of tooling available in DOM-based solutions. Chrome dev tools is amazing, and even simple stuff like CSS animations gives a lot of options that would be a pain in most UI toolkits. Out of the box it has so much functionality, even if you’re working purely vanilla/“no library”. Though on this points things might have changed, jQuery basically is the optimal low-level UI library and I haven’t encountered native stuff that gives me the same sort of productivity.

                                    1. 3

                                      I dunno. How much of that is just familiarity? I find the bootstrap documentation so incomprehensible that I roll my own DOM manipulations rather than using it.

                                      TK is easy to use, but the documentation is tcl-centric and pretty unclear. QT is a bad example because it’s quite heavy-weight and slow (and you generally have to use QT’s versions of built-in types and do all sorts of similar stuff). I’m not trying to claim that existing cross-platform UI toolkits are great: I actually have a lot of complaints with all of them; it’s just that, in terms of ease of use, peformance, and consistency of behavior, they’re all far ahead of web tech.

                                      When it comes down to it, web tech means simulating a UI toolkit inside a complicated document rendering system inside a UI toolkit, with no pass-throughs, and even web tech toolkits intended for making UIs are really about manipulating markup and not actually oriented around placing widgets or orienting shapes in 2d space. Because determining how a piece of markup will look when rendered is complex and subject to a lot of variables not under the programmer’s control, any markup-manipulation-oriented system will make creating UIs intractably awkward and fragile – and while Google & others have thrown a great deal of code and effort at this problem (by exhaustively checking for corner cases, performing polyfills, and so on) and hidden most of that code from developers (who would have had to do all of that themselves ten years ago), it’s a battle that can’t be won.

                                      1. 5

                                        It annoys me greatly because it feels like nobody really cares about the conceptual damage incurred by simulating a UI toolkit inside a doument renderer inside a UI toolkit, instead preferring to chant “open web!” And then this broken conceptual basis propagates to other mediums (VR) simply because it’s familiar. I’d also argue the web as a medium is primarily intended for commerce and consumption, rather than creation.

                                        It feels like people care less about the intrinsic quality of what they’re doing and more about following whatever fad is around, especially if it involves tools pushed by megacorporations.

                                        1. 2

                                          Everything (down to the transistor level) is layers of crap hiding other layers of different crap, but web tech is up there with autotools in terms of having abstraction layers that are full of important holes that developers must be mindful of – to the point that, in my mind, rolling your own thing is almost always less work than learning and using the ‘correct’ tool.

                                          If consumer-grade CPUs were still doubling their clock speeds and cache sizes every 18 months at a stable price point and these toolkits properly hid the markup then it’d be a matter of whether or not you consider waste to be wrong on principle or if you’re balancing it with other domains, but neither of those things are true & so choosing web tech means you lose across the board in the short term and lose big across the board in the long term.

                      2. 1

                        Youtube would be a website where you click on a video and it plays. But it wouldn’t have ads and comments and thumbs up and share buttons and view counts and subscription buttons and notification buttons and autoplay and add-to-playlist.

                        Google docs would be a desktop program.

                        Slack would be IRC.

                        1. 1

                          What you’re describing is the video HTML5 tag, not a video sharing platform. Minimalism is good, I do agree, but don’t mix it with no features at all.

                          Google docs would be a desktop program.

                          This is another debate around why using the web for these kind of tasks, not the fact that it’s minimalist or not.

                    2. 15

                      This is the best advice. I crave more minimal sites like this. Have you noticed that Lobsters is the minimal link aggregation site?

                      1. 7

                        Lobsters minimalist layout is so kind on the eyes; it is one of my favourite designs.

                      2. 13

                        Nothing else.Here’s what a minimalist website should leave out:

                        • JavaScript.
                        1. 8

                          About analytics: You can do them on the server side by parsing your web logs! That used to be how everyone did it! Google Analytics popularized client side analytics using JavaScript around 2006 or so.

                          Unfortunately I feel like a lot of the open source web analytics packages have atrophied from disuse. But I wrote some Python and R scripts to parse access.log and it works pretty well for my purposes.

                          http://www.oilshell.org/ is basically what this article recommends, although I’m using both client-side and server-side analytics. I can probably get rid of the client-side stuff.

                          related: http://bettermotherfuckingwebsite.com/ (I am a fan of narrow columns for readability)

                          1. 4

                            I agree, I used to use JAWStats a PHP web app that parsed and displayed the AWStats generated data files to provide visually appealing statistics a lot like Google analytics but entirely server side with data originating from apache/nginx log files.

                            It’s a shame that it was last worked on in 2009. There was a fork called MAWStats but that hasn’t been updated in four years either :(

                            For a while I self hosted my feed reader and web analytics via paid for apps, Mint and Fever by Shaun Inman but those where abandoned in 2006. It seems like all good software ends up dead sooner or later.

                            1. 3

                              Maybe the GDPR will give these project a new breath.

                              They are much better for privacy aware people.

                              1. 2

                                It’s been on my list of projects to attempt for a while, but my static site generator Tapestry takes up most of my spare time.

                            2. 4

                              You want GoAccess. Maintained, and looks modern. Example. I’m using it and it has replaced AWStats for me completely.

                              1. 2

                                I currently use GoAccess myself, the only thing that would make the HTML reports better is seeing a calendar with visit counters against days.

                            3. 6

                              This would be more convincing with a bit more attention to detail with respect to the readability of the article. E.g., there’s a couple of missing spaces between words/sentences, and the <h3> are barely distinguishable from the rest of the text.

                              (And, yes, Medium…)

                              1. 6

                                This sort of smallholder, yeaoman-farmer artisanal website is just like organic food. It’s cheap to buy industrially-produced food. It promotes large food companies and reduces prices for consumers, but has incredible negative externalities - concentration of power, tasteless food, bad health, low nutrition. It’s cheap to start a Facebook page, a Medium site, a Wordpress site, or a Twitter account. Easy for the user, easy access to others on the same platform, immense profits for the ones that control the platforms. The market has eaten away at the commons that could have been the internet, just like it has turned millions of acres into corn fields for feeding chickens in factory farms. We should start thinking of cyberspace as space, space that has been exploited and colonized just like real land has been.

                                I admire those pushing for a simpler, healthier web. But unless we change our economic system, nothing major will change.

                                1. 2

                                  It’s not at all difficult to create a website like this. Far easier, in fact, than making a Wordpress site or Medium site. Why do people not? Partially I think it’s that people expect it to be very difficult, so they don’t try. But I think it’s mostly because there’s no advertisement and promotion of it! Nobody makes money from you putting a few static pages on github pages or a similar completely free host.

                                  People encounter Facebook pages and Wordpress blogs every day, so that’s the first thing they think of when they need to make some sort of website.

                                  1. 1

                                    Oh come on! I don’t think it’s easy to learn HTML/CSS, find a hosting provider, upload your files, configure the web server, buy a domain, set up domain records.

                                    But I do agree with you that this process is much harder than it needs to be and it’s not easy to discover. And there’s not a reason why some money can’t be made in this process - so making it sustainable. Create a site that hooks up to a bunch of registrars and a bunch of hosts. Push-button deployment. Charge an extra few dollars on top. The value-add is centralized billing, less hassle, support.

                                    1. 2

                                      I don’t think it’s easy to learn HTML/CSS

                                      I learnt basic HTML when I was about 7. Here’s some HTML: <html><head><title>My personal website</title></head><body><h1>My Website</h1><p>Hi this is my website hope you like it.</p></body></html>. That’s all you need to make a ‘personal website’.

                                      But I do agree with you that this process is much harder than it needs to be and it’s not easy to discover. And there’s not a reason why some money can’t be made in this process - so making it sustainable. Create a site that hooks up to a bunch of registrars and a bunch of hosts. Push-button deployment. Charge an extra few dollars on top. The value-add is centralized billing, less hassle, support.

                                      The thing is, there’s no real reason why you should have to pay for very basic web hosting. Facebook pages and Youtube profiles and reddit profiles and such cost way more to provide than basic web hosting, but they’re free and basic web hosting is dollars every month. Any cost at all is a big barrier to entry.

                                      1. 2

                                        Yes, basic HTML is not too hard. Perhaps it would be good to have local libraries providing easy/free hosting. It really can’t cost much to throw up a Geocities-esque webpage on the Internet.

                                2. 4

                                  I’ve started reading the source of websites for this reason. I can get just the text content without distractions. I’m in favor.

                                  1. 4

                                    I much prefer the idea of using something like transparent content negotiation or other similar means of letting the client and server of a website determine which content is necessary given a device’s preferences and capabilities.

                                    I’ve never actually seen this implemented unfortunately (outside of certain APIs, but not web pages), but I can dream…

                                    1. 1

                                      Unfortunately, despite browsers and servers supporting negotiation, most CDNs do not obey the Vary header even if you set it.

                                    2. 3

                                      I prefer a minimal web, my own blog is minimalist in design and in hosting by being hand coded and generated by a static site generator.

                                      Sometimes you need a bit of sparkle though.

                                      1. 1

                                        no you don’t

                                      2. 3

                                        Don’t sacrafice fonts for being “minimal”, though. That font and text size is not great for reading if that’s your primary goal.

                                        1. 1

                                          That what browser text zoom is for!

                                          1. 1

                                            Not really. Browser zoom is so that people who need to zoom can do so on the page. However, the page still should be designed with your average user in mind. There’s no reason to force the average user to zoom when unnecessary, that is a usability concern. My other usability concern with this suggestion is that browser text zoom makes the usability of your documents pretty poor on mobile.

                                          2. 1

                                            Whatever happened to the end user being in control of fonts and colors, anyway? If minimal sites became common again, I’d like to see client-side styling become much more prominent (say, a font & size dropdown right next to the URL bar on every major browser, along with a background & foreground color selector).

                                            Leaving the web designer in charge of the theming is a boon for branding, but the end user doesn’t care about supporting some company’s branding (which in some cases – like the prevelence of blue-heavy designs – does real harm), and it’s ultimately they who use the thing so they should have full control. Yet, overriding default colors and fonts breaks most websites (not just webapps – which we would expect to be fragile against that – but web SITES).

                                            1. 1

                                              I’m absolutely not suggesting that the user shouldn’t be in control of the fonts and colors - which they completely are even in many modern web documents - but only to suggest that the defaults provided for your document should be reasonable for your average user.

                                              The way to think about font size is based on a rough average number of characters width per-column, because it helps prevent eye strain. My assumption here is that most users are human and using their eyes to read the content. Other cases exist, so the defaults must not be assumed to be the only case - but they should be reasonable for the average user.

                                              1. 2

                                                they completely are even in many modern web documents

                                                As someone who, for years, set his default font style to monospace & color to orange-on-black for usability reasons & enabled font override on as many sites as possible, this does not track with my experience at all. Even the main google search page was not usable when font colors were overridden – most buttons became invisible.

                                                It was probably a mistake to allow web designers to control the fonts, colors, and positions of elements in the first place. Giving that control to them has only provided shallow benefits & an invitation to implement really bad ideas, while nearly every time they’re taken advantage of, usability & accessibility suffers.

                                                1. 1

                                                  Sounds like an issue with your browser tbh.

                                                  1. 1

                                                    We can’t possibly be talking about the same facility.

                                                    Every major browser has, buried in the settings, control over default typeface, size, and color, along with a checkbox indicating that the recommendations by the website itself should be overridden. This configuration (for the past ~10 years, on both chrome and firefox) will not fix hard-coded CSS alignment (which is tragically common) and will also not fix the use of transparent images on top of faux-buttons.

                                                    The result: if you increase font size and use a dark background color with a light foreground color, text overruns boxes and sits on top of other text while faux-buttons become totally invisible. This is a behavior that happens in all major browsers (because it’s not a browser behavior but a result of idiomatic use of CSS being fragile), and it’s a huge accessibility issue for people who have poor vision but do not use a screen reader.

                                                    It’s trivial to reproduce: go into your browser settings & invert the colors, then visit gmail. This problem is, essentially, the reason extensions like deluminate & features like default zoom exist: normal font & color controls are borderline useless because most existing CSS breaks in response to these controls.

                                                    1. 1

                                                      The alignment thing is tragically common because CSS didn’t have any other way to perform alignment until recently.

                                                      There is the facility that you mentioned, users are allowed to install extensions, and you can disable sites from using CSS. If you use the first one then disabling CSS is probably reasonable.

                                                      I’m sure there are other ways to solve this. Either way, you are describing problems with browsers and not problems with the way the website is designed or the web itself?

                                                      Still sounds like an issue with your browser. links renders Google fine, for instance.

                                                      1. 2

                                                        Links renders google fine because links ignores all css color information (meaning that background & foreground colors cannot be specified through secondary methods in piecemeal ways).

                                                        And yes, I consider browsers, web standards, and web developers equally at fault for the state of the world in this respect. These idioms (justified by browser features, made possible by web standards, and used by web developers) are user-hostile.

                                                        How the web designer would like something to look is completely irrelevant. A site that doesn’t work if you turn off CSS is broken. But, people who actually modify how sites look in any way are rare enough and quiet enough that it’s possible for web developers to go through life not considering whether or not their sites still work when they’ve been re-styled. That is not a ‘browser problem’ – it’s a culture problem.

                                                        1. 1

                                                          Seems like semantics but maybe I should have emphasized links2.

                                          3. 1

                                            The 46 lines of javascript inclusions, CSS and meta information at the top are not minimal.

                                            1. 2

                                              On the contrary there’s nothing wrong with a few lines of Javascript, CSS or tags. For example, I include MathJAX javascript on my personal website. As far as I know, if you have Javascript disabled you just get the raw LaTeX tags instead of the rendered mathematics. That’s good, that’s progressive Javascript. JS isn’t inherently bad. Nor is there anything wrong with a few bytes of meta tags giving important semantic information about a website.

                                              The JS in this website looks to me like it’s enabling some sort of Emoji thing, probably to get Emoji rendering properly in browsers and on operating systems where they can’t be rendered properly.

                                              JS isn’t bad! Tracking is bad, ads are bad, bloat is bad.

                                              1. 1

                                                I agree that progressive JS is nice.

                                                But nice != minimalistic.