1. 77
    1. 24

      If you want to take it to the extreme, you can build a website that fits in a single TCP packet.

      Source: https://github.com/diracdeltas/FastestWebsiteEver

      Demo: http://packet.city/

      1. 12

        “Get in touch today to hear about our 120-byte ad sponsorship opportunities!”

        Amazing :D

      2. 4

        Ok, that’s totally awesome. Tops my idea by far!

      3. 2

        Of course there’s sound on that page too. BBS advertising at its best.

    2. 31

      I don’t disagree with the article. However I also can’t help but to be reminded of the “I only own 1 fork, 2 tshirts, a backpack, and a laptop” people.

      “I disable HTML, CSS, Javascript and all that bloat … I only browse the internet with Emacs … ALSO … oh my god did I tell you how much RAM this Electron blasphemy uses? … what is wrong with some good old ugly lightweight Tk GUIs? I mostly use tmux over SSH anyways so who needs GUIs right right? Everything is bloated. Everything is unnecessary. Disable everything. And make sure that your stuff gracefully falls back from 2018 to this authentic vintage record player that I feel like using as my alternative web browser today for extra privacy protection.”

      I get it. I don’t even particularly disagree with it. But it’s turning into a bit of a meme.

      Also for clarity I don’t mean to imply that the author said those things. The post just reminded me of this theme.

      1. 5

        I get it. I don’t even particularly disagree with it. But it’s turning into a bit of a meme.

        It’s to distinguish yourself, as opposed to those that that run Wordpress and use IDEs. And yes, it relates to the minimalism you mention.

        (Did I mention my writing space uses pandoc and a couple of lines of shell ?)

        1. 1

          I tried that, too, but found that pandoc is actually quite difficult to maintain, since it lives in the haskell ecosystem (which isn’t too available on the non-GNU Linux ecosystem)

          Im with the markdown/jekyll stack now, i dont think its less bloated, but at least i can outsource the rendering (and therefore having the stuff installed) to github pages.

          1. 1

            It has a lot of weird issues, like pandoc output not being really stable, so compiling with a newer version of pandoc leads to a lot of churn in the results.

            pandoc releases binaries though, and whenever I’m on non-GNU, I just get the installer and install it.

      2. 5

        I want to add that minimalism can have an nice payout: reduced resource usage. If you use tmux instead of Xorg, w3m instead of firefox, suddenly an 15 year old Laptop is not scrap metal anymore. They cost like 60$ each on eBay, but you can usually get them for free from relatives.

      3. 3

        I think it’s good to have both extremes, like that everyone can choose something in the middle.
        However, 2016 and 2017 have shown that there’s a trend to not take that middle way.

      4. 2

        Maybe it gets a meme. There are memes for everything nowadays. There are meme for GUI too, or the GUI was a meme that grew too big to be called a meme, now it is the standard way of computing for most people.

        If bulk can be stripped out of the interfaces (graphical, text, any kind!) it is good, but if it becomes yet another meme… Yes, it kills all the fun.

    3. 12

      I’d prefer it if there was no design. Just the content.

      1. 16

        Which you get with a (full) RSS feed.

        1. 7


          Take care if you use hugo, the default rss template does not render the full article.

          Here’s a modified one that renders the full article in the feed:

          <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
              <title>{{ .Title}} </title>
              <link>{{ .Permalink }}</link>
              <description>Recent posts</description>
              <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
              <language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
              <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
              <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
              <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
              <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
              {{ with .OutputFormats.Get "RSS" }}
                  {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
              {{ end }}
              {{ range .Data.Pages }}
                <title>{{ .Title }}</title>
                <link>{{ .Permalink }}</link>
                <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
                {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
                <guid>{{ .Permalink }}</guid>
                <description>{{ .Content | html }}</description>
              {{ end }}

          I probably should have included that in the article… Too late now.

          1. 3

            Why is it too late now?

            1. 5

              I was about to answer laziness and realized this is not something that should be celebrated.

              It’s now included.

              1. 1

                Thank you for adding it, it will be handy for me when I go back to your post in a few weeks and look for how to do this. :)

        2. 1

          Blogs should just be an XSLT transform applied to RSS ;)

      2. 3

        The built-in Firefox Reader mode is a godsend. I feel much more comfortable reading long texts in the same font, page width, background color + the scrollbar on the right now gives me a pretty good estimate of reading time.

        1. 1

          Weirdly, though, that all comes down to the good design of Firefox reader mode :D.

      3. 1

        RSS, lightweight versions (light.medium.com/usual/url ?), heck even gopher, perfectly does the job! we need these things.

    4. 11

      In September 2016 prgmr.com refreshed our home page. The last such change for us was in 2009. By comparison to 2009, it was more difficult to make a lightweight website that was broadly compatible with all of the available browsers. The effort and specialized knowledge it required was a surprise to me. Collecting browser usage data, testing what we could, and fixing (at best, often: working around) the enormous rendering variation made this a non-trivial project.

      We replaced our home-grown stylesheet with one from W3. That made it easier for us to deal with cross-browser compatibility but increased the size of our CSS.

      We wanted to retain the ability to not require JavaScript to view the page. To support mobile, however, we had to “degrade” our hamburger menu to JavaScript when a sufficiently expressive CSS wasn’t available.

      SVG support was all over the place, so we went with PNG.

      We also added a new icon font, though we stripped it down to only the glyphs we used.

      I’m certainly happy with the result we got. I like how the site looks on mobile much better than the 2009 site. I’m glad we were able to retain much of the same look and feel. All of these issues nevertheless made the site larger and more complex.

    5. 14

      Why just blogs? I belive everything should be kept as light as possible. And as static, as possible. And as clean, as possible. etc. …

      Sadly, the web has “too much” power, that people abuse “too easily”, wanting to create a new, never before seen design, while trying to impose their imagined conceptions on a website, without regard for the actual medium. Then again, there are developers, too lazy to think about how to intelligently or properly implement something, and just grab the newest multi-megabyte framework, regardless of the task. I wonder how long this mentality will go on?

      And on a related note, neocities is also highly recommendable when it comes to a free host for static content.

      1. 6

        I wonder how much better the web would be if browsers artificially slowed down all network requests when the devtools were open and didn’t provide a way to disable that functionality.

        1. 2

          I’m naively guessing that people would use different browsers.

          If on the other hand ithwere the ISPs that were to do the throtteling, that would be an entirely different thing.

          1. 1

            Right, I was assuming a magical state of the world in which it would be coordinated across vendors.

            Also ISPs getting to know when I’m messing around with the devtools panel sounds beyond disastrous.

        2. 1

          They are already slowed down by ads, but people get a faster connection.

          Faster connection enable (some of) us to adapt to the bloatedness of the web instead of transferring more content it seems.

    6. 18

      No images and yet better content than 95% of the medium posts I’ve read in the last few months.

      1. 3

        But memes are fun! Are you anti-fun?

        1. 15

          If memes are fun, I’m anti-fun

        2. 1

          I don’t mind the occasional relevant comic inserted in to text but if you have to put a meme in between every line then you need to stop.

    7. 8

      After reading this post I went back to my almost-dead blog, confident that it will be quite lightweight. The Firefox network tab showed (with cache disabled):

      • 13 requests
      • 360KB transferred (1.00 MB after expanding the gzipped files)
      • Finish: 2.21 seconds.
      • DOMContentLoaded: 829ms
      • load: 1.76s

      I was quite puzzled as this is a static website based on a rather simple Jekyll template. Turns out that the “Like” button that I added a while back generated 5 requests and 204 KB (or 795 KB after expanding) of load. I’m quite surprised of that and I’ll probably resurrect my blog just to remove that like button.

    8. 6

      I don’t think this advice is particularly applicable because it’s only a few services like Medium that actually take a personal blog post and turn it into a multi-megabyte mess.

      Anyone using a standard Wordpress theme or writing their own template is likely not to incur that much bloat because most of the bloat comes from unused widgets (that Medium thinks are neat), ads, useless analytics, random JS garbage that Medium thinks is neat, and preloading gigantic images.

    9. 8

      kind of weird to say “please keep your blog light”, when your blog is dark

    10. 4

      Good write-up.

      “ I learned to exploit an XSS in order to bypass my monthly hosting quota, I learned that doing this would lead me to unpleasant consequences.”


      “No need to be delusional here, you won’t post regularly enough to make a dynamic website appealing :).”

      Make em keep it real. ;)

      “ keeping your blog lightweight is important, I show you how to design a blog fitting in less than 10kB.”

      Too bad blogs are on the web instead of allowing some kind of native tech or metaprogramming. If you want to one-up this that way, next you’d try to make it a REBOL application since they’re always bragging their apps are “2KB-40KB” or a certain number of “bytes.” For perspective, its successor’s [whole toolchain] fits in 1MB of portable code per their website. Nearly-ideal tool for authoring high-tech, tiny blogs with interesting content. :)

    11. 4

      Or you could go the phlog route. I did that as a lark. It wasn’t that difficult.

    12. 4

      I keep my blog and website light.

      The blog frontpage uses about 64 kilobyte of data, most other pages are under 100 kilobyte too. My homepage takes about 90 kilobytes (170 without gzip) including my analytics script (which uses up almost under 1 kilobyte in total). Both sites are responsive and readable on both desktop and mobile (last I checked).

      I prefer making and consuming such sites. Because for one, they are easier to preserve (a simple wget can preserve and archive the content effectively) and they’re also easier on my phone battery and on my local computer resources (medium actually is noticeable).

      Simple text websites with CSS should be enough for every blog out there.

    13. 3

      I’ve been trying to do this on the backend as well as the frontend. No reverse proxy, no complicated dependencies, no bullshit. The single file containing my blog engine is 183 lines long, most of that code for rendering the RSS feed. It feels good to just fire up a tmux window and run the single binary with no config.

    14. 2

      Some day, some way, I will go back to my blogging and I want to make it static, so this is another nudge in that direction. Just as a reminder: Static-gen - a list of top static site generates is a great resource.

      1. 1

        Sad to not see Blosxom on that list, although statically generated files are basically an afterthought for that system.

    15. 2

      One thing that would probably help if people could at least choose to eat their own dog food. You know, simulate the slow speeds that you’d experience on other parts of the world, over localhost.

      1. 2

        On firefox you can throttle the connection while in mobile view mode.

    16. 1

      Last step: use tools to benchmark. There are various speed test websites. They can give you additional tips. Maybe you can compress an image better for example or you forgot gzip compression.

    17. 1

      I like to keep my pages light in terms of speed but I feel no issues in including a nice high res cover image.