Battery used Battery charging

How to Build a Low-tech Website?

Our new website is designed to radically reduce the energy use associated with accessing our content.

First prototype of the solar powered server that runs the new website. The solar charge controller (on the right) is powering the server (on the left) through a USB-cable.
First prototype of the solar powered server that runs the new website. The solar charge controller (on the right) is powering the server (on the left) through a USB-cable.
View original image View dithered image

Low-tech Magazine was born in 2007 and has seen minimal changes ever since. Because a website redesign was long overdue — and because we try to practice what we preach — we decided to build a low-tech, self-hosted, and solar-powered version of Low-tech Magazine. The new blog is designed to radically reduce the energy use associated with accessing our content.

Why a Low-tech Website?

We were told that the Internet would “dematerialise” society and decrease energy use. Contrary to this projection, it has become a large and rapidly growing consumer of energy itself.

In order to offset the negative consequences associated with high energy consumption, renewable energy has been proposed as a means to lower emissions from powering data centers. For example, Greenpeace’s yearly ClickClean report ranks major Internet companies based on their use of renewable power sources.

However, running data centers on renewable power sources is not enough to address the growing energy use of the Internet. To start with, the Internet already uses three times more energy than all wind and solar power sources worldwide can provide. Furthermore, manufacturing, and regularly replacing, renewable power plants also requires energy, meaning that if data traffic keeps growing, so will the use of fossil fuels.

Running data centers on renewable power sources is not enough to address the growing energy use of the Internet.

Finally, solar and wind power are not always available, which means that an Internet running on renewable power sources would require infrastructure for energy storage and/or transmission that is also dependent on fossil fuels for its manufacture and replacement. Powering websites with renewable energy is not a bad idea, however the trend towards growing energy use must also be addressed.

To start with, content is becoming increasingly resource-intensive. This has a lot to do with the growing importance of video, but a similar trend can be observed among websites. The size of the average web page (defined as the average page size of the 500,000 most popular domains) increased from 0.45 megabytes (MB) in 2010 to 1.7 megabytes in June 2018. For mobile websites, the average “page weight” rose tenfold from 0.15 MB in 2011 to 1.6 MB in 2018. Using different measurement methods, other sources report average page sizes of up to 2.9 MB in 2018.

The growth in data traffic surpasses the advances in energy efficiency (the energy required to transfer 1 megabyte of data over the Internet), resulting in more and more energy use. “Heavier” or “larger” websites not only increase energy use in the network infrastructure, but they also shorten the lifetime of computers — larger websites require more powerful computers to access them. This means that more computers need to be manufactured, which is a very energy-intensive process.

Being always online doesn’t combine well with renewable energy sources such as wind and solar power, which are not always available.

A second reason for growing Internet energy consumption is that we spend more and more time on-line. Before the arrival of portable computing devices and wireless network access, we were only connected to the network when we had access to a desktop computer in the office, at home, or in the library. We now live in a world in which no matter where we are, we are always on-line, including, at times, via more than one device simultaneously.

“Always-on” Internet access is accompanied by a cloud computing model – allowing more energy efficient user devices at the expense of increased energy use in data centers. Increasingly, activities that could perfectly happen off-line – such as writing a document, filling in a spreadsheet, or storing data – are now requiring continuous network access. This does not combine well with renewable energy sources such as wind and solar power, which are not always available.

Low-tech Web Design

Our new web design addresses both these issues. Thanks to a low-tech web design, we managed to decrease the average page size of the blog by a factor of five compared to the old design – all while making the website visually more attractive (and mobile-friendly). Secondly, our new website runs 100% on solar power, not just in words, but in reality: it has its own energy storage and will go off-line during longer periods of cloudy weather.

The Internet is not an autonomous being. Its growing energy use is the consequence of actual decisions made by software developers, web designers, marketing departments, publishers and internet users. With a lightweight, off-the-grid solar-powered website, we want to show that other decisions can be made.

With 36 of roughly 100 articles now online, the average page weight on the solar powered website is roughly five times below that of the previous design.

To start with, the new website design reverses the trend towards increasingly larger page sizes. With 36 of roughly 100 articles now online, the average page weight on the solar powered website is 0.77 MB — roughly five times below that of the previous design, and less than half the average page size of the 500,000 most popular blogs in June 2018.

View original image View dithered image
A web page speed test from the old and the new Low-tech Magazine. Page size has decreased more than sixfold, number of requests has decreased fivefold, and download speed has increased tenfold. Note that we did not design the website for speed, but for low energy use. It would be faster still if the server would be placed in a data center and/or in a more central location in the Internet infrastructure. Source: Pingdom.
A web page speed test from the old and the new Low-tech Magazine. Page size has decreased more than sixfold, number of requests has decreased fivefold, and download speed has increased tenfold. Note that we did not design the website for speed, but for low energy use. It would be faster still if the server would be placed in a data center and/or in a more central location in the Internet infrastructure. Source: Pingdom.
View original image View dithered image

Below are some of the design decisions we made to reduce energy use. We have published a separate document that focuses on the front-end efforts, and one that focuses on the back-end. We have also released the source code for our website design.

Static Site

One of the fundamental choices we made was to build a static website. Most of today’s websites use server side programming languages that generate the website on the fly by querying a database. This means that every time someone visits a web page, it is generated on demand.

On the other hand, a static website is generated once and exists as a simple set of documents on the server’s hard disk. It’s always there – not just when someone visits the page. Static websites are thus based on file storage whereas dynamic websites depend on recurrent computation. Static websites consequently require less processing power and thus less energy.

The choice for a static site enables the possibility of serving the site in an economic manner from our home office in Barcelona. Doing the same with a database-driven website would be nearly impossible, because it would require too much energy. It would also be a big security risk. Although a web server with a static site can be hacked, there are significantly less attack routes and the damage is more easily repaired.

Dithered Images

The main challenge was to reduce page size without making the website less attractive. Because images take up most of the bandwidth, it would be easy to obtain very small page sizes and lower energy use by eliminating images, reducing their number, or making them much smaller. However, visuals are an important part of Low-tech Magazine’s appeal, and the website would not be the same without them.

By dithering, we can make images ten times less resource-intensive, even though they are displayed much larger than on the old website.

Instead, we chose to apply an obsolete image compression technique called “dithering”. The number of colours in an image, combined with its file format and resolution, contributes to the size of an image. Thus, instead of using full-colour high-resolution images, we chose to convert all images to black and white, with four levels of grey in-between.

A dithered image of our server.
A dithered image of our server.
View original image View dithered image

These black-and-white images are then coloured according to the pertaining content category via the browser’s native image manipulation capacities. Compressed through this dithering plugin, images featured in the articles add much less load to the content: compared to the old website, the images are roughly ten times less resource-intensive.

All resources loaded, including typefaces and logos, are an additional request to the server, requiring storage space and energy use. Therefore, our new website does not load a custom typeface and removes the font-family declaration, meaning that visitors will see the default typeface of their browser.

We use a similar approach for the logo. In fact, Low-tech Magazine never had a real logo, just a banner image of a spear held as a low-tech weapon against prevailing high-tech claims.

Instead of a designed logotype, which would require the production and distribution of custom typefaces and imagery, Low-tech Magazine’s new identity consists of a single typographic move: to use the left-facing arrow in place of the hypen in the blog’s name: LOW←TECH MAGAZINE.

No Third-Party Tracking, No Advertising Services, No Cookies

Web analysis software such as Google Analytics records what happens on a website — which pages are most viewed, where visitors come from, and so on. These services are popular because few people host their own website. However, exchanging these data between the server and the computer of the webmaster generates extra data traffic and thus energy use.

With a self-hosted server, we can make and view these measurements on the same machine: every web server generates logs of what happens on the computer. These (anonymous) logs are only viewed by us and are not used to profile visitors.

With a self-hosted server, there’s no need for third-party tracking and cookies.

Low-tech Magazine has been running Google Adsense advertisements since the beginning in 2007. Although these are an important financial resource to maintain the blog, they have two important downsides. The first is energy use: advertising services raise data traffic and thus energy use.

Secondly, Google collects information from the blog’s visitors, which forces us to craft extensive privacy statements and cookie warnings — which also consume data, and annoy visitors. Therefore, we replace Adsense by other financing options (read more below). We use no cookies at all.

How often will the website be off-line?

Quite a few web hosting companies claim that their servers are running on renewable energy. However, even when they actually generate solar power on-site, and do not merely “offset” fossil fuel power use by planting trees or the like, their websites are always on-line.

This means that either they have a giant battery storage system on-site (which makes their power system unsustainable), or that they are relying on grid power when there is a shortage of solar power (which means that they do not really run on 100% solar power).

The 50W solar PV panel. On top of it is a 10W panel powering a lighting system.
The 50W solar PV panel. On top of it is a 10W panel powering a lighting system.
View original image View dithered image

In contrast, this website runs on an off-the-grid solar power system with its own energy storage, and will go off-line during longer periods of cloudy weather. Less than 100% reliability is essential for the sustainability of an off-the-grid solar system, because above a certain threshold the fossil fuel energy used for producing and replacing the batteries is higher than the fossil fuel energy saved by the solar panels.

How often the website will be off-line remains to be seen. The web server is now powered by a new 50 Wp solar panel and a two year old 12V 7Ah lead-acid battery. Because the solar panel is shaded during the morning, it receives direct sunlight for only 4 to 6 hours per day. Under optimal conditions, the solar panel thus generates 6 hours x 50 watt = 300 Wh of electricity.

The web server uses between 1 and 2.5 watts of power (depending on the number of visitors), meaning that it requires between 24 Wh and 60 Wh of electricity per day. Under optimal conditions, we should thus have sufficient energy to keep the web server running for 24 hours per day. Excess energy production can be used for household applications.

We expect to keep the website on-line during one or two days of bad weather, after which it will go off-line.

However, during cloudy days, especially in winter, daily energy production could be as low as 4 hours x 10 watts = 40 watt-hours per day, while the server requires beteen 24 and 60 Wh per day. The battery storage is roughly 40 Wh, taking into account 30% of charging and 33% depth-or-discharge (the solar charge controller shuts the system down when battery voltage drops to 12V).

Consequently, the solar powered server will remain on-line during one or two days of bad weather, but not for longer. However, these are estimations, and we may add a second 7 Ah battery in autumn if this is necessary. We aim for an “uptime” of 90%, meaning that the website will be off-line for an average of 35 days per year.

First prototype with lead-acid battery (12V 7Ah) on the left, and Li-Po UPS battery (3,7V 6600mA) on the right. The lead-acid battery provides the bulk of the energy storage, while the Li-Po battery allows the server to shut down without damaging the hardware (it will be replaced by a much smaller Li-Po battery).
First prototype with lead-acid battery (12V 7Ah) on the left, and Li-Po UPS battery (3,7V 6600mA) on the right. The lead-acid battery provides the bulk of the energy storage, while the Li-Po battery allows the server to shut down without damaging the hardware (it will be replaced by a much smaller Li-Po battery).
View original image View dithered image

When is the best time to visit?

The accessibility of this website depends on the weather in Barcelona, Spain, where the solar-powered web server is located. To help visitors “plan” their visits to Low-tech Magazine, we provide them with several clues.

To help visitors “plan” their visits to Low-tech Magazine, we provide them with several clues.

A battery meter provides crucial information because it may tell the visitor that the blog is about to go down – or that it’s “safe” to read it. The design features a background colour that indicates the capacity of the solar-charged battery that powers the website server. A decreasing height indicates that night has fallen or that the weather is bad.

In addition to the battery level, other information about the website server is visible with a statistics dashboard. This includes contextual information of the server’s location: time, current sky conditions, upcoming forecast, and the duration since the server last shut down due to insufficient power.

To access Low-tech Magazine no matter the weather, we have several offline reading options available.

Hardware and Software

We wrote two extra articles with more in-depth technical information: How to build a low-tech website: software and hardware, which focuses on the back-end, and How to Build a Low-tech Website: Design Techniques and Process, which focuses on the front-end.

SERVER: This website runs on an Olimex A20 computer. It has 2 Ghz of processing power, 1 GB of RAM, and 16 GB of storage. The server draws 1 - 2.5 watts of power.

SERVER SOFTWARE: The webserver runs Armbian Stretch, a Debian based operating system built around the SUNXI kernel. We wrote technical documentation for configuring the webserver.

DESIGN SOFTWARE: The website is built with Pelican, a static site generator. We have released the source code for ‘solar’, the Pelican theme we developed here.

INTERNET CONNECTION. The server is connected to a 100 MBps fibre internet connection. Here’s how we configured the router. For now, the router is powered by grid electricity and requires 10 watts of power. We are investigating how to replace the energy-hungry router with a more efficient one that can be solar-powered, too.

SOLAR PV SYSTEM. The server runs on a 50 Wp solar panel and one 12V 7Ah lead-acid battery. However, are still downsizing the system and are experimenting with different setups. The PV installation is managed by a 20A solar charge controller.

What happens to the old website?

The solar powered Low-tech Magazine is a work in progress. For now, the grid-powered Low-tech Magazine remains on-line. Readers will be encouraged to visit the solar powered website if it is available. What happens later, is not yet clear. There are several possibilities, but much will depend on the experience with the solar powered server.

Until we decide how to integrate the old and the new website, making and reading comments will only be possible on the grid-powered Low-tech Magazine, which is still hosted at TypePad. If you want to send a comment related to the solar powered web server itself, you can do so by sending an e-mail to solar (at) lowtechmagazine (dot) com. Your comment will be published at the bottom of this page.


We’re hoping for people to support this project with a financial contribution. Advertising services, which have maintained Low-tech Magazine since its start in 2007, are not compatible with our lightweight web design. Therefore, we are searching for other ways to finance the website:

We offer print-on-demand copies of the blog. These publications allow you to read Low-tech Magazine on paper, on the beach, in the sun, or whenever and where ever you want.

You can support us through through PayPal, Patreon and LiberaPay.

The solar powered website was made by Kris De Decker, Roel Roscam Abbing, and Marie Otsuka. The printed website is made by Lauren Campbell.


To make a comment, please send an e-mail to solar (at) lowtechmagazine (dot) com. Your e-mail address is not used for other purposes, and will be deleted after the comment is published. If you don’t want your real name to be published, sign the e-mail with the name you want to appear.


Very interesting project! It’ll be interesting to see how well it holds up during the winter.

What software are you running on the server to keep the energy usage so low? (I’m mainly interested in the OS and HTTP server.)

I have a few ideas/suggestions:

I think it should be possible to reach much higher uptime by creating a network of nodes that all host the same set of websites. It wouldn’t be a very simple project, and you might argue that it’s not as lowtech anymore. But hear me out:

Say you have 5 “lowtech websites” each running on its own server (node), and each located in a different place on earth. You could then duplicate the content of each server to the 4 other servers. This only costs you extra storage. The servers only need to communicate with each other when the content changes. The energy/bandwidth cost of this communication should be negligible for static websites that are updated for example once a day.

The main challenge is the DNS. There needs to be some kind of load balancing between these 5 clients. A rudimentary solution would be to use round-robin DNS. Say you have and A record for that contains all 5 of the nodes’ IP addresses and a lifetime of 5 minutes. Every time a node detects it is going to go down in less than 5 minutes, it updates this DNS record: it removes it’s own IP address. Every time a node boots back up, it re-adds it’s own IP address to the DNS record.

I’m not an expert on DNS, so I’m not 100% sure that this would work. But I think it’s worth investigating if you’re thinking about improving uptime.

Obviously more complex schemes would be necessary to handle unexpected node downtime. Depending on the type of website this may be overkill.

About the images. I think you may have gone a bit too far in the image compressing. I see that most (all?) of the images on the grid-powered website or stored in the lossless PNG format. In general this is not a good choice for photos (as opposed to icons or other graphics with few colors): the file size will be much larger than when you’re using the lossy JPEG format.

For example: the main picture for this article is 739 KB in PNG

The dithered version in PNG is 43 KB, which is indeed a huge improvement, but comes at a big cost in image quality

The B&W JPEG version of the main picture (70% compression) is only 35 KB, and I’d say the image quality is much higher than that of the dithered image. (The image resolutions don’t match entirely. For the same resolution the image size of the JPEG would probably be more or less the same as the dithered image, but with increased image quality.) You could even lower the JPEG quality further than 70%, but this quickly becomes rather unpleasant to look at, so you may not want to do this.


