# Philosophy

## What I have learnt programming Blot

The most important goal is reliability, then speed.

## Infrastructure

• A limited palette of boring technology I’d avoid using tools that have been around for less than a decade in anything you plan to depend upon.
• Understand the environment in which your code runs

## Back-end

• Speed above everything

• Avoid microservices Perhaps there is way to make these work but I haven’t achieved it yet.

• Keep track of your bottlenecks Blot involves lots of i/o, like reading ﬁles from a disk or syncing a ﬁle over a network. Because of this, most of what really needs to be optimized is i/o. Nothing is especially computationally intensive. Shaving even one external HTTP request from a function will save inﬁnitely more than endless language-level performance optimization.

## Front-end

• Speed above everything. I run almost everything send to the client through as many miniﬁers and compressors as is reasonable. I want to improve the speed of Blot. I also use a neat script called instant.page to begin fetching a page when the user hovers over a link.

• As little JavaScript as possible. In general, I want to do as much computation as possible on the server, as little as possible on the client. This is because I control the server, but not the client.