Did you have a warm cache for either? I find that Fastmail’s cold load is generally a fair bit faster than Gmail’s cold load, and Fastmail’s warm load is consistently faster than Gmail’s warm load; but Fastmail’s cold load can be slower than Gmail’s warm load.
I’m looking forward to working on service worker code loading loading and offline support in Fastmail; I expect us to get warm loading to under one second on a typical desktop machine, regardless of location (because it will require no network calls).
Either way, once the code has loaded, Fastmail is consistently snappier than Gmail. And uses far less memory (in Firefox, 10–15MB instead of >150MB). Offline mode will improve snappiness even further even if you don’t opt into actual offline sync, by virtue of persisting its data record cache. But that’s not implemented yet.
After few reloads load times are comparable, something around 1-2 seconds for both. Fastmail feels a little bit faster, but the difference is tiny. Gmail eat 205M and Fastmail eats 60M according to Chrome Task Manager, so yeah, difference in RAM consumption is huge. I have 16G RAM, so it does not bother me that much, but I could imagine that it could cause some memory-constrained computers to slow down significantly.
I used the Fastmail site today after a long time to change some setting and noticed the UI had been updated. Really liking the new look, great job to you and your team!
I was interested in what front-end library you guys were using so I did a bit of searching and found a twitter post about OvertureJS. I know this is kind of random, but I'd love to understand how you guys came to the decision to build a framework from scratch instead of relying on Angular/React. What kind of technical limitations did they have that you guys wished to tackle with Overture?
This was long before I started; but the simplest answer is that there were no good options meeting our requirements when Overture was developed, which is back starting around 2010. (Overture has been the foundation for our webmail since late 2011 when that interface was released as beta.) Also do note that Overture does a lot more than just “Angular” or “React”, which I am not inclined here to expound; you’d need quite a few more libraries to equal it—a surprising number of which genuinely don’t exist in open source, so you’d still be writing a lot from scratch. Overture is definitely slanted towards being a web app development library (yet without being a heavyweight and strongly-opinionated-in-UI-matters beast like ExtJS).
When you care about performance, there’s still a lot to be said for controlling the full stack.