Very interesting experiment!

But what about CDN caching and all other kind of caching between your server and each of the browsers?

It might very be the case that CDN will cache the content of this website for some time according to default cache policies, and also that the client’s browsers might also cache part of the website directly.

I’d say that having big caching time for the browser is a big plus, as it would still allow users to access previously accessed pages when they are down at no energy cost.

On the other hand, estimating network caching energy usage might be complicated.


“The design features a background colour that indicates the capacity of the solar-charged battery that powers the website server. A decreasing height indicates that night has fallen or that the weather is bad.”

So that’s what it is! It looks more like a glitch. I think it would be better to just add it to the header:

This is a solar-powered website, which means it sometimes goes offline. Battery: xx%

Some other minor issues (in Firefox):

The area you can click on links is some places longer than the text.

When the window is wide the images become too big and lines denoting cut-out text go much further out than the text, which looks odd.


Quite enjoyed the article, and am interested how you did the image dithering and coloring. Do you have a link that explains more?

Thanks, Alex

PS you could add a logo if you convert /create it in svg and embed it in the page.

Case D

I think it’s a really cool project. I’m a hobbyist website tinkerer with a blog, and I’ve been experimenting with CMSes (I just installed WordPress, but I think it might be too much for what I want to do – really I’d like a flat-file, static site that I can push to from anywhere (i.e., with a webform), which is what I can’t figure out).

I’m writing you because I was curious if you’d share how your publishing workflow works – do you have a CMS that you use? If so, how do you get from a web form to a published post? Is that how you do it?


Some thoughts:

RSS feed is missing!

jquery-3.3.1.min.js is the biggest file on your page, from the limited amount of JS I saw, it could be easily removed. you could cache the your in a separate js file, this would also prevent uselessly sending your script to browser that won’t support/accept it.

would you mind sharing the dithering script you apply to images?

I discovered LOW TECH MAGAZINE through this article and I’m really happy with the look and feel of the website! Keeping the default typeface is so rare nowadays and it works very well without JS.

kris de decker

Roel Roscam Abbing wrote a conference paper about Low-tech Magazine’s solar powered website: ‘This is a solar-powered website, which means it sometimes goes offline’: a design inquiry into degrowth and ICT.” Workshop on Computing within Limits. 2021.

George Dorn

