JS, HTML, CSS
Bitbucket / Github
Google says 50% of users leave sites after 3 seconds if it doesn’t load. And 50% of users are on mobile where network quality is potentially low. We take all possible measures to make sites load lightning-fast and keep all users engaged.
- We keep our code as simple as possible. It makes it weight just few KBs. We don’t overload our code with unnecessary libraries or other so called “bloat”.
- World-class image optimisations. In images, we optimise everything we can. Sizes, compression, crops and loading time. Everything is under tight control.
- We take care of storing all the possible stuff in content delivery networks (CDN) to reduce latency caused by distance to servers.
- Backend optimisation.
We’re not particular fans of getting 2AM calls about site being broken. When we do 1 thing, it won’t break 2 others. Things should be stable first and then fancy, not the other way round.
- The architecture of our code is crafted by very experienced senior developers.
- We keep code as lean and simple as possible. Less code means less bugs.
- Do not use 3rd party libs from unreliable sources and try to keep 3rd party libs number minimum.
- Every line of code is reviewed by senior developers.
- We do storybooks for components. They allow to modify component and see all consequences of that change immediately. This approach allows spotting most of the bugs during development stage.
- We test on real devices (desktops browsers, phones and tablets).
Our experience shows that 50% of traffic is on mobile. We focus on all devices equally.
- We test on real devices.
- Performance testing allowing to measure how sites perform on weaker mobile devices.
We want to focus on building features, not lose time on fighting with servers, configuration, device incompatibilities etc. That’s why we standarise and automate our processes as much as possible.
- Automatic builds.
- Automatic deployment system.
- We leverage Docker virtualization to work in the same environment no matter what devices our developers use.
We build reusable components first and then compose pages from them. It allows us to make development time much faster. Also, in connection with storybooks, this approach reduces bugs to the minimum.
- Depending on framework, we use proper tools to create storybooks. Storybooks are special pages showing all use cases of single component. By modifying one thing we are sure we didn’t break another.