@ Case D (#5)

Look into various static site generators, like Pelican, Jekyll and dozens of others -

They require a little bit of effort to set up, design the template, etc, but then whenever you want to publish, you run a command and it (re)generates all of the html. You can run the generator on the server itself, or on any other machine and just send the results to the server (somewhat automatically, via rsync, ftp, scp, etc).

I publish a blog this way via Pelican. I edit a file in reST (other languages also supported) and when I’m ready I run ‘make html’ and ‘make publish’ to send it to the server.


very cool. have you considered p2p/distributed web technologies like beaker browser?


Your site doesn’t load in Naked Browser on Android.

Ben S

It’s a cute idea, but please don’t dither your images.

One problem which you haven’t addressed is the increasing attitude towards web-pages as being “disposable”.

A good page, living on a sensible URL, could be available for decades if not centuries - but then, surely, there must also be a compromise made to maintain sources at the highest basic quality possible? What is worse that researching an interesting topic, only to run into photocopies of photocopies of a now lost technical drawing, which has become indecipherable over time. Dithering is basically this. You are an important source. Please don’t be a source providing photocopies of photocopies. I often find myself just grabbing screenshots and putting them into presentations or other documents. Ironically, this leads to a continual bit-rot as others do the same and screenshot my content. It’s surprising how many images in searches are clearly screenshots of poorly rescaled original images. Dithering will make this even worse.

I understand you’re trying to make a point - and there is a perverse value in stubbornly pissing into the wind, otherwise I wouldn’t enjoy low-tech so much and try to put it into practice myself - but please don’t let a low-energy perspective compromise on the real core of what you do, which is communicating excellent alternatives.

Edwan Summers

Thanks for this excellent post about a very important experiment. The adjustment around a website always being on seems like an important part of this work.

I’ve recently been experimenting with dat 1 which can often involve adjusting expectations about when content is going to be online or not. They have some nice instructions for publishing your static site using dat 2, which would mean that someone could potentially get your website from a peer who is sharing the cost of keeping your content online.

I honestly don’t know of what the energy costs associated with this are, but presumably the peers would only start to contribute traffic when content was requested. I imagine this is something the dat folks would be interesting in helping answer.

PS. I love the idea of doing web comments over email. It also makes me wonder if there could be static site plugins for supporting this process. Like running a Pelican/Jeckle/Hugo/etc conmand every day to examine an mailbox and look for comments on webpages. I guess there would be a necessary step of reviewing them too.

Damon Hart-Davis

My off-grid solar server:

You may also be interested in some of my tools to reduce page and image weight. (No ditherin:; zopfli(png) and similar in my case…)

Jeremy Keith

Hi Kris,

That’s an absolutely fascinating article! I really like what you’re doing.

You mentioned that you were looking for ideas. There’s a technology you could use that would allow people to see something from your website, even when the server is down: service workers.

As long as someone has visited your site at least once, you could show them something when they try to visit the site when the server is powered down. That could just be a simple message, or it could be articles that you previously put in the visitor’s cache (for example, every time someone visits an article, you could store a copy of that article in a cache to show them later when the server’s offline).

Usually service workers come into play when the user’s device isn’t connecting to the network, but they also apply in your situation, where the server isn’t connecting to the network.

I’d be happy to help you write the service worker script if you like.

Jacob Hall

Hello there,

I absolutely love this concept, and I hope this is where the world is headed; it simply doesn’t make sense to bloat the internet with so much needless data.

My first thought, which commenter Alex also mentioned, is that you may be able to preserve the “modern” look of your site by using .svg graphics for logos and some images (such as graphs). As cool as dithered images look, I suspect a .svg would have an even smaller footprint, and could greatly improve the readability of content such as graphs used in “How Much Energy Do We Need?”

Secondly, I’ve heard a lot of people say recently that the future of the internet is decentralization, with users “seeding” visited websites to future users to create a more efficient and secure internet experience. I believe that this concept would lend itself well to the ideals of low energy consumption, potentially providing backup should your server ever go down due to weather. I know it isn’t practical to implement right now, but I hope that is where the world is headed.

Thank you for the well-written and thought-provoking article.

Jeff Jahr

I like the old-timey dithered look of your images, and the way you are using the multiply blend to sepia tone them, that is very cool! However, if you want to have even lower page weight, then you might consider converting the images to grayscale jpg with a reduced quality instead of converting to dithered png.

Here’s a quick comparison using your original image, the dithered image that appears in the article, and a conversion to gray jpg using an ImageMagick ‘convert’ command.

zeppelin:/tmp> convert -grayscale RMS -quality 50 -geometry 800x600 6a00e0099229e88833022ad3b23825200b-750wi.png test.jpg

zeppelin:/tmp> du -bh 6a00e0099229e88833022ad3b23825200b-750wi.png sps_close.png test.jpg

739K 6a00e0099229e88833022ad3b23825200b-750wi.png

43K sps_close.png

28K test.jpg

The image (test.jpg) is 15KB smaller than your dithered one, and still looks good with your color blending method.

If you like the rough look that your dither gives the images, you could ramp the -quality parmeter down to 10 or so, and your jpgs will start to look rough and mottled too- AND the image size will be reduced into the 9KB range for even more weight reduction.

zeppelin:/tmp> convert -grayscale RMS -quality 10 -geometry 800x600 6a00e0099229e88833022ad3b23825200b-750wi.png test10.jpg

zeppelin:/tmp> du -bh test10.jpg

9.1K test10.jpg

Cool stuff, good luck with your web server!

Bill Daniel

I’m such a fan. I love your work, I only wish you published more frequently.

The low tech website is brilliant.

I would happily pay to get print versions of your articles.

I’d likely print the whole archive! I’m a paper freak. Film and paper-based photographer, book collector, and collector and archivist of a wide variety of paper-based artifacts.

As a media archivist I’m constantly railing against digital storage, on the cloud or on drives. The future is going to have a dim understanding of what happened in our century, since most of the evidence will be non-existent/un-recoverable.

Keep up the good work! I hope I get the opportunity to purchase some print on demand articles.

Drew Gulino

It might go against the spirit of what you’re trying to do with your solar web site, but users could go to the web archive of when it’s down (once it is archived; www. is already archived)

On the other hand, you’re not using ads, so you’re not out any money if users go to the archived site instead.


Like others have said:

Instead of dithering you can use JPEG. I can achieve 52.4 KB with the image of this post, keeping the colors (compressing with gimp, quality 70, artifacts visible, but if you ask me only to somebody looking for them). Sure it’s slightly more, but the image looks almost the same.

Also, since your homepage has a lot of images and might get lots of visits, why not thumbnail the images to a lower resolution? This might cut in half or more the size of the homepage.

Also embedded svg for the logo or other non-photographic graphics it the way to go (if embedded you avoid http requests).

Additionally, like already said, eliminate jQuery (or at least use the slim build, that eliminates some features, see here

Putting the computer outside in winter might help a bit with energy efficiency and cooling.

I am convinced this is a low-power website and I like the project, but it remains to be seen wether more energy could be saved in a data center where the computational resources are shared and they have proper cooling solutions.

Evan V

Just so you know, if you “snap to web colors” when exporting your dithered PNG you can get a similar aesthetic at an additional 50% size savings.

Mengyang Li

Yep, the JPEG format is much better in storing pictures than PNG, You can even use bpg to reduce size while maintain pretty acceptable quality.

Visual comparison

I think this is over engineered with a huge trade off on the image quality.

Leo Tindall

One potential way to reduce energy consumption while still retaining content accessibility might be to publish the site on IPFS, as I’ve done with my blog [1]. That way, people accessing the site help serve the site.


Job van der Zwan

So I checked the solar powered website images to the regular website images.

To my shock and dismay, TypeKit for some reason uses PNGs for photos. This is extremely inefficient: PNG really is only good at compressing smooth surfaces and gradients. Photos are a terrible choice for PNGs.

I made a test gallery to compare alternative options:

In my experience, and as shown in the above gallery, cleaning up the image first makes an enormous difference in compression size, and results in better maintained quality at extreme compression values. I suggest Darktable and GIMP:

Another conclusion that I would draw is that JPGs aren’t that bad.

However, if we insist on using dithered PNGs, here are some suggestions.

PNGquant is a lossy PNG encoder, which can be found here:

The downside is that it only supports Floyt-Steinberg dithering.

PNGs can also be losslessly optimized with optipng:

It is often even worth putting the output of GIMP and/or PNGquant through optipng for a few extra percentages.

Ivan Vandot

Love the idea, great job. For the even more low-tech site definitely remove jQuery and rewrite in plain JS part for the icon and weather.

A Baldo

Wow, this is good news! As one of your readers who lives in a passive solar off-grid home in northeastern North America, your new lower-bandwidth site loads wonderfully fast over my slow cell signal. I tend to browse in “text mode” anyway, for speed and readability on my little phone screen.

Because of my slow connection I have become painfully sensitive to the growing bandwidth requirements you describe, even to read the news. I rely heavily on the text-only NPR page and the text-only National Weather Service forecast page; in cloudy weather they are sometimes the only pages that DO load!

Glad to be able to add the solar version of your site to the list. It is an informative, entertaining, and practical resource (I am now a thermal cooker aficionado, thanks to you!)


PS I agree with Sofie that a simple text battery percentage in the header would probably be sufficient and more readable (when Safari isn’t already in text mode) than having the web page display battery status via background color.

Garve Scott-Lodge

Love the idea. Here are a couple of ideas which might improve the site further

There’s an easy way to shave a few bytes. The type=“text/JavaScript” attribute to the script tag is not needed on html5 pages like yours.

But there may be a more complex way of doing away with jQuery entirely.

All you seem to be using jQuery for is to pull in a JSON file with the current weather and battery stats. Your server is obviously creating the JSON file on the fly. If instead you created a small CSS file with the data you could pull it in instead, setting the attributes of the battery div and using the content declaration of :before and :after pseudo elements to insert words like “snowy” into your content. You’d need to ensure the CSS file wasn’t cached, either server side or using a little JavaScript.


Jeff Gnatek

hi there, curious if you have considered doing an inverted color scheme, so dark background with light text.(/ claims to have saved lots of watt hours for not being on a white background.

i love the magazine and look forward to reading more in the future

Sava Chankov

Great re-design, completely in line with the site’s topic! Reminds me in a way of Fidonet, a lowtech computer network that was popular in early 1990s, before the Internet takeoff. It was ran by volunteers, who ran bulletin board systems that dialed automatically each other in the early morning hours to exchange emails, which took quite long to travel on it compared to the modern email.

Jan Steinman

YAY! You guys are my heroes! I’ve been wanting to do such a thing for some time.

One of the fundamental choices we made was to build a static website. Most of today’s websites use server side programming languages that generate the website on the fly by querying a database. This means that every time someone visits a web page, it is generated on demand.

But wouldn’t caching deal with that?

We run a MediaWiki server on a Mac Mini, and are running memcached. About 90% of page requests end up being served by memcached, as far as I can tell. And with an SSD behind that, there isn’t too much energy penalty for a cache miss, anyway.

Nicolas Huillard

@Kris “due to the fact that the router is not yet solar powered”

Yes, make sure that everything needed to connect the server to the Internet (on your side) is solar-powered. Not powering the router, ONT or anything else from the sun is cheating ;-)

You should be able to switch off the grid in the house and still see the lights blink…

Having a nice RRD dataset of the information provided in /api/stats.json, and generating graphs from it would be very educational: we could see how the battery drains in the night, probably faster in the evening when lots of people browse the site, then less so in the middle of the night. We could notice when solar production starts in the morning, offsetting the drain from the server, then starting to charge the battery, and produce a lot of surplus at solar-noon. We should also see seasonal variations and how they’re strong.

I use 5 minutes resolution RRD for a few days, then ~1h resolution for a full year, then store nearly daily data for a few years. The problem with RRD is that you must predefine everything at the beginning. The positive side is that it’s very light, and suitable for the hardware you have (just take care of Flash wear, probably with tmpfs synchronized with Flash at intervals, or a kind of in-memory RRD server which will store the RRD file at intervals).

(I post on the heavy-website, in the hope that it may reduce your hand-work. You may decide to redirect from the old site to the solar one ASAP, not until you have solved the differences in URIs : old /2018/09/how-to-build-a-low-tech-website.html vs. new /2018/09/how-to-build-a-low-tech-website/ ; we should be able to replace www. with solar. in the addresse bar and get the same article, not a 404 - nothing a tiny rewrite in nginx couldn’t solve)


You did a really great job here. Improvements are always possible (and welcome) but hey guys, that’s what I call a redesign!

Glad to see some folks showing us the path.

Laplace Victor

First, I’m a huge fan of your solar project !

I’m a front-end developer and I see some improvements :

  • as mentioned in other comments you can easily remove jquery (or at least use the CDN version it will be less ressource intensive for your server) and as I like your project, I rewrite your code in vanilla javascript (let me know if you have any issue)

  • images have width 100%, this is ok for mobile but not really on desktop, as your images max size is 800px, so I think you can add this style : .entry-content p.img{ max-width: 800px } it will be less pixel to render, so less energy consumption for visitors.

  • also mentioned in other comments, PNG is not the lightest image format, you can have almost the same weight and preserve colors with jpg (or even webp)

  • you can “minify” images. All images comes with metadatas, those datas are not necessary for displaying image on the web (ex for sps_close.png 40.172 bytes vs 43.415 bytes for original). Have a look at

  • you can lazyload images. Don’t use the technique using ‘scroll’ event as it’s really ressource intensive for visitors, prefer the Intersection Observer API

  • you can also improve browser caching to limit reload of assets

  • you can also replace images cloud, sun in footer by unicode characters,

That’s it :)

Paul Ito

First of all: I love your website and wish I had come across it much earlier.

The article on how to build a lowtech website was super inspirational and sparked (re-sparked?) my interest in building a website with easy and low-impact tools.

My comments on the project:

  1. I would love if you would give direct IBAN bank account information if in any way possible. As much as I respect the mission of donation tools like patreon and librepay, they do take their cut from the donations. The most direct way to support your product and your mission is monthly payments directly to you. I understand that this is only free of charge if your supporters happen to have an EU bank account with IBAN/BIC, but it would be worth at least giving readers the option to support you in that way.

  2. I am not a big fan of the yellow battery indicator that is (as of right now) splitting the screen in half. This feels gimmicky to me and is distracting my attention from your great articles. (Very much personal preference of course)

  3. In addition to other people commenting on the use of dithered images, you might consider hosting more hi-res (jgp?) versions on the server and linking the dithered images to them. That way people who want the better picture quality can have it, without everyone having to load articles with heavy images in them.

Keep up the great work, I will definitely come back more often!



Frederik Van Der Veken

Excellent project!

I love the idea of a static, non-always on website.

You’re making a fair point, and I agree we need to make a mental shift in what we expect from the on-time of a website.

However, I have some issues with the images.

As some people already mentioned, the dithering really lowers the quality a lot, while a lossy compression could achieve the same file size but with better quality.

Another issue is the black-and-white. This is indeed a smart thing to do as it saves a lot in file size, however, you have to make sure that your article does not depend on the color in the image..

E.g. in your article on the high-speed trains the original low-speed train route and the newer high-speed train route between Paris and Amsterdam are shown on a map in different colours. Of course both look the same in black and white and the distinction is lost. Maybe you could solve such issues by make one of the lines dashed?


Kris, I am cuban reader that become crazy with the cool low tech website

Could Low Tech design and host low tech websites for a fee, that contributes with the magazine?


Just wanted to say absolutely fantastic project - I will be watching this develop and plan to use your example as a template to follow in a website I will be building in the next year or so. The work you are doing is so important - thank you!

Geoffrey Tolle

I haven’t had a chance to read all the way through your latest article (and won’t understand most of it when I do) but I did catch one point that I thought worthy of consideration in the design of your energy storage system.

I see that you chose to use lead / sulfuric acid batteries as your battery back-up. May I suggest that you consider switching to iron-nickel batteries. It may be that I’m preaching to the choir but, in case you haven’t heard of them, iron-nickel batteries are a proven if bulky rechargeable technology. They use alternating iron and nickel plates (relatively cheap) in a basic electrolyte to store energy.

They are rechargeable hundreds of times, have less toxic waste products, and are very durable. They have a slow charge and discharge rate but should present few problems for powering low-tech websites. While the units can be quite expensive, they are also amenable to home-production (something that anyone who can assemble a low-tech website should be able to handle).

Well, even if I don’t understand the exact nature of this technology, I feel that the possibilities and the look into energy cycling will be helpful to me.

Roel RA

@ Ploc, Jan Fabry,

It seems indeed like a good idea to do the GZIP pre-compression as a step in the generation process. I’ll look into this. Thanks for the tips.

@ Dave,

The whole set up, including the webserver, is described here:

I think both Apache and Nginx are quite suitable for small websites. They are particularly good to use when learning about selfhosting, since there are many articles online about these softwares.



Tomasz Jadowski

Yes, grid-powered router is the weakest part of this project.

Have you ever heard about mesh networks and Hyperboria project?

When you setup a hyperboria node you could backup your internet connection

with Wi-Fi, GSM or another link and powered them by solar.

The cost is access only via hyperboria network when a grid is off, you could run both versions

(for “normal” IPv4 and for Hyperboria mesh) simultaneously.

I don’t know how “expensive” in CPU and power is to run a Hyperboria node.

Good luck! I love this idea!


Your new solar site is fully accessible from not so powerfull client like old pcs and old tablets with poor hardware and obsolete OS. The regular site makes the browser of my 6 years old tablet to crash but the solar one is perfect ..and faster. Static sites are increasing the life of all clients.

J Campbell


This is so cool.

I have always thought static websites are the best when your content is just pictures and words. Even the old image rollovers can be fun and generate a little interactivity. But I especially like the dithering idea. I use dithering as an artistic tool for some of my works because I find the dot pattern generated rather pleasing to look at. I also play around with the number of colors and swap colors used in the images. Photoshop’s “Save for Web(Legacy)” tool is where I play with images and dithering. I find the diffuse style of dot pattern the most aesthetically pleasing.

Another energy saving concept is that of a black background. When displayed on users devices it required less energy. But it’s a significant change to the site appearance.

I just wanted to let you know that this is a fantastic idea you have and it gives your website a palpable quality that does not exist on any dynamic webpage.

Joel Mikulyak

I’m a front-end developer, and just wanted to state that I completely love your decision to go low-tech and energy-efficient with your site. If you have any other great resources on the topic, I’d love to read more.

Marie Otsuka

Hi all,

I’m Marie, and I’m one of the designers / developers of the website. Thanks so much for your feedback! As Kris and Roel have mentioned, it somehow got out before we were quite ready, but it’s been amazing to hear all of the responses so far. We’d planned for this platform to provoke discussion, so we’re excited to get this jumpstarted.

A large part of the challenge of this project was balancing functional decisions with the design concept. Often, we opted for the more radical option so that this design questions our current aesthetic expectations. To chime in:



Certain images are better suited for other forms of compression. But our goal was to not only compress images, but also to call to attention this act of compression.

We found that dithered images can be stretched beyond their actual image size while providing a distinct aesthetic, and that the artifacts of compression can become an integral part of the design.

(Along those lines… many sites produce multiple images for different sizes appropriate for various display sizes. We opted to use the same image file for both thumbnail and featured images to prioritize the caching, even if it means that the listing pages may be a bit heavier.)


Inline SVG definitely makes sense as a lightweight graphic form! (They’re actually used for the social media icons already.)

I also agree that the legibility of graphs can be improved with SVGs. But we’d need to convert the given raster images we have of these graphs into a vector format — which, if done automatically, would end up producing a super heavy SVG file. What would be ideal is for any informational graphics to be readable and text-based, with svg/css-based shapes, which we unfortunately currently don’t have the capacity for within our workflow. But definitely a problem to address!

Using an SVG for the logo is a good practice too, which I’ve actually seen done well on many sites. But once defined, that logo would have to be preserved on any platform, not just on this website — whether publishing in print or web form. That file would need to be sent around as an asset for any marketing needs. Again, we wanted to question what it means to create a “brand” identity.

We also played with Unicode for the weather icons, but found that the way they displayed (especially more non-default characters such as “windy” or “clear night”) were too unreliable. We’ll work on better sizing/compressing these though! Also, more improvements are coming to the battery indicator / dashboard / weather page!



As Roel mentioned, removing jQuery is in the plans. Thanks to all those with the tips! We thought about doing some more research on potential browser compatibility issues the library helps take care of, but looks like it won’t be an issue.


Service workers for offline reading is something I’ve also been doing some research on! We’re looking forward to further develop how caching might fit into improvements for the site.

Thanks again for all of the comments!

And we appreciate your patience as we work through some kinks.

More soon!


I’m a longtime reader and fan; I just wanted to let you know that on Firefox 61.0.2 on Mac OS 10.13, the website has a huge semi-transparent yellow box over the lower half. I think it’s a sun-meter or a battery-meter.

I’m not sure whether it’s deliberate or if it’s a bug that is causing it to cover all the text on the page. If it’s deliberate, I just wanted to let you know that it makes it almost impossible for me to read the page, it’s super distracting. I’d love for it to be just a thin sidebar or something in a top scrolling navbar sort of thing. Having something overlaid on the text like that basically renders the website unusable for me.

Thanks for all the work that you do, and the new server sounds really cool!


First off thanks for introducing the world to your website, absolutely love it. I’m new to reading your site, but I assume low-tech is not at the exclusion of clever solutions (which IMHO is where the fun starts). The capability of low cost hardware means that there is a huge amount of potential in even the most basic setups.

It is a very neat idea and I think it could be a very useful concept which could also be applied to many situations where internet access is difficult or limited. In some cases a link to the internet may not be possible, so localised hotspots could also be used. This could be in developing countries, areas of natural disasters or even war zones. Allowing vital information to be broadcast, from medical information/advice to emergency assistance, lost/found persons to providing educational resources. Potential website-in-a-box?

This could also provide an excellent project for schools for teaching.

With regards to the site as a technology news site, I have several observations (none is intended as criticism):


I agree the dithered styled images are a nice design feature and adds a real charm to the site, particularly the colour categories flowing through to the article. However, you are right to concede that certain images don’t lend themselves well to this treatment - ie. your web page speed test image. For diagrams/tables etc SVGs or similar would allow technical details to be read clearly, even if you apply the same grayscale colour mapping (if feasible).

Power bar:

Although I don’t think I have any particular sensitivity to colours, I do find the colour hue across the article very distracting when trying to read and absorb the content (people who are particularly sensitive to this - often a characteristic of neurodiversity - will find it even harder). Perhaps consider limiting the overlay to the home page only, or (if feasible) to the article header bar only. A nice feature would be to have a day/night theme so people can select a contrast which is best for them - ensuring the site is accessible to a wider audience (and as someone else commented an added bonus OLED devices will use less power).


I do agree with the principle of 90% uptime, and it underlines the whole concept - adding additional panels and battery/storage, like you say, isn’t the point. However it would be interesting if you can determine if the downtime is likely to be off-peak or not. Clearly for yourselves and your readers within +/-2-3 hours GMT their peak times will be very similar and may well be a good fit to the site availability. A study of loading before a downtime could provide an indication of if a certain group of readers are inadvertently being excluded (due to geographical or demographical reasons). Longer term it may be possible to characterise the charging and the loading to allow the site to predict the best times to go offline in order to meet peak times (and provide forecasted downtimes during off-peak periods). I’m sure that would make an interesting project for some students looking at machine learning.


The multiple site location concept does introduce some excellent possibilities, since even one similar site elsewhere in the world could provide complete coverage with additional redundancy, while reducing overall power needs by sharing the serving of multiple sites. This does complicate the setup a little but it does provide the opportunity to grow the idea further. This could perhaps provide the opportunity to scale down the setup with smaller panels and battery. As mentioned before this could have very useful applications for the website-in-box concept where multiple setups could be meshed to cover an area.

Energy storage:

I wonder how feasible alternative energy storage systems would be. It would be interesting if eventually you could replace the need for the batteries completely by using kinetic storage or similar (I claim no knowledge on how practical this is and probably is not suitable for your setup).


Great site, but what software did you use to generate the site?

You’ve given hardware details but no software.

peter garner

I’m truly inspired!

I’ve already been running my web site on a Raspberry Pi for a couple of years now and it’s proved very economical. This morning I’ve managed to get my home page size down from 225Kb to 7.5Kb just by getting rid of “decorative” images and reducing the size of others. I found that some page loading speed can be recovered by using sprites, assembled using glue-sprite.

If you didn’t want to serve images on-the-fly a potential low(er) energy option is to use a Gopher server. I also run one of these on a low-power Raspberry Pi and it’s very effective for serving documents of all types. I know it’s an old protocol but according to a recent survey there are 333 active gopherholes (servers).

I plan to start setting up a solar-powered web/gopher server soon, but as I live in Yorkshire, UK, my sunlight hours are not quite as good as Barcelona!

Thanks once again for a brilliant idea - it’s the future!

Craig Balfour

My name is Craig. I’m a big fan of what you’re doing with the Low Tech Magazine, and I love the idea of a solar powered website! The newsletter asked for feedback and suggestions, so I had a look if I could come up with any. This is all pretty rough, so I’m sure I’ve missed stuff, probably with responsiveness etc.

Anyway, this is my feedback:

Make battery meter a lot less in your face

Love the idea of the battery indicator, but it’s so distracting when reading! When it’s low it also visually breaks the content and makes anything in the battery indicator look like a footer. Here’s how I’d change it:

Align it right, not left.

Make its width something like 64px so it’s just a bar at the side (in the new whitespace)

Move the top border from the content to the battery div so it covers the top nicely.

Lessen the “intensity” of the black on the readout. I found something around #333 to be quite nice, but just play around and see what looks nice.

Also, when at smaller screen sizes, reduce it further and don’t bother with the icon, and maybe even the number.

Centre content

Wrap your page in a div with margin: 0 auto; max-width 960px; or something like this to keep it in a nice tidy column on the screen. Otherwise it looks a bit like a newspaper and is hard to follow.

Font family

Really not a fan of the serif font. Nothing wrong with Arial and co, or maybe even a mono font to get that typewriter feel? Idk. I think just the normal sans. This won’t increase network traffic, since it’s not sending fonts.


I have changed the page layout from using lists to using divs with display:flex. It’s pretty powerful and a lot more flexible than ul. I think it will make life easier, and it’s much easier to get decent spacing around things like the nav.


I do think you need a logo. A simple SVG is pretty tiny, and it makes the site look heaps more professional. I made a quick one, but use whatever (use that one if you want, or make your own, but I think it needs something!)

Sky background

I stuck a simply CSS gradient as a background to resemble the sky (since it’s solar, it seemed nice). Not sure I like the gradient, but whatever. I did wonder about changing the background gradient by time of day. So at night where it’s hosted, it would have a black background, then moving into yellow then blue as the day goes on. Only on the body background, not the content background or it would just be annoying. But it shouldn’t be too hard. I think a gradient of black through yellow to blue scaled to something like 5000vh then offset based on the time. Shouldn’t be much Javascript. Might look super ugly or distracting though, so not sure it’s worth it.

Image sizes

There’s one image I found called sunnyday.png which is displayed at width 20px, but the image itself is 800px wide! This is not good. It’s a simple BW png so it’s small, but a simple SVG is still less than 10% of the size. Further, if you’re displaying images small on some pages and big on others, save two copies and only send the small one if you can. Storage is cheap, bandwidth (for you server) is not.

Minify agressively!

Ok, so I know how much we hate inlining, but it has its place. Not at the element level, but on the document level. The size of the files being sent is important, smaller files use less energy. However, the number of files is worth thinking about too. Sending a bunch of small files results in a server call per file, which can add up. Having a working copy of the site with all its separate files is a very good idea for building it, it’s SO much easier! But for the published one, I would think about minifying everything and putting your stylesheet contents in a style tag, using inline SVG for icons (this is a tradeoff, since they are duplicated when you use them again. And doing the “use” trick is not a whole lot better because it sticks them in an iframe-which means you’ve got another request anyway. But for small, one-hit images you could base64 encode them. For icons, make a stylesheet for just these and base64 encode the SVG itself, which is very small and doesn’t require hitting the server again.

I minified my version of your homepage to be one file which includes your original css, my overrides, the html itself, and the logo image as a base64 encoded svg. The whole thing is 41kb and loads instantly. It would only be one request to the server (the images on the page would all be their own, but there’s not much you can do about this. Base64 encoding them would make them larger, so best to leave as is)

Also, you’re using jQuery. I would avoid that tbh. It’s a pretty big library, and all you’re doing is reading some JSON data, which you could do in a similar amount of code without needing to import jQuery at all. Until you rewrite that function, why not hotlink jQuery from a CDN? It will save your poor little solar server from transferring it each reques.

Don’t hold open connections

Your script for showing battery percentage etc holds an open connection the server. I get why you did, but I think until you’ve got your power problems sorted, just query it on page load, then close the connection. Just fire and forget. Otherwise your server is maintaining a heap more connections than it needs, wasting power.

With something like this, you want your server to be doing as little as possible while still working. So anything the browser can do for you is fantastic. The use of image filters etc you’re doing is really great! Keep that up! Same goes for Javascript. So many effects can be done by the browser with some clever CSS. Try to avoid animating etc with Javascript when CSS will do fine. When you do need Javascript, try and avoid jQuery and other large libraries.

Also, when you are querying things like the weather JSON data, where are you getting that from? Can you hit that directly rather than storing it on your server then hitting your own server?

I know this seems like a lot, I hope it doesn’t come across as arrogant or like I don’t like what you’ve done. I am so impressed! I wish I could build something like this tbh. Just trying to throw some ideas around, and they hopefully some help. You’re more than welcome to use any of my suggestions or code, or simply throw it all away.

I tried attaching my modifications etc but google doesn’t allow sending zip files, so here’s a drive link.

If that link doesn’t work I could try sending loose files.

I’ve also attached some screenshots just because it’s easier to glance at them quickly.

All the best, and hope some of this helps.

[Craig, thanks a lot, I hosted your screenshots on Typepad otherwise the colours won’t show, KDD]

Posted by: Craig Balfour | September 28, 2018 at 04:29 PM

Premkumar Masilamani

Hi Team - I am impressed with the solar powered website running from the home. Congratulations. I disabled comments on my blog and used a contact form to let the visitors send a message to me. That was one portion of my blog which is hosted elsewhere. Your idea of asking the users to send email to get the comments is really well thought of. I am going to implement that in my blog.

  1. How feasible is it to put the email address on the webpage?. Are you net yet spammed?. Are you doing something on this front?.

  2. How are the emails converted as blog comments?. Is it a manual conversion or automated? If automated, could you tell us how?. I would like to implement that in my blog as well.

Hans Fast

Many congratulations on taking this step: making the statement, showing that it’s possible and even extremely attractive to build a website without all the weight we’ve come to accept. Loading this website is like a breath of fresh air. And your server performance under peak load speaks for itself!

It’s clear that you’re doing more than publishing a website, it’s a demonstrator of the energy usage involved in serving a site. Respect for that.

I would like to mention dat and Beaker browser again (mentioned at least once above). While making a point of letting the website go offline when the battery is empty is a powerful educational move, the various peer-to-peer protocols all overcome this limitation of the http model (I’m only familiar with dat). Publishing over both http and dat simultaneously is fairly straightforward and maintenance-free, so it adds little overhead. Then everyone who views your site rehosts it: if your server is offline, others can still access it via those peers. No need for the solar panels and battery or even the server, you can publish from your laptop. Even more (embodied) energy savings :)

Of course, this is only practically true once all browsers speak peer-to-peer protocols .. and I believe a server is still needed for DNS resolution (so people can find the dat archive that belongs with In the meantime, fantastic work of public education going on here.

iří Maha

Hey guys,

love your project of low energy consumption website.

I have a two questions:

Any use of versioning system for development? If not, how would xou scale such a project?

How do you deploy? Simply copy files manually?

Thanks and cheers from Czech republic,


Nikolaus Bartke

Wow, fantastic project, I‘m in love!

I really like the literally spoken „background information“ about energy and weather.

This makes a big difference in perception and creates awarenes in several respects!

Pertaining the comment section, perhaps you can publish a timestamp, like when the mail was sent…

Kris De Decker

Hi all

Sorry for the late reply and delayed publication of the comments.

We will address all feedback in a forthcoming article.

Greg Melton

Many thanks to all the work that has gone into this site. On a personal level, it has inspired me to take up something along the same lines.

I’m not a technical guy, but I did notice that loaded quite quickly even over a dialup connection. Image dithering may have played a role in the fast load time and perhaps it also requires less cpu power to present the image

in the browser. Power savings at the server and the browser.

Although it is most likely not compatible with the goals of

Lowtechmagazine, the Gopher protocol, I understand is also much less energy intensive. Perhaps a gopher server on the same machine could serve up a Gopher version of Lowtechmagazine.


Hi there,

I love your solar powered project. Fantastic post about it too. One thing I noticed is that your dithered images can be even smaller file sizes if you run them through the tool at - I tried out a couple and it shaved 3-5kb off each image.

I’m a designer/dev and even though there are lots of ways to squish images in gulp, photoshop and many other tools, I’ve found that the tinypng tool works brilliantly, there’s even a CLI you can use.

Just to clarify, I have no links to tinypng, I just really rate their tool.

In my job, I make a lot of static sites with lots of javascript scrolling effects and images so I’m always squishing and minimising to optimise performance but I’m still dealing with quite large page sizes so it’s great to see optimisation really pushed to the limit.

I think it’s a really interesting project. I work in the news industry so taking pages down to the bare minimum is a really interesting idea, especially when you’re disseminating essential news in countries or situations where internet is sporadic at best.

Fascinating stuff and I can’t wait to read how the experiment progresses.




Hi, I saw yesterday your solar website (via Hacker Newsletter), amazing experiment: probably if half the web would save on bandwidth the world could be a better place.

Just a note, the dithered images are a nice hack but on my full HD screen are streched to the border and I think they would look better if you put a maximum width at 1080 px, also because the text doesn’t reach the borders (good) and the images are 800 px wide.

I subscribed the RSS feed, you have some nice articles there but I’m really curious how your experiment will evolve. And also you let me think about the option to migrate my personal site from WordPress to a static generator like HUGO.

All the best, Brando.

N Bennett


I just read your article on your new web-server approach. Besides your technical implementation, I really liked the way you reduced the web sites data footprint. It is so refreshing to see a website that concentrates on content, and is not overloaded with cookies, banners and whatsoever content I had to ignore otherwise. Websites nowadays are so overloaded with functionality and advertisement, which distracts from the actual content of interest. Thanks! I think, others should follow your approach as well. Clean, nice, and slick.

Leon Stafford

I’ve been a happy subscriber to Low Tech Mag’s newsletters for many years now and so glad to see web hosting addressed here, as it’s also my nice product at the moment. It allows WordPress sites to be published as static websites, perfect for then serving on a raspberryPi, as some users have reported doing. Depending on the size/load of the site, you can also generate it on the Pi, but I’d keep that stripped down as much as possible and just do static file serving from it. Almost every Pi owner has another computer that can run their WP site for the development part.


You guys are awesome! I’ve been following your blog for quite some time now, I think the first article I read was the one on velomobiles. As an IT student and sustainable, low-tech living-minded individual, let me tell you that your article on a low tech internet rang close to home. And now that I see that you’re working on an actual low-tech website, I can’t help but offer a helping hand. I’ve got a few ideas on how you could make comments work in an computationally-efficient manner, and how you could further trim down on page weight too, so anyways, hit me up if you could do with an extra pair of hands on board.



I saw your article on the sustainability of solar power [1], and I believe your argment is a bit off.

Yearly insolation for PV purposes doesn’t vary as much with lattitude as you think, at least judging by the use of GHI in the article, which is very unfair to any installation outside 30°N-30°S or so.

A more fair estimate is to use global normal irradiance (GNI), weighted by how much power loss is expected due to imperfect pointing [2]. If I do this for the solar installation I’m currently building I come up with the number 2500 kWh/year, for a 2750 W installation, based on data from the Swedish Meteorological and Hydrological Institute for my location.

Whether this pans out remains to be seen, so take these numbers with some reservation :)

There’s two other problems near the poles however: fewer sun hours in winter, and the distance between rows must increase. The latter isn’t a huge problem since land is much cheaper than PVs. The former is nicely covered by wind power, which is more plentiful in winter (but turbines must be quite large to be worthwhile).

Apart from this I think most of your points are valid.

Using nuclear power to produce PVs is something I’ve suggested to some environmentalists, and reactionaries pretending to be environmentalists, and neither of those have wanted to hear it.






I agree the “battery meter” is not clear. The battery is around 90% now and I kept wondering why the “white header bar” didn’t scroll off with the top of the page. I read near the top of page and I hate the visual distraction (on all websites). If the battery was 50%-80% I think I’d close the page. :/

Why don’t you make it 5-10em wide on the left or right so that it will (most likely) fall outside of the text column?

Or better yet make it a thin horizontal meter at the top or bottom?


Hi there!

Very impressive project, especially in today world of overkill. And thank you very much for detailed instruction, I was planning on doing something similar myself on RPi.

But I have one question about storage: you mention that you use SD cards. How long do they last for you? I had two cards die on me that were used as system storage on Pi. If yours last better would you mind telling me which ones do you use?

Best regards, Nick.

Rick Canfield

Hello Kris,

Really love the design and mentality behind the website, I think it’s the start of a new trend for all potential eco-friendly sites in the future. I can picture a coalition of energy saving sites existing with their own badge of honor.

One thing I’d like to suggest or ask about, and maybe it’s something you guys have looked into, but whether inverting the site (dark background and light colored text) might not save more energy? I recall Google having an energy saving day many moons ago and they inverted the Google homepage to black for a day, saving a significant amount of power.

I use a plugin Google Chrome plugin called Dark Reader, which helps invert the color of pages in a readable manner, more for the sake of reducing fatigue on my eyesight.

It doesn’t make much of a difference with LCD screens, but would with CRT and OLED screens, (which OLED may be the way of the future). It may be good practice to start with.

I’m just wondering if this something you all have considered. I commend the extensive endeavor, creating rare and unique online experiences I believe enhances authenticity.

Abraham Palmer

You might have heard this from others but there are many peer-to-peer and synchronization type of technologies that align completely with your goals. It allows people to share the hosting. The technologies haven’t crossed over to critical mass, but do appear close. I follow things like Holochain, DAT project and Beaker Browser, IPFS, and Scuttlebutt. You have already done all the hard work and so any mostly available can be replicated now globally with very low total energy usage. I need to get my own website and cloud hosted application converted over to one or more of these. I’m sure the extended community will be happy to help further if you need it.

Ander Gomez

I’ve seen that you used Armbian, that’s a good choice.

Did you consider Alpine with the lbu mode? (r/o image with commits made from the user with “lbu commit -a”, will all the new stuff is written back to the sd image, which is the rootfs.

optipng can optimize PNG images without losing too much quality.

Finally, thanks for your low-power site inspiration :D


Your website is really excellent, bravo! And it is nice & practical to follow the rss. Just one (small) regret, there are no social links (you know, images where you may click to “bookmark” the page), on twitter (I like), facebook (I hate) or other social media.


Dear Lowtechmag Team, hello Kris,

First of all thanks you very much for this really nice and interesting piece of work. I find it quite inspiring – and also a bit discomforting as it does push the what-is-possible quite a bit and is therefore making my everyday life (in big IT) definitely not easier. ;)

Recently I‘ve had the chance to dive quite a bit into Progressive Web Apps (PWA) and Service Workers and while a lot of this is just hype (in my eyes), one thing struck out: with PWAs it is possible to make websites offline capable and cache resources in a way that goes way beyond Cache Headers in HTTP.

I would like to explore this in the context of your website and for that already cloned you theme on Github and had a look.

Of course it has turned out that things are not as easier as they seemed (because I have to learn how to setup pelican with your theme and plugins first) and so, before wasting time, I wanted to ask you if this would be of interest for your project?

If yes, I would create a well documented Pull Request on Github and leave it up to you to decide whether or not you find it worth to merge it – but if you know this is nothing you would consider I would much rather not invest the effort. :)

Please keep up the great work and publish more inspiring articles!

Best regards from Berlin


Andy Jacobs

I love the idea that you’re pursuing with the server and it clued me in to some great resources for open-source hardware and related projects.

A couple thoughts on the comments section (and community). First, there are ways to accept comments, store them in git, then rebuild the site. Check out which is designed for Gatsby.

Secondly, there is a burgeoning movement called IndieWeb that allows people to comment, like, or RSVP to your posts from their self-hosted website. Your site can be notified using a “webmention” so that you know they’ve commented via their own website. Webmentions work a lot like trackbacks, but have some cool new features.

Somewhat related ideas: how does hosting on IPFS or Dat align with your goals? In that way, the static resources are distributed among nodes, and would still be available from the mesh if your node goes down.

Keep up the good work! Someone turned me on to your work from the Scuttleverse.


Like the solar website layout but I agree that your site would use fewer resources if it was run on a cloud server. Modern cloud-based systems are very energy efficient. When no one is visiting your site you are still using power waiting for a request. On a cloud, that system is serving someone else’s site. Second, your solar powered site is not low tech. ARM-based SBC running Linux using PV solar is anything but low tech.

I find it kind of funny that some of the same things you are using today I used 20 years ago when I wrote my companies website. I was obsessed with making it work well over dial-up and used a lot of static pages. For example, I had a directory of people looking for work. It was a static page that was generated when someone added an entry.

The dithering is kind of cool and retro looking but just not really worth it for informative sites.

christian weber

Hi Lowtech<-magazine Team,

Great work with your new solar driven web-server. Even when my SBCs are mostly a bit more power-hungry, I like the concept of max out an A20. ‘Featured’ in the forum now. :)

I would love to see a short sum-up tutorial here as well (if time allows it):

You might get some hints when posting it again there how to improve consumption even more.

Benjamin Henrion

There might be a way to consume way less energy would be to use a mix of an openwrt router as an HTTP proxy caching the connections, and waking up a more powerful device, such as an Allwinner A20 board. Some Allwinner boards have a PMU chip that is well supported on Android kernels. But last time I looked at, the suspend to ram supporting that chip was sparse.

I have tried a setup with an openwrt router caching the pages, and that can wakes up an x86 PC with an SSD within 2 seconds with a WOL packet, and some iptables+tc delay magic.

Andreas Kosmehl


i read the article about image compression on your page.

If you compress the image with,

the image quality is better than dithering and the file is also small.

Dithering is not so nice in the browser display when zoomed out.

tiny.png from 163.3 KB (jpg) to 81.9 KB


Thanks for this excellent post on a very interesting topic.

I share your concerns about the increasing energy demand (not only) of the internet. Therefore using a purely solar power setup (except for the router…) is a pretty radical, yet very consequent (given the “low tech”) approach. In addition, to me it seems a bit like art :-)

Coming from a job, which is all about power conversion and power management (funnily enough: for ARM based system) and having an interest into solar power applications for myself I could not stop myself from digging into the described and depicted solar charger and supply setup.

I may well be wrong (having maybe searched for the wrong part, or maybe just found outdated information), but is it possible, that the charge controller is just a linear type with no MPP tracking? (I found this one: 0099884539.html)

In this case, the power being stored into the battery is not 50Wp, but just, say, 20Wp (depending on the way the solar panel is built/ internally connected).

Opting for the (indeed) more complex technology of an MPP tracker, or at least simple switch mode step down converter (Solar -> Battery) could drastically increase the amount of power you can use for your setup or other

household applications.

Even if the charge controller was an MPP tracker, you might want to consider using one with a lower current rating. Using (massively) oversized supplies,

can ruin (usually it does) the efficiency of such a switcher.

In addition a separate step down converter from the solar panel directly to 5V for powering the server board might (depends on how’s it built) increase the efficiency of the system even further. The input of such a setup would

be a (wired) OR (using a dual diode with a common cathode) from solar panel and 12V lead acid battery then.

Having built my own solar powered setup (for a clock and an USB charger/ 5V supply for all kind of stuff) I can highly recommend using some(!) more sophisticated parts. It really pays!

I would also be interested in getting to know, which way the supply voltage (5V?) for the Olimex board is generated?!

Best regards



I have seen your low-tech-website and when I have seen your “Room for improvements” section, I had some ideas, I want to share:

Image Dithering:

I am not sure, if you can use that for your website, but another day I stumbled upon thet project for compressing images:

According to the compression experiments we have performed FLIF files are on average:

14% smaller than lossless WebP ,

22% smaller than lossless BPG ,

33% smaller than brute-force crushed PNG files (using ZopfliPNG),

43% smaller than typical PNG files,

46% smaller than optimized Adam7-interlaced PNG files,

53% smaller than lossless JPEG 2000 compression,

74% smaller than lossless JPEG XR compression.

Another more popular image format is “WebP”:

From description:

" WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller than comparable JPEG images at equivalent SSIM quality index. "

Router for the internet connection (lower power consumption):

I would expect, that a sort of ARM computer like RaspberryPi con do the job with less power comsumption. As most of them are only equipped with one NIC only, you hace serveral options to add a second network interface, which is the “clean” way for a router.

a) use a USB to RJ45 network card and connect it to the USB port of the single-board computer.

b) use a “Multiple Ethernet Expansion Board”

Look here for a example for RaspberryPi:

And here:

SSL and Legacy browsers

Should we maintain both HTTP and HTTPS versions of the site?

In my opinion: A clear NO. There are a lot of linux distributions, that offer SSL compatible browsers with a very small footprint. So I will not trade in the security for old browser compatibility.

Just my two cents - hope it helps,


Paul Clarke

I like the idea of the dithering, especially combined with the idea of “print on demand” of articles or issues - let people have the high quality images if they really want them, but offline. Could perhaps do a paywall with high quality versions of the images? Not quite sure how it works with a static site but I will think on this. I like the dithering but think you do need to be sure you have the lowest file size if you’re going to have low quality images, I’m sure you’re on to this now.

I also moved to a static site for my family tree site (using metalsmith) and don’t really have images on there at the moment, but will be taking some inspiration from here, muting my colours and adding in some low res black and white imagery while still trying to give it some style.

Also inspired to reinstate my solar powered ambitions - I had a raspberry pi based webcam powered by motorcycle batter and solar battery charger, but could not keep it online for more than a few hours…

I have a solution for searching articles while using a static site, for example - the (very simple, no dependencies) source is below, the minified version is inlined in the page.

‘(function (location, innerHTML, path, div, h2, folders, i) {

function get (url, callback, request) {

request = new XMLHttpRequest() // sorry ie6 etc‘GET’, url, true)

request.onreadystatechange = function () {

if (request.readyState == 4 && request.status == 200) { // eslint-disable-line eqeqeq






function change (e, hash) {

hash = location.hash

if (!hash) return

path = hash.substr(1)

div = document.getElementsByTagName(‘div’)[0]

h2 = ’’ + path.replace(/\W/g, ’ ‘) + '’

// div.innerHTML === div[‘innerHTML’] and we passed in the string innerHTML

div[innerHTML] = h2

folders = [’/names’, ‘/gig’, ‘’]

for (i in folders) {

get(folders[i] + ‘/wiki/’ + path + ‘/’, function (content) {

div[innerHTML] = div[innerHTML] + content




window.onhashchange = change


})(location, ‘innerHTML’)’

Rob van der Zwan

Dear Kris and team,

First of all, thank you for many years of inspiring articles. Not only were they a joy to read, I have used the insights from them on many occasions in my own life (though admittedly I have trouble going through with all the radical steps required for sustaining this planet, because the mismatch with current societal structures makes it so hard to (ironically) sustain).

Not only than that: I have shared specific topics on response to people asking for advice on buying something new, fixing an issue in the house, and many other cases were your articles can give inspiring alternative ideas¹.

Which leads to my suggestion. The articles are great, but also very dense and often elaborate, giving historical contexts, developments, etc.

My sister just got a new apartment. It is empty. That is a great opportunity to start fresh and do things right from the start! I am looking for one myself, and when the time comes I look forward to having the same opportunity. However, while I enjoy doing the research, the act of “optimisation” my lifestyle, so to speak, my sister represents the more typical case of simply not having the time to read the whole Low Tech Magazine archive digging for gold nuggets.

While I’m already suggestion infrared heating, hooded chairs, Japanese-style insulated tables (forgot the name), putting thermal masses on sunny parts of her room, fireless cookers, pot skirts, but I know I’m missing lots.

Now imagine an illustration of a house, featuring almost all of the ideas you ever wrote into one image. A counter-image to the stereotypical technologist’s House of the Future. A House of the Past for the Future, as it were.

Add an image map (look it up, its forgotten but amazon old HTML technology) with links to articles and summaries of articles, and you have a something that lowers the treshold for people to start changing their lifestyles.

Kind regards,

Job van der Zwan

¹ for example, last week I shared the article on heated clothing with the owner of, who actually makes most of her money selling special socks in person on markets. Both as a suggestion for heated clothing for herself to keep warm in Christmas markets, as wel as promoting warmer and even heated clothing through selling the socks herself - she loved the idea and is looking into it!

(Oh, BTW: I have donated to the project in the past and would like to again, but I’d like to do so directly per bank transfer. Is that a possibility? And I’ll try to make some time to contribute to that research into image dithering pipelines, but I can’t promise anything)

Hunor Karamán

Yo Kris,

First of all good job on the carefully crafted magazine. I really enjoy the content and the whole way you handle this site!

I don’t know if you intentionally haven’t done it, but sharing the site through Dat would be a good fallback for the times it’s down (because of the sun). If you’re not familiar with the protocol, I would happily help on that

I’m just overall curious about your opinion on this.


I’m from Germany and read on an advertisement in the bus this afternoon about your website and that it goes out during bad weather. I believe that pointing out the last part that the websites sometimes shuts down delivers the wrong message about solar which is the biggest argument for coal and other dirty forms of energy.

The argument that you can’t store solar energy. But it is possible to store energy with batteries. Have you thought about buying one so that your website doesn’t shut down? Like a Tesla power wall or something. It would deliver a much better picture about the sustainability and availability of solar power.

Thanks for reading my thoughts on this small topic.



I’ve been very interested in reading your article named “How to build a Low-Tech website: Software & Hardware” :

I’m also involved in generating static website and I’m surprised that you confifured your server to gzip resources on-the-fly. As the website is static, and already generated, the result og gzipping is a predictable process and can then be done at the static website generation step.

This would consume less cpu on the server than compressing of the fly, and hence save energy.

What do you think of that?

Jan Fabry


One small CPU improvement for nginx: if you use the gzip_static module, you can serve precompressed files, instead of letting the server gzip the requests on the fly every time. This should save some CPU cycles.

You would need to change the Pelican workflow to also create .gz versions of the content that can be compressed, but that can’t be too hard.


Jan Fabry

Dave Evans

Hey there!

Just a quick word to say hi and that I really appreciate the project that you’re working on. I’ve been a HBSC mailing list lurker for a while as I too am interested in self hosting a low power solutions to hosting and creating networks.

I’m actually doing a PhD at Goldsmiths, University of London speculating on the relationship between historical

asceticism (hermits, monks, austere protestant living) and networks, looking for clues to how reimagine the network at a more human scale (I’m not religious in the slightest, but the link between how monks etc dealt with the vastness of their God and how we might cope with the vastness of the web seemed like a nice, perverse lens to look at the


Anyhow. I’ve made some solar wireless local area networks (the most recent in a community permaculture garden in a train station). I’m also just trying to get a raspberry pi running as a home server to host my research. What web server do you use for the magazine? I used apache as it was what I’ve been used to, but would be interested in

alternatives (although I studied printmaking and sculpture so am on a steep technical learning curve these days!).

I have presented at various international conferences and written some stuff about the relationship between asceticism and the internet at the address below - and would love to publish to your magazine if you think it might be appropriate.

Keep up the good work - I will follow with interest!

Best wishes from Liverpool,



Hi Kris,

your project just boom me!

I am a webdesign freelance from Madrid mountains that works to transform internet into something more simple. I also use portable solar panels to work on the woods.

If you need some collaboration or help with the project please contact me! you can check here some of my portfolio

hasta luego!


Mikoláš Štrajt


I just found link to Low tech magazine on Hackers news.

I really enjoy the articles because I am interested in both old technology and solar punk.

I also enjoy the somewhat controversial design element - dithering of images.

But - sometimes dithering the images makes them “unreadable”. For example some of those wood carvings in article about ropeways ( Even worse is map at article about high speed trains ( - this probably should stay as is, because it’s already PNG with limited color set.

Anyway I really like your site. I hope there will be enough light/battery to stay online at weekend. :-)

Also If you need some photos of obsolete tech (steam trains, old tramways etc) I can look for it in my archives. I visit transport themed events quite often.

greetings from Prague by


PS: now after some 30 years we have again trolleybuses (in trial operation) in Prague

They did presentation with old vehicle from musem on new track.

My photos from that event:

Paul Laborde


I read your article from France and I love your idea.

I tried few time ago to create this kind of machine for an automated solution in gardens.

Maybe I can share some ideas :

Add a proxy page when your server is down a temporary offline page can be displayed

How is user traffic ? Wan you maybe integrate directly a cellular connectivity instead of optical fiber ? (like Soracom)

This new connectivity allow to move server to original hosting zones (trees, mountains, etc)

Maybe you can add an power indicator about battery capacity and solar level with a downtime estimation ?

A super light server with ESP8266 could be original too

I just discovered your website, it’s great !

N Valova

Hello, Kris.

I’ve just come across Lowtechmagazine project, thanks to a reshare of a friend on Mastodon.

The idea behind your project is wonderful, and it’s valuable that you provide RSS subscription (thank you).

The project is also broadcasting on Twitter. The big Twitter with fat data centres. Have you heard of Mastodon? It’s one Fediverse project - a twitter-like federating platform.

To be honest, Mastodon relies on modern web technologies, so it can’t be easily hosted at home on a small computer. But there are other interconnected projects (for example, Pleroma) that are more ligthweight and can be hosted “on a potato” some users say.

Self-hosting. Could this topic be of interest to you, in the context of what you’re writing about?

I don’t know whether self-hosting one’s social media can possibly decrease energy consumption worldwide… May be? If people start paying small ammounts of money for energy (self-hosting) or to friends-administrators who will do the server work for them, perhaps people will re-evaluate their social network habits? When there’re no big companies providing “free” unlimited server space, and no algorithms showing constant ads with brands telling you to buy this and that “because fashionable”, perhaps, users will stop over-consuming and learn once again how to have meaningful online conversations.

Please, consider joining Mastodon (Fediverse generally). There are ways to automatically post from Mastodon to Twitter ( Many people follow your project on Twitter. I’m sure there are also people among fedizens who will be glad to read you on Fediverse. Perhaps even some of your Twitter followers will eventually join. :)

Sylvain Couhault


I loved your low tech website and think you’ve done e real great job.

Since I’ve read the “Room for Improvements” section I’ve got some ideas to share with you that, I hope, will help you to go further:

-Images: Did you try the “.GIF” format ? You can use it for static picture limited to 256 colors. It is supported by most of internet browsers.

-SSL ciphers: if there aren’t any sensible or personnal datas on the website, maybe it’s not needed to maintain HTTPS. The new General Data Protection Rules requires Ciphered content only if you use personnal datas. For full public datas, it’s not mandatory I think.

Nevertheless it would need to be tested on different internet browsers because some of them are blocking sites or displaying security warnings when not in HTTPS (Google Chrome mainly). I think Google Chrome plans to block non HTTPS website in the longterm future but for the moment it works and other browsers will still allow it in the future. Maybe the best way is to test your site with HTTP (no S) with different browsers (Chrome, Opera, Firefox, Microsoft Edge, Brave … ), see how it displays (warnings and so on ..) and to inform people about the browser they can use to watch your site and the warnings they could encounter.

-Energy sources: maybe you can combine the solar panel with a little wind turbine (thus you can still collect power even with bad weather. It’s less efficient than solar panel, but in combination it could be useful to keep along a few hours or days without sun). I think this can be coupled with your battery system (with some other components to avoid interference between solar panel and wind turbine) Here are some examples:

I hope these ideas will help you :)



Adrien CLERC


I read and I was

interested by your image compression techniques.

I would like to give you two ways of optimizing more aggressively.

Optimizing JPEG


If you want to keep the same quality of the input image, here are my best experience : use Guetzli (first) and MozJPEG (after Guetzli). The first one (see is destructive, and produce a different image, but with the exact same perceptual result for our human eyes. The second (see is a fork of JPEGTurbo with aggressive optimization without any change to the final results.

So here are the two steps with your original image


  • guetzli international-switchboard.jpg international-switchboard.g.jpg

  • jpegtran -outfile international-switchboard.g.m.jpg


I have the following resulting images:

156721 nov. 22 10:55 international-switchboard.g.jpg

135206 nov. 22 10:56 international-switchboard.g.m.jpg

163314 nov. 22 10:54 international-switchboard.jpg

Optimizing PNG


If you have PNG (from ditherised images), you can use zopflipng. This tool (see tries to find the best combinations for a PNG, and achieves better result than optipng.

One step from your 11 color image


  • zopflipng -m international-switchboard11.png


I have the following resulting images:

111255 nov. 22 10:59 international-switchboard11.png

106772 nov. 22 10:58 international-switchboard11.z.png



With the original JPEG, I have a 17.3% improvement, using only JPEG. This image is still 21.5% larger than your 11-color PNG. With the 11-color PNG, I have a 4.1% improvement. This is not so much, but still significant.

Note that guetzli needs a lot of memory and CPU. Other tool are more lightweight.

Have a nice compression day,


Erick Lavoie

I have read your magazine over the years and I have found tremendous value in your writings. I occasionally give workshops for kids in which I want to introduce principles of low-tech and alternative energies using Lego and custom parts, partly inspired by some of the ideas you have articulated so well.

I have just read “How to Build a Low-tech Website” and couldn’t help wonder whether you have thought of using decentralized technologies to distribute your content. The main advantage is that your server does not need to be online all the time for content to be accessible, it can be distributed by your readers themselves. We could even imagine hosting availability following the day cycle around the Earth to reduce the need for energy storage, i.e. people could pull their content from places that are currently sunny.

Some friend of mine has started to build their own magazine with the Beaker Browser [1]. I have personally been using Secure-Scuttlebutt [2], which has a mobile application in the works [3], and I am currently actively participating in the community. Obviously most of your readers are currently not using either one of those so that is not a viable replacement to web hosting now. But I think they could still be part of a future analysis in an article and a potential progressive transition as more people adopt them. I also think you would fit right in with the ethos of the current SSB community, so I would be glad to get you on-board and introduce you to people if your are interested.







Hello Kris, Roel and Marie,

Very cool project for the WebServer.

I am even more interested how you run the office (light and what i guess is an good old IBM Thinkpad) on solar power.

Are you charging the Battery of the Laptop or are you running it without battery direkt through solor / or batterythat is loaded through solar panel.

Could you share the experiance please?

Or give the details on the “electric” hardware you use?

Thank you very much in advance.

I plan on doing similar and wonder what Solarpanel and PowerControler/Battery controler to use.

Best regards



The gatling webserver is especially resource efficient.

It’s author uses it for his own blog (, which has a wide

readership but was hosted on very old hardware until recently.



I find your solar website amazing!

Compressing a page is quite demanding for the CPU so your server may use even less power if you cache a compressed version of your pages.

Basically, you just need to tweak your nginx configuration and generate a .gz for each page, which is very easy to script. Then, for each request, nginx will use the .gz file and avoid recompressing the page. If the browser does not support compression, the .html file is served.

This blog post describe the all process https://www.carnaghan.. Here is the official documentation of the module which seems to be installed in every version of the debian nginx package.

Best regards,



I just stumbled upon your website, and I really love the idea.

However, I will agree with a lot of the comments about the battery indicator. It fails both on conveying the message (it is far from obvious what it represents) and at making a user-friendly website.

At first it got me to not even attempt reading past the introduiction. It is that annoying. I enentually came back because I al really interrested in the project, but was annoyed constantly during my reading.

It is also marked with a sun icon, wich doesn’t map to “battery” in my mind, so the meaning of it may get lost. 

I understand that you want to convey the message that it isn’t a standard website, and the dithered images do that pretty well (with the caveat of graphs and tables, as others noted), but the battery meter in its current state isn’t the way to go.

Also, did you consider minifying the html/js source? Just stripping whitespace and comments from the javascript saves a bit more than 2kb per page load. You could go further than this by stripping whitespace, comments, and mangling variable names in the whole html/js. I do understand why you wouldn’t want to do it, as it closes the code by obfucating it, but the CSS is already minified, so you may not consider this as an issue.

Also, as I read this articles and comments today (jan. 25th, 2019), I have no way when they were published, which is a context I really would like to have when writing this comment. I believe it would be a nice addition to the site.


Sebastian Furnigel


Your project got our attention and we’re thinking about what would it take to make a similar project.

Therefore, I’m curious about the solar cell used – we’re considering a 230w cell; the raspberry model and what aspects were optimized on it; and the battery pack used – which direction did you follow for battery metrics?

Your project is a real head-turner and it would be really interesting to have some insight into how yours was done.

Thank you and have a nice day,

Sebastian Furnigel

Kyle Norton

I absolutely love the solar-powered website. I love the design, I love the concept.. I want to try and build one of my own here in Austin, Texas.

If I can toss out a suggestion … I love the battery level indicator, but I would also love to see an indicator of local time and if the site is operating on solar or battery power.

Jim Morgan

I’ve recently had problems with aggressive searchbots on some websites I run. Up to 80% of the bandwidth of the webserver was from bots! I imagine if you reduced or blocked bots on your site, you’d also see some energy savings. 

To combat this, you can create a ‘map’ in nginx, whereby you ban or rate-limit bots matching a certain regex pattern. 

eg. In the main nginx.conf

map $http_user_agent $limit_bots {

    ~*Baiduspider 'baidu';

    default '';


limit_req_zone $limit_bots zone=badbots:5m rate=10r/m;

Then in the actual website config in the server{} stanza

rate limit for poorly behaved bots

limit_req zone=badbots;

Monitor the error.log to see crawlers getting banned.

Jim Morgan

Aleksandar Milovac (Александар Миловац)


Maybe this can help to get more accurate result of battery status, temp, etc…




I suspect 99% of power consumption for is from regular kernel book keeping. From what I read, using less ticks per second for the HZ variable in Linux or enabling NO_HZ should reduce power even more. I’m not particularly knowledgeable in this, but I do admire the direction of your website as tech companies build websites only for people who buy the latest products, and for everyone to use the latest unmaintainable codebases.

As I read this, it looks like your five week uptime may finally fail.



I’ve came across your website today and like your minimal attitude to web design pretty much. It is quite a contrast to the bloated webpages we are used to today (the performance improvement is even very noticable when using a quite fast connection - 1000mbps at work / 100mbps at home) and I think the web would be a lot more enjoyable if more pages were built like that.

I’ve read the article about the webserver configuration [1] and got a suggestion for a configuration change to the nginx configuration. As it wasn’t listed there in the improvement list you might not be aware of this already. There is a configuration item called “gzip_static on” [2] which does tell nginx to simply deliver precompressed files from the webroot (so if requesting “index.html” it does send “index.html.gz”)

Pre-Compressing the Webpages when updating the site and shipping these compressed versions should decrease cpu load and therefore energy consumption of the Server as the computation for the compression is only necessary one time when updating the page and not for every request. You might even use a higher compression level for this one-time task (though with gzip bumping the level from 6 to 9 doesn’t improve the compression ratio a whole lot in my experience - at least with my usual datasets)

I’ve got no idea how much of a difference this does make - especially as there is quite a bit of processing necessary for the https encryption but it might be worth a try.

Kind regards,




David Galeano


I think your solar powered server project is very interesting and I may have a couple of suggestions.

I think you could improve performance when serving static files by using the open file cache:

The size of PNG files depends heavily on the compressor used and the contents of the image. I found zopfli to be the best compressor:

Also the PNG format is very good at compressing images with vertical patterns because each row can be stored as a delta of the previous one, not sure how that could help you but for example in the past I found that just by rotating the image 90 degrees it became a lot smaller.

Anyway, hope any of this helps.

Kind regards,


Matisse VerDuyn

The goal of this project is great!

A while ago, I put together with a similar goal in mind. The concept stemmed from two objectives:

1.) The sole purpose of a website is to provide content, and to be useful, that content must be “comfortably readable” (on any device), and

2.) It’s critical, for many reasons, to minimize data transfer (through the elimination of all non-essential HTML tags / attributes, and all CSS classes, especially those that are merely there to indicate visibility toggling).

Aureum helps to display “comfortably readable” information on all screen sizes (including both very large projector screens and very small displays, like smartwatches), and does so with only 3kb of minified CSS. I guess it could be considered a “reset file”, but as I’ve actually used it on a few projects without adding much additional CSS, that classification might not convey its benefits with much justice.

It seems that “certain devices” which may not support features such as CSS media queries are a concern of your current design (“keep the blog accessible for visitors with older computers”)? If not, I hope that Aureum is useful to your project. As another commenter Anja mentioned, having sites load quickly (or at all) under really low-bandwidth is both environmentally sensible and a pleasant relief (and quite a surprise to come across).

Thanks for what you’ve done here,


sune Petersen

Hello Low Tech Magazine.

What are your thoughts on IPFS and DAT?

Have you thought about putting a mirror of your site up on these protocols?

Götz Hildebrandt

Dear de Decker,

reading about your low tech magazine, and the solar powered server. is thier a plan to enable hosting on that server, or clustering with several servers world wide, that works on the same way - low tech as yours? For most web site no interpreting language is need, data access is neeed yes but that is all. C++ as server side language is for common cases enough. (for mine it is) what are your plans?

Greetings from Germany



Your article on your setup is great, but I was surprised that you don’t precompress your pages, images, etc and serve it with nginx, using the option “gzip_static on”.

It would be better on your CPU (you’d have to just compress once) and you could use the strongest compression possible. Would be good for speed as well, as nginx will be able to sent the page right away, without waiting for the slow arm CPU to compress it.

Just my two cents!



Brian Sutherland

Hi, Kris:

Cool website, and one I may be discussing in my PhD thesis on DIY sustainable IT and electronics design.

I suggest that instead of batteries you use a graphene supercapacitor array. Buy it once, it lasts for 10-20 years, and the system can recharge 1,000,000 times without wearing out. No heavy or toxic metals, just carbon, plastic and aluminum. Just be careful about insulating it properly if you stack it into 12 volts rather than 5 volts and use the appropriate cell balancing kit to ensure the capacitors charge evenly.

Also, if your site mirror was in a different time zone with the sun shining, it would never need to go offline, but it would still be 100% solar powered. Fibre optics being light don’t need much power to send information far.

+1 to 117) Ruben’s suggestion to use the gzip standard for webpages to reduce the storage and data transfer.

I’m not certain I agree that static HTML pages make for a significant power saving compared to dynamically generated pages since the CPU still needs be running on the storage requests and it writes requests into a log file, that’s not much different from a web page call.

Complements to your awesome city: my spouse and I visited a few years ago. We enjoyed the art and culture, especially the architecture, and I’ve been following Francisca Bria’s digital citizenship work very closely.

Paul Geraghty


I followed with interest the Olimex link to your pages (via twitter and @EENewsEurope)

Fine work, this board might be a solution for a problem I have too.

However, being an ex-LAMP dev kinda guy, with experience of caching I noted with interest you do not seem use a memcache.

Heres a link to more info:

I used to do similar on a .gov website for certain common webpages like home page etc.

But this was 10+ years ago using PHPs own memcache on Apache, so I cannot really help you much more.

In effect, this loads, for example, your html in MEMORY so you are not constantly pulling from your sd card. You just need to flush the ram every time you update your page, or it will do it when the SBC reboots, or you can set a time limit, I used to use hourly.

Sorry if my ignorance of SBCs is lacking, and what I am saying is not doable - eg more ram is a no-go, or even if the idea of ram does not translate to the SBC world. Your the sample nginx config seems to show you are not using this.

Just thought I’d share that with you in case it leads to something positive.

Thanks again for the detailed write-up.

Shelby Marvell

I’m thinking of making my raspberry pi a super low-power server… Just wondering if you had done any more to improve it since this article:

And had a suggestion to maybe reduce image size. GIFs? They take dithering really well… But I know PNGs are compressed at varying strengths. And now I need to find a way to use a solar battery or something for powering it…



I love your site! It’s pushed me to make actual changes in my life. Here are some small changes you can make to improve your https configuration to maintain (or increase) security while also using less electricity.

First, on the server itself, type these commands and compare the output:

openssl speed aes-128-gcm

openssl speed aes-256-gcm

openssl speed chacha20-poly1305

Since your server’s CPU (ARM Cortex A7) doesn’t support accelerated AES, chacha20-poly1305 should be SIGNIFICANTLY faster (possibly 10x faster) which means less electricity usage. Similarly, aes-128-gcm should be a bit faster than aes-256-gcm. In the real world, in actual TLS usage, aes-256 doesn’t solve a problem that aes-128 doesn’t.

So, you should configure nginx to support and prefer only these ciphers:




You don’t even need aes-256. For ECDH curves, you also don’t need secp521r1 or secp384r1. Even, which is famous for not wanting to lose any users, doesn’t support these curves. You should just support x25519 and P-256 (aka secp256r1). Finally, making ECDSA signatures requires less power than making RSA signatures. So switching from an RSA cert to an ECDSA cert would lower your electrical usage.

Hope this helps, and thanks again for your outstanding website!

Artūrs Pupausis

Intresting project for sure!

When speaking of server efficiency. Old 40nm SoC isn’t the way to go. PNG could be optimized by PNGgauntlet or use webp but I guess it only supports 24bit colors. Brolti compression is more efficient than gzip. CSS, HTML & JS can be minifyed before compression. One commented about Flif but it isn’t optimized and not natively supported in browsers.

Combining multiple websites on one server to uses hardware more effectively. SPF+ uses less power for given amount of data compared 100m nic. From a larger server waste heat can be recovered for water heating or room heating in winter. Waste heat can be recovered from waste water drain as well as that water can be reused for toilet. 10nm ARM server uses far less power for the same work compared even to latest Intel offers.

Even better if it is running on hybrid solar PV system with a small battery backup plus optimized PV system with minimal conversion of electricity.

Lastly reusing certain parts of servers like a case and hard drive Remanufacturing instead of shredding could help reduce emissions of the internet.

Speaking of printed version depending on the tech used on paper production, weight, shopping, power source, raw material, disposal & etc. Typical sheet of A4 paper uses ~50 watt hours of energy or more. While reading on modern smartphone for one hour takes Less than a watt hour, but it quickly changes if done on a laptop or older desktop with multiple monitors. But does not include cradle to grave impact of hardware and software used for it Also it would need to be divided by all other stuff used on computer.

Amos Blanton

I thought I’d share my solar powered website as it stands, along with the offer of any help I can give should anyone run into problems I might be able to help with. (

  • It uses an ina219 to measure the state of the battery (Thanks Roel!)

  • I’m experimenting with changing the background image depending on the weather. I’m intrigued by the idea of physically situated servers tied to their place in space.

I have yet to tackle the data optimization or server customization and caching, and logging the power usage to look at trends / see if I can cope with a Danish winter (unlikely at this point). And I am proxying to my site on when the pi is down. I’m rather attached to uptime at the moment as I am looking for new opportunities in the realm of playful learning and sustainability. Thanks for to you all for making this list / club, and for your contributions to and associated documentation - which I found to be really inspiring.



Petar Marinov


I’ve been reading articles when you post on and I like how your photos look (and how little space they take). I’ve spent some time attempting to replicate the dithering effect of my own photos by I couldn’t make it look like in

Could you please share what is the command-line (imagemagic) which you use to produce your photos?


Roel Roscam Abbing


We wrote a Pelican plugin for it.

You can find the code here:



Stephen Henderson

You forgot to subtract, car trips to library, record store, theaters, not watching TV, delivering newspapers, producing paper. The internet is an extremely efficient, fast, decentralized way off transferring information compared to other methods. Therefore your premise of the Internet as a carbon problem is just not true, it’s a large savings.

If there was simply a fair carbon tax on on everything producing carbon they would all use renewable energy. A server farm produces NO carbon using electricity from an utility. The utility produces carbon because they burn the fossil fuels to supply a server farm. ALWAYS, atack a problem at it’s source.

A fair carbon tax is just so simple it makes you sick to think it’s not implemented.



Thanks for your very interesting website.

I´m reading “How to Build a Low-tech Website?“ with lots of attention.

I also have read on several other places (e.g. that the needed emeryfor a singelborad computerdoes not so much depend on the use of given capacity… so even so astatic web page is faster and needs less energy we could still consider to build also dynamic pages…

That said – I really like the design of but it limits us by using some interesting functions if we think of interactin websites, which is a feature that becomes more and more important.

You seem to have no problem to use Facebook and twitter - but this use is a contradiction to your project I want to to address here.

Have you heard of the “Fediverse”?

and the decentralized networking options? This is a very interesting option which would be interesting to integrated in the Low-tech website project too.

Here I want to recommend the project Hubzilla.

You can run it in a PHP environment.

Hubzilla has a function called „normadic identity“. With this function you can clone and transfer network accessibility from one to an other server. If one server is down, the other server takes over the job and can do the work. So this concept would allow downtime for a solar driven websites even so functionality of connections would still be working. You jut have to find few partners - self hosted severs, spread all over the world, each powered by solar power, to have a 100% up time. This would be an other innovative concept for a low tech website ;-)

What do you think?

all the best


Tom Sparks

For static comments, you could look at it is jekyll centric but you should be to adapt it to use with Pelican.



First off, I just want to say how much I absolutely love the lowtechmagazine website. I’m a member of, and me and some other members were talking about the site today. We all enjoy the special attention that is paid to design and sustainability. However, the one thing that many of us find slightly annoying about using the site is the presence of the yellow line through the articles indicating the battery of the site. The site would be much easier to read in my opinion, if simply the battery level, or perhaps a bar indicating the level, were presented on the page. Thanks so much for putting out this amazing content!


Rick Carlino

Hi Kris,

I loved the article about building a low tech internet. I started building a software package that could support people and systems that do not have the luxury of constant power or connectivity. Its main use case is for peer-to-peer sneakernet applications.

I wanted to share it with you because your work was one of the main inspirations for it. The first proof-of-concept is still in the works ( I hope you have a moment to look it over and I would value your feedback very much, given your level of research into low uptime / low tech systems. Please feel free to share it with anyone and everyone.

Thanks again for all the great articles and research!


I saw many comments regarding the battery level indicator.

One thing I didn’t see mentioned, is that it forces the web browser to perform (possibly expensive) compositing operations, due to the resulting layers.

It can’t just move the whole page without redrawing the visible parts, when scrolling.

On computers that can’t use hardware acceleration (such as mine,) this results in very poor scrolling performance.

Making the browser do more work than neccessary means it consumes more power for all of your visitors, so I think it could be quite beneficial to reimplement it in a way that does not require compositing several layers.


Very good ideology, but no way to make it alive. Ip address and DNS are the bottlenecks. It’s my opinion, but it’s much more efficient to place an optimized website on shared hosting in a data center with an optimized environment placed in an optimized climate zone + use CDN to reduce the load on routing devices. Your hosting machine is NOT an energetical bottleneck.

Maik Merten

Dear Mr. De Decker,

I find the concept of low-power website hosting very interesting - thanks for documenting your effort! The choice of using dithered PNGs to save bandwidth is an unique approach and your website demonstrates that it can result in quite charming results.

I noticed, though, that the pictures you host don’t appear to be optimized with latest PNG optimization tools. For instance, the open-source tool “zopflipng” can losslessly recompress PNGs (it contains a better implementation of the DEFLATE compression algorithm than what usually is used in graphics software).

For the pictures on I get the following results with zopflipng:

file original size zopflipng size
new-solar-charge-controller.png 44591 41135
solar-panel-solar-powered-server-2.png 63238 58667
solar-powered-server-detail-2.png 33061 30346
sps_bats.png 36452 33559
total 177342 163707

That’s a saving of 13635 bytes, which means that roughly 8% of savings can be had.

With best regards,Maik Merten

Heikki Lotvonen


Big fan of LOW←TECH MAGAZINE and as a “critical” web developer&designer, very inspiring to read your approach with how you built your site and your ideas behind it.

On the page

you had said you are looking for ideas and feedback to further improve the website and reduce its energy use. I’ve been musing on a very incidental power saving possibility on the users side. According to this discussion, white background on a page saves more power on LCD monitors, while a black background saves power on OLED screens. This led me to think that serving a “dark mode” to mobile users and “light mode” to desktop users could possibly save some (albeit probably a minuscule amount) energy on the users side. Just a thought!


Heikki Lotvonen (Finland)



I seen you’re using Armbian Stretch (base image ~300 MB)

Had you tried Alpine Linux (base image 128 MB) ?

Have a good week-end, from France :)




I noticed that you say that the solar powered server used gzip compression. I wonder if you’ve configured Nginx to serve .gz files if available? If the site is already static that should avoid all the CPU load due to compression leaving only I/O load and could save a couple of Watts.


Hi There,

  1. perhaps this could be interesting since is very low power and there is software available for serving static files from microsd card. its low cost and poe powered, so stackable.. you can use a standard PoE switch for multiple boards and multiple webpages/vhosts. like this one you just have to connected the PoE switch to your solar power supply.

  2. you generally could save more traffic and avoid unnecessary requests by doing this:

  • packing/compressing html. since most modern browsers understand html.gz if your server delivers this.
  • put all images base64 encoded in this single html per article. so it’s easy to archive and copy an article. don’t use a image twice in the document. set reference to it.
  • don’t insert menu and double content, social media stuff and anything like that. use server directory listing as menu. just for choosing and delivering static html files. and just a normal about.html.gz for further information about author etc.
  • don’t blowup up html files with bullshit tags, javascript etc. dont use css classes. just clever combine short html tags and set style for that tag. h1,h2,h3,p,em,b and so on. generally: don’t force user visitor to use your stylesheets at all. give him plain old html and one single reference to your stylesheet.
  • save spaces, line breaks etc. in html since you can use auto line wrap while editing. (have a look at html coding style in the attached example)
  • insert <link rel="icon" href="data:;base64,=" to prevent browser from trying to fetch a favicon icon, which doesn’t existent. (addition useless request) example attached. have a look at source code via any text editor with line wrap mode.

total page size ~ 136kb (including images)

compressed… ~94kb.

This is a quite minimalistic and function html wrap: no need for body/head tags etc. saving additional requests and has not further dependencies.

<html style="padding:4em">

<link rel="icon" href="data:;base64,=">


<meta charset="utf-8">

... put your html code here...


Kind Regards


Oliver Fleischer

Dear Lowtechmagazine team,

thank You so much for providing a website that dares to stand up against modern design fantasies of the modern web and the bloat that follows. Thank You all so so much for creating a responsive, fast-loading website that respects their users and puts them first. I felt obligated to get this off my chest seeing how this is the first comment ever left here by me.

The dissection of how this here experiment worked out, how to improve it and the fundamentals is has to rely upon is fascinating to read. I too like to see such efforts since they inherently come with speed and efficiency from which every user benefits.

If web-design is cut down, then client software would be cleaner, smaller and more efficient. Less required computing power obviously comes with cheaper and less power hungry hardware.

I am sorry for rambling on, I just wanted to elaborate on why everyone should be invested in this.

What I wanted to throw into the conversation – since I have not seen it in the comments yet – is Gopher. An ancient protocol which sadly has been supplanted by HTTP. It is way more resource-friendly because all of the metadata has been cut. It’s document format (the gopher menu) is much smaller than HTML.

This is mainly due to the fact that it uses TSV which has way less overhead than XML on which HTML is based.

Just my two cents.


Please add an option to remove the “coloring” that shows how much the battery of the website is charged. It is a nice idea but I find it a bit annoying and makes reading harder. This is of cource not urgent just a tip.



I’m writing to you after reading your last article on growing oranges in the snow. I liked it a lot, as I’ve liked a lot of other articles I’ve been reading for a few years now.

I really enjoyed the initiative to build a Solar-Powered website. And, as the world is going more and more to shit everyday, I’ve been thinking of low-tech ways to keep the internet running, in situations where grid power might not be available, and where fiber optic links might not be available. In that optic, I’ve started, which an ongoing research project that aims to develop a Solar-powered off-grid internet server." I thought you might like to contribute to it, maybe ? You can send me patch commits by email if you wish !

Another thing, is that I might have a few suggestions about improving the website. I’ve seen that it might soon be offline, as a lack of battery. But, maybe someone has a copy of the website that I could read ? Like, when the library is closed, I can always ask around, see if someone else has the book.

On the internet, we can do it in several ways. On of this ways if the DAT protocol. “Dat is a new p2p hypermedia protocol. It provides public-key-addressed file archives which can be synced securely and browsed on-demand.” Think HTTPS, but decentralized. Do you think it could be interesting to implement this solution ?¹

Second, more minor, but regarding the interaction of the website, I think the language selector should be more visible, for example by making the round black button a globe emoji. As you already load font-awesome, it should be trivial to implement. If you have a git repo I can make a pull request too, I can do it myself. Is the website open-source ?

I look forward to hearing from you,


[1] :


Hi, Kris,

My son introduced me to your site today.

I am now a fan and a subscriber!

My ranch is in a cold canyon in California’s central coast where we get temps down to 16 degrees fahrenheit on winter nights. Until now I thought I couldn’t grow citrus here. After reading your article I’m eager to grow Satsumas which we loved in Santa Barbara.

Long ago I was a book designer, learning the trade in a small publishing house.

Book design isn’t just lllustrations or cover art; it really means making the material accessible.

Serif fonts were all designed for readability, sans-serif came in for advertising.

A well chosen serif font, correct line width, and enough space between lines (what used to be called “leading,”) are all important factors in the readability of text.

I implore you to think about ways to improve the accessibility of your material!

Check out The New Yorker online, which is probably the best in this area.

All the best,


Swann Sokolov

Hi ! Nice website !

I guess the texture of your pictures allows them to be very light. What is the process ? How do you call this kind of texture ?

Thanks !

David Schlachter


I enjoyed your article on building a low-tech website. You mention that dithering is an open question: I wanted to recommend HyperDither, which reimplements the dithering algorithm in Apple’s HyperCard software [1]. The algorithm creates distinctive images in 1-bit color, which you could convert to a different two-color (white, color) palette to match the site’s aesthetic. I find the quality is such that it could be realistic to use 1-bit images. I’d suggest post-processing the resulting images by converting to PNG and optimizing with a tool like optipng [2].






I found your articles about running a very low tech website on a solar powered RPi really inspiring

Do you think it would be feasible and relevant to create a hosting company based solely on this kind of setup ? And why not replicating it in several places and use ZeroNet or Hypercore Protocol to make the whole service distributed and more resilient ?






I just stumbled over the Low Tech Magazine and its solar-powered website and I’m absolutely intrigued. This is a very nice project, and I even find the solar-powered version better to use than the regular version. (I think this is especially because the delay between clicking a link and getting a fully rendered visual result is noticably lower than with most websites. I really don’t know why people don’t bother to reduce UI latency. Anyway.)

Since you write on [1] that gzipping »lowers the size of transmitted information at the cost of a slight increase in required processing« I wanted to remark that I noticed the Caddy web server [2], when configured to serve static files, will transparently serve the contents of an equally-named .gz file that is stored next to the file that was actually requested, and gzip encoding is Accepted. So for example, if you request about.html with Accept-Encoding: gzip, and the server sees the file about.html.gz, it will serve the contents of about.html.gz.

(If you’re wondering how I noticed, imagine somebody only updating the contents of the uncompressed file, and wondering why the change doesn’t become apparent in their browser…)

While I haven’t got any experience with the power overhead of a Go-based HTTP server over nginx (might be an interesting experiment though, let me know if you’d be interested in me running benchmarks), maybe there is a way to teach nginx the same behaviour? This might further reduce the average power usage since the compression algorithm only needs to be run once.

Best regards from Heidelberg, Germany




Charles-Édouard Coste


I’m a big fan of the solar version of the lowtechmagazine. The only bad aspect for me, is that it requires a battery to work. And the availability of the site depends a lot on the battery capacity.

So I don’t know if you are aware about those new peer-to-peer oriented protocols like ipfs, zeronet, and hypercore… Hypercore is my favorite for now as it’s easy to try with Beaker Browser (

I told myself that if this kind of protocol would become popular, it could be possible to remove the battery and just seed the web site few hours a day…

Maybe, you already know all of that… So I write you this mail to ask if you already experienced things with it and what results you got. If you didn’t ever eared about it, just take it as some hints for futur potential improvements. :D

Best regards

Brian Ramirez

Hello Kris,

I really love your site and and what it stands for.

I just noticed that the images are not lazy-loading. You might want to consider adding a little attribute to your image links so that they lazy-load and save kilobytes of data whenever visitors don’t scroll down the whole way (at least in Chrome):



Pablo Lazo


I came across an article on your website and I love the idea of running it off solar power.

I found the battery meter background made it a little hard to read the article, just wanted to suggest lowering the opacity a bit. I tried the same color with 50% opacity and it’s much less jarring while keeping the same effect. (screenshot attached)



Luis M. Portillo


First of all, congratulations on your project because I think it is very interesting and successful.

I wanted to ask you about the interpolation used in the images of the web. Do you use any program or script in particular? I’ve been trying different options in some programs (using GNU/Linux) but, even if I get a similar aesthetic effect, I can’t reduce the size of the images.

I was hoping you could give me some hints about it.

Thank you and best regards,

Luis M. Portillo

Marcus Rohrmoser

Hi fellow Low-Techies, says “Dynamic content such as comments are in theory incompatible with a static site.” - which is true and isn’t.

While it is true for what the server sends as a document, it is not for what the reader gets as a visible document.

Think of images - they (usually) are not part of the sent html, but are nevertheless part of what the reader considers the document.

As to comments - put them into an iframe! See my blog as an example without and with comments.

What do you think of that?



P.S.: Awesome magazine.

Kea Youll

Hi Mr. Kris,

As a suggestion for further reducing your websites energy usage, may I suggest offering a fully compressed downloadable version. I think Wikipedia has something similar where you can just download Wikipedia as a file. At this point I’ll probably end up reading all your pages over time.

If you need ad revenue, you can simply have people hop through a few ad-page hoops to reach the download link perhaps. But then, perhaps I should grow a beard? Growing a beard saves on razors after all, but denies a source of donatable bird nest material.

My teeth go clack,

Kea Youll

Mike Graham

Hi Kris,

I love the solar-powered edition of Low-Tech Magazine, and the really thorough articles you’ve written about how it was achieved. It’s given me a lot to think about – and maybe a project to embark upon. The climate up here is perhaps not as conducive to solar-powered hosting. I was working on a friend’s (non-solar-powered) website redesign, and one of the main goals was to reduce page-size as much as possible. I’d independently realised dithering as one way of doing this, followed by heavy optimisation/compression of the dithered images to further reduce file-sizes.

In that vein, I did a quick test on some images I pulled from the solar-powered edition of LTM. I wanted to share the results in case they’re useful to you.

I made up a sample set of 13 images from the site and optimised them.

Here are the results:

 Original size: 362K

 After optipng: 360K  -0.55%

 After tinypng: 337K  -6.91%

Some notes:

  • All sizes reported are as output by du on Mac OS 10.11 using the ‘-h’and ‘–apparent-size’ flags.
  • I used optipng with the flags ‘-opv’. This runs locally as it’s an installed package.
  • I used the tinypng-cli program available here: This sends the image to, which compresses it and sends it back. It needs a (free) TinyPNG API key, which is limited to 500 uses a month. You also need to make sure you have a good backup – occasionally this loses a file by replacing it with a 0-byte file of the same name.
  • I have absolutely no idea how much power you’d use for these optimisations, and how long it would take to ’earn’ the power used by serving the smaller files.

I’ve attached a zip file with the three sample sets in it. I figured this was probably preferable to leaving the zip sitting on Dropbox or iCloud’s servers.



Reg Tait

Hi there Kris, Roel, and the team

First, I’m a huge fan of solar LOW←TECH MAGAZINE. I love everything about it. The lightweight presentation makes it a much better website. So much more of the web should be built like this.

I have a simple suggestion to help reduce energy use. Add (native HTML) lazy loading to each image.

As you might know, the idea of lazy loading is to defer loading any image until it’s near the viewable screen—so only loaded when needed. The idea has been around for a long time. It’s great for performance, but needed JavaScript plugins in the past. Now we can do it in HTML. It works really well.

Hope that’s worth looking up and trying out. Appreciate everything.



Mattieu Moreau-Domecq

Hello Chris,

I hope you’re fine

First I want to congratulate you for the good work on your website !

I’m building a website mainly inspired by your guidelines for some friends of mine.

I have a question and I thought you might help me.

What script do you use to display the weight of your pages at the bottom of each page ?

is it a script ? or some text ?

I’m trying to do the same but I can’t find any resources, I would appreciate if you can help me with this !

thanks and best from Paris !



I really like your solar website and the technology behind.

It has been since I found out about your website that I thought how nice would be to have a webserver like yours for my website.

I lack all the skill to make a webserver, I would like to know if you are considering selling kits or sd card configured to run on a raspberry.

I am of course willing to pay for this. I looked in the internet but I found no one that sell this kind of kits.

I don’t think I am the only one looking for more sustainable ways to do activism.

Anyway I bought both of your books so that I do not have to use a computer to read all the nice articles you have made.

I hope one day to be able to deploy a solar powered website like yours.

All the best,


Hans Wernars

Dear Lowtechmagazine,

Instead of dithering pictures there might be another technique to get the desired low file size.

This is the (often forgotten) JPEG compression in combination with reduced resolution.

Reducing resolution sounds dramatic, but when showing in the browser it can be showed with a factor 2x.

In this way the visitor will see the image at the original size.

Most visitors will hardly notice any difference. Some do.

By adding optimal JPEG compression it is possible to reduce even further. (optimal for the tool used=50% setting)

The advantage is that the picture still has the full-color properties.


Original picture: 1280 x 518 pixels. File size 160KByte

Compressed to 50%: 1280 x 518 pixels, file size 90.8Kbyte

Half size and compressed: 640 x 259 pixels, file size 28.2Kbyte (17%)

Tool used: JPEG resize V2.1 from Heinrich Peuser (

Attached the original picture and the compressed ones to verify the results

The original picture can be downloaded at: Megen_panorama

With kind regards,

Hans Wernars

Christian Hieke

Hi Low-Tech-Team,

I rediscovered this project while researching solar and battery-powered devices.

While I was looking at your website code I saw some room for improvement in the JavaScript code. Attached [1] you can find the modified code which reduces filesize by over 2 KB (uncompressed) or 0.7 KB (gzipped) when run through a compiler ( Hope that helps to further reduce energy consumption, even if it’s just on a small scale :) If you have any questions or need more help don’t hesitate to contact me.



Daniel Parnitzke

Dear Kris

I already wanted to reach out to you earlier. Based on the example of I hosted my MA thesis on a solar server out of my bedroom. I think you might have already come across it. You can find it here: (currently I’m on the move, so it’s in a box, the stats don’t work). It’s not as consequently designed as, and it’s also been offline more frequently as it’s consuming around 4W constantly, (in the Netherlands). Therefore I started scheduling offline times every night.

I recently graduated from my MA Social Design in the Netherlands, with a research on how change can occur in simple acts of creation and joyful moments of communal gathering. I therefore constructed rocket stoves with locally available (scrap)materials and with the help of local communities. Therefore, your articles were super inspiring, regarding the theme of setting limits to behaviour based on the availability of resources. Your research on rocket stoves, efficient heating, windmills, alternative ways of energy production (and so on) offer great insight into ’ecological alternatives’, and more than once it helped me develop my own research.

If you’re interested in my graduation work, which promotes a different perspective on ’enacting change’ – not through fear/guilt but through pleasure/joy – you can find a short video outlining my research and the outcomes.

Right now I’m fixing up a van which will be my mobile home and workshop for 2021. Therefore I’m building a wind generator, carving some wood rotors at the moment (thanks for that) based on the plans of Hugh Piggott. In 2021, I hope to visit (and participate in) interesting projects, places and initiatives all over Europe. (Maybe you know of a place that I shouldn’t miss on my trip?)

As a last note, I’d like to bring your attention to two people I came across in the past year: Barnabé Chaillot, a French YouTuber and Alexandre Monin, a French academic/teacher/philosopher. The former was great in terms of applied inspiration, the latter just initiated a Master program in Lyon which is called “Master of Science Strategy & Design for Anthropocene”.

Keep up your great work, and if I’ll ever be close to Barcelona I’d love to visit to see the server and how it works :)

I hope there are good things coming your way.

All the best from Germany,



Hello Kris De Decker,

together with friends I am starting an architecture collective near Cologne, Germany.

We are willing to go unexpected paths and engage ourselves in transformation and urban design tasks in this area.

There is plenty of work as the area is mostly aligned on car-depended urban design and coal energy.

Since we stepped on the low-tech magazine website we would like to adopt your idea and the technology for our project.

On the other hand we should focus on our projects and the urban design field. And, we like the idea of becoming accomplice for future development.

Therefore we would like to know, if you ever thought about the possibility of hosting other sides (with the solar low tech system) as a business model?

At the moment we do not have enough time (and less sun hours) to build of our own system…

I am looking forward to hear from you!




Hey Kris,

I’ve been reading Low-tech Magazine magazine for a while now, I find the idea captivating and the content is thought-provoking. Thank you for working on it! I also appreciate the fact that it has an RSS feed, it makes it much easier fo find the new content.

One piece of feature-requesty feedback that I have is it’d be cool if the HTML <title> tag contained the name of the page being viewed (be it the title of the article or the name of a section like “About this website”) – this way one could easily distinguish between several open Low-tech Magazine browser tabs and wouldn’t have to manually change the title when adding a bookmark in a browser. :)

Best wishes,


Nathan Landry

Hola desde el soleado puerto rico,

Me gusta su sitio web de bajo consumo y me gustaría sugerir cómo reducir el consumo de energía del enrutador.

calor = desperdicio

Use un tubo de calor pasivo y saque el enrutador de la carcasa, móntelo en el chip caliente del enrutador.

Mo Lotman

Hi Kris,

I just wanted to say I’m a big fan of Low Tech magazine and have the printed version. I started a magazine/nonprofit along a similar theme a few years ago (The Technoskeptic), although ours is more related to social crit/philosophy/policy than physical implementations. We’ve been in a bit of hibernation lately so there is not a lot of new content up there right now, but I’ve been thinking about what the next steps might be, and I’m very interested in following your lead so far as the web design/sustainability, both in terms of saving energy and also (I presume) avoiding interfacing with abusive tech companies. Did you do it all yourself? I’m curious if you could recommend anyone to help do a redesign according to the principles you generally espouse. I don’t think the average person would know how to do it. Any suggestions?

Thanks so much, and keep up the great work!




Hi guys,

Following your excellent work on building a solar powered host for lowtech mag, you mentionned that a service rate lower than 100% is essential to a truly efficient system in terms of ressources vs service ratio.

It sure is, yet the internet is not an autonomous system (as you mentioned) - so could you not use this as a leverage for a higher service rate?

The idea would be to use a network of fair players - let say a community of solar powered websites (yours becoming one amongst many others) - on each, several other websites being mirrored and hidden most of the time (I’ll come back to this point a bit later).

Once your server power runs super low, it just anticipate a bit and request another server to play it’s mirror role. Once your server is back online, another request is sent and voila, back to normal.

With a network of those servers, it would become easy to have virtually 100% (let say 99.9999% of the time) at least a way to access knowledge.

Back on the hidden concern, in terms of energy, I don’t know what’s the actual impact of distance between server and client and if it would make sense to have closer mirrors used when enough power is available.

I guess this should also be compared to the increasing power consumption of local servers hosting several sites and being more visited due to geographical reasons (let say servers closer to high density areas such as big cities).

Anyway, that was just an idea :) Thanks a lot for everything you do!


Peter Fischer

Hi Chris!

this got some traction in nerd circles lately:

centre of the gemini universe

list of awesome links regarding gemini

feels like the 90ies (the good, new shiny party of it).

-> 1 URL = 1 document, no inline content.

-> styling is don in the client, no CSS

-> server kays are handles like in SSH, no CAs involved

What it needs is more non-nerd content, like … ;)



P.S.: (the “normal” version ) seems to be down at the moment?



thanks a lot for your solar journal/blog/magazine, whatever you call it.

I thoroughly enjoyed your logic and consistency you operate with.

Insightful articles as well ❤

I thought I’d share the feedback about site’s CSS, I slightly tweaked it for my own pleasure using the Stylish extension.

3 points:

  1. I find the article text with is too narrow for reading. (Maybe the artificial big margins also look weird on mobile, wasting useful screen space?) I opted to make max-width: 40rem; oh and I also used 90% zoom, the text was too big for me.

  2. Images are hard to view when they are stretched to full width on a 16:9 monitor, made them smaller

  3. Captions also centered now, because images are

  4. Battery. I understand this might be artistic, but I noticed from an UX point of view, I scrolled down such that the “entire” reading area was covered by the yellow indicator (i.e. text I’m reading is not split between yellow/white). It’s the same phenomenon like on mobile: Even though you have 30%+ space left, you scroll further down (wasting precious battery charge btw).

So I made the battery indicator a smaller bar on the right and it stopped bothering me. Yet it was still an “eye catcher” to see how much % remains. The CSS for it looks fine with articles, but a little off on the main page.

I’m no CSS wizard, this absolutely needs testing on mobile etc. :)

Greetings from Germany,



Hi Kris!

I’m Yiming, a student writer/illustrator from China. I was applying some low tech mindset for some time, and recently I rebuilt my blog into a low tech one ( I mostly rebuilt the style into what it looks like the solar one and did some optimizations for Chinese paragraph viewing and printing. And to showcase some of my paintings, I made a gallery mode which made it easy to layout text and images for direct printing into pictorial books, like this one here.

Although it looks almost the same to the solar site, I did not use existing CMS but wrote my own script to generate the HTMLs according to my need. My script can be downloaded at this page.


Your low tech stuff is so inspiring! Thank you for bringing such wonderful content into the world!




I’ve just discovered your very interesting site.

I’ve found two issues:

  1. German RSS feed content does not reflect the latest German articles

  2. The bottom icons for RSS, Twitter and Mail overlap the footer text.

Best regards


Juan J. Alcolado

Hola Kris!

he conocido de vuestra iniciativa desde artículo en El Economista, encontrando cierto hermanamiento como podéis comprobar por el nombre de este dominio desde donde os estoy escribiendo.

Ciértamente nuestra finalidad es que la fuente de alimentación sea plenamente solar, si bien -y para evitar sensaciones frustrantes- lo tomo como un ideal en pos del que trato de luchar de forma efectiva.

Además de felicitar por el logro y la gesta, también me permito alguna indicación que en aras de la eficiencia humildemente apunto.

Así, veo que el código html, al menos de la home y el de la página principal en español, idem + /es/, adolecen de algunos errores en cuanto al cierre de etiquetas de contenedores (“div”), por cuanto su interpretación por los navegadores fuerza el uso de recursos para corrección y sucesiva presentación en pantalla.

En la home ocurre en la línea nº 21 del código, que con el browser Firefox marca en rojo </link></link></meta></meta></meta></meta>.

Saludo cordialmente, y quedamos a vuestra disposición, de forma personal y como medio editorial que gestiono encantado de publicar sobre cuánto estiméis

Juan J. Alcolado



I am not sure if you have researched but I think the Tor Network and their hidden services would provide a lot of benefit in hosting/domain costs and encourage, lean energy efficient websites like yours. I really believe in Tor. I think Tor among a few other projects have really great potential to allow secure, private independent, but also far more energy efficient services than the terribly bulky garbage that is normally available. I personally am doing a lot of research into this and I will let you know any progress. I hope you have a wonderful day! Linked below is a link to the Tor Project.


With great respect,


“…do the same with less…”

This is a great statement - this is the first time I’ve come across someone who wants to get off the “perpetual upgrade arms race”.

Some suggestions, if I may?

  1. Reduce your kernel size and potentially make it run more efficiently.

e.g Minimise RAM utilisation by Kernel and save on SD card swap space (which delays things).

The following might be a useful overview as to why the kernel should be optimised.

It’s in the context of embedded hardware, but I think you’re aiming to do the same.

  1. Blacklist kernel modules: /etc/modprobe.d/blacklist.conf

Disable drivers for bits of hardware you’re not going to use on the board = more RAM

Faster kernel execution.

  1. Recompile your kernel

This is to remove modules that are integrated into the kernel itself that can’t be black listed.

  1. NGINX Web server

It’s not clear whether this was the standard (dynamically linked) one from the repository or whether you built this with static modules from source.

If pre-packaged, suggest that you consider building from source a binary to optimize.

Above presentation also covers RAM, Size & performance profiles of dynamically/statically linked binaries.

Faster execution if smaller

  1. Investigate changing the clock frequencies - although not 100% clear if it can be done on this board.

Whilst I didn’t find a specific link to underclocking the CPU, I did find references in the Linux sunxi pages that refer to overclocking.

This suggests you can specify lower values to attempt to underclock.

Simliar or same performance with less power.


My Raspberry Pi 2 is underclocked and works just fine.



Hi Kris,

I’m not quite sure you don’t mind the informal salutation. If you do, I’m sorry.

Yesterday, I read about the Gemini project in the German computer magazine »c’t« and immediately thought of you because it might be of interest for your magazine since it is quite »low-tech« and therefore sustainable. I’m not involved in this project (although I’m thinking of launching a Gemini site myself), so this is not an ad 😉

In short, the Gemini project is about some kind of parallel Internet which does use the Internet infrastructure but has its own super-lightweight software stack on top of it (like Gopher). The explicit goals, among others, are to keep it as simple as possible while protecting people’s privacy (no cookies, tracking and the likes, but encryption of the connection is mandatory). As an illustration, my Fairpone 2, which is always short on memory and often takes minutes to open a ordinary web page, has no problem accessing Gemini content.

From what I have understood, the Gemini »web« is quite text-centric. It is made up of text pages called »gemtext« which contain a simplistic markup (even more simplistic than basic HTML). They don’t even include extensive styles so that the device which displays them is free to adjust the looks to the user’s requirements and wishes. It’s not so simple that it does not support multimedia files, but they’re only loaded on request.

Gemini also has made adjustments on the tech below the gemtext (like the before-mentioned abandonment of cookies, minimalistic requests and so on), but i wrote »in short« above, so …

If you’re curious, you might want to start here (I’d like to link you the c’t article but it’s behind a paywall unfortunately):

I imagined that this might also be something for your solar-powered website. Just a suggestion 😉 Anyways, keep up the good work!


Jiri Slimarik


I really like your blog. The way it is made and the topic as well. I’m curious how to make my photos to look similar. I guess making the photos look this way also reduces energy consumption, so I wonder, how do you do that? Is there any blog post on this theme? Any rules to apply?

Looking forward to your response.

Best regards,

Jiri Slimarik


Hello, Kris!

I learned with great interest about your site running on a microcomputer. The Internet is full of instructions for using a microcomputer as a home hosting server, but there are almost no real applications.

However, I can tell you about another amateur site running on a homemade microcomputer hosting service! This site works in Russia and on a Russian microcomputer. Home page notes on the Russian microcomputer homemade products gallery of my developments The site was launched in early 2018, last year I changed my domain, but in general, my Internet resource has been working for three years.

I wish you further creative success!

Sincerely, Alexander.



A friend pasted a link to your site on IRC ( #gopherproject). Having read some of your articles over the past day or so; I would like to firstly say, thank you. The articles are informative and appear well researched. Secondly, I’d like to recommend offering your site via Gopher. Gopher provides ultra low resource content browsing and delivery, the forerunner to the modern web. It would seem to fit well with the ethos of what you are doing.

Gopher is making a comeback, due to people becoming increasingly frustrated with surveilance and marketing on the web. Myself and a number of others who share the same feeling host our own Gopher servers. Gopher has more a feel of the old web, where the content was mostly provided by enthusiats.

Gopher Protocol:

More about gopher: gopher://

My gopher-hole: gopher://

Hopefully you have lynx installed which will allow you to browse gopher sites without additional software. Though there are other clients, http proxys and browser plugins also available.

Best regards,


BTD Master

This is partially crazy, but how does moving to Redbean for reduced power consumption sound?

Ruben Vorderman

Dear Kris,

Thank you for your inspiring website. It inspired me to start working on my own blog that will be hosted in a similar way.

As a consequence I found an easy way to save power on the server. The server CPU runs on a certain frequency. Higher frequencies are faster, lower frequencies save more power. This is however not a one-to-one relationship. Higher frequencies cost more power than the speed that they bring. It is therefore most efficient to run at the lower frequencies. By default power is managed by the “ondemand” governor. That governor quickly ramps up the frequency when the demand increases and quickly ramps down again as it decreases. This makes the system more responsive but in terms of power efficiency this continuous over correction leads to power loss. This is fine for wall-connected devices, but for battery powered devices it is less than optimal.

It can be fixed quite easily. For this you will need to install ‘cpufrequtils’ and run ‘cpufreq-info’. This shows you the current frequency as well as the available governors for your CPU. It also shows you stats about how much time is spent in certain frequencies. Very useful. I recommend using either the “conservative” or the “powersave” governor. Powersave runs at the lowest frequency all the time and is therefore most efficient, but also always slowest. Conservative is the next best thing in power-efficiency, it scales up when demand is higher for a longer period of time. It is therefore more suited for continual load tasks with spikes such as your web server. I recommend checking if powersave delivers adequate performance, and if not switching up to conservative.

To set the governor to powersave use “sudo cpufreq-set -g powersave”. To make this change persistent at boot make sure that the cpufrequtils service is enabled with “sudo systemctl enable cpufrequtils” and create a file /etc/default/cpufrequtils with contents GOVERNOR=powersave. Hope this helps!

Best regards,

Ruben Vorderman

More information on available governors:

Johannes Löthberg


While discussing dithering and image compression on IRC I was linked to your article on building a low-tech website0, and I have some comments on your decision regarding using dithering.

It essentially boils down to that if you want to save data transfered you should be using a modern JPEG compressor such as MozJPEG1, not dither the images. I do not think that you’re going to be able to find any cases in which a dithered PNG will be able to beat compressing the original image with MozJPEG.

For example, passing the first JPEG of the switchboard operators through MozJPEG’s cjpeg without any option leads to an output file that is 104.5 KiB, which is not only smaller than the original (159.5 KiB), but also smaller than the your final dithered PNG (110 KiB). And this with no loss in visual quality.

If I run it with -quality 70 that number goes down to 82 KiB, also without any loss in visual quality.

If you want to keep the dithering because you like the visual look of it, then running the last dithered image through MozJPEG with -quality 70, the resulting image is 94.9 KiB, which is still significantly smaller.


Like many, I presume, I found your project through Hacker News and I’d like to answer this question:

“For example energy savings from disabling some of the hardware such as the the USB-hub? Some tips or insights into this are greatly appreciated!”

Powertop is what you need. Just apt install powertop and you’ll start saving energy immediately. More information in man powertop or on

Best of luck with your awesome project!





First of all, what a brilliant project! I love seeing solar-powered computers online, especially so well thought out! I’m curious to know how the project evolves.

In the past I have played a little bit with a similar setup to yours. I ran a raspberry pi zero w on a 9Ah 12V battery with an IVT SCplus charge controller. My code from back then can be found here[1].

What I did on the Pi zero was:

I also noticed that flash reads cost me more power than using a RAMdisk (tmpfs).

I think you could also turn off the second core on the machine, if it normally has enough power. The frequency on the first core can perhaps be limited.

If the IVT SCplus charge controller might be interesting for you, here[2] is some reverse-engineered code to get data from it over USB. I turn on USB, wait for the bus to settle, read data, turn USB off again.

best regards,




Noah Pendleton

This is a very cool project! Multiple solar-powered servers with a non-100% uptime could work together by using something like IPFS, so that content can be served even when the “main site” hosting the files is down. Such a system could be very flexible in terms of surviving certain servers going down.



Hey, I enjoyed your article after seeing it on hacker news.

I’ve made the transition to static sites a few months back and am absolutely pleased with the results.

One thing suggestion to make the site even more efficient would be to use a tool like

I went with Hugo for the static site builder and have the purgecss command run on build. I’m sure you can figure out how to hook it in with Pelican.

Cheers to a faster, more energy efficient web.


Erik Wallace

Good morning, I read your article “How to Build a Low-tech Website” and enjoyed it. Most of the things I could think of you have already checked off. However, there are two quick wins that will shave down file size: minifying your CSS and further optimizing your images.

Minify CSS

Your stylesheet is 21 k at the moment, a minified version would be 16 k.

Image Optimization

Using a drag and drop image compressor (ImageOptim) I was able to shrink the 5 images in the article without a loss in the quality. The savings range from 13% to 6.8%.


Erik Wallace

Draco Metallium

Hi! I know that the solar powered website is an old project, but I was wondering if it would be possible to still make some changes to the presentation.

I love the look of the solar site and find it more comfortable to read than the standard one, but only when the battery is full or I disable javascript (which I can’t do on my phone). I find the change of the tint at half the page uncomfortable. I have found myself going to the nonsolar site just to have a consistent look across the screen. Could you please limit the battery charge to a bar a few pixels wide? Something like changing the battery div style to ´#battery{ position: fixed; bottom: 0; right: 0; width: 1em; background: #fff5d1;};´ might be enough.

Anyway, thanks for your articles! I find them thought provoking. I have changed some of my routines already. Thanks!

Draco Metallium


Something to possibly blog about or create (don’t think I saw on the site), in trying to consume less internet bandwidth, some sites have a text-only mode, for example NPR:

It’s often that URL format of text.[Address], like to

sometimes pictures just aren’t that necessary, sometimes they’re helpful


O.Q. Olarte

Hi Low-tech Magazine!

I came across the “Can I Help?” section in your site and eventually stumbled upon the “SSL & Legacy browsers” section[1].

Old machines can benefit from the Gemini Protocol[2], a new internet protocol that is text-based yet still secure. Since this is text-based, I think it would drastically reduce the power consumption required to host, serve, and fetch the data in this protocol.

It’s written in Gemtext, a variety of Markdown. There are programs that can convert Markdown (or even HTML, I think) to gemtext, like lowdown[3].

I guess the challenge would then be to format the content of Low-tech Magazine for gemtext. That is, if you consider this route.

And finally, at its current state, old browsers can still access the site via terminal-based programs like w3m[4] or lynx[5] among others. That means old computers with these old browsers connected to the internet technically can still read your content.






I hope this helps!


O.Q. Olarte