We share our inquisitive musings.

The tools our developers use daily

It is easy to make a website – you just put your text into HTML tags and upload it via FTP. Sure, that was probably the case back in 1999, when on-IDLE was born and we did fancy things with Flash. Nowdays, developers need to use many technologies, keep their knowledge up to date and make decisions about what tools to use daily. 

This article talks about the technology we've used and are still using at on-IDLE HQ. Since we are a small team, our developers are Full-stack developers, which means they take care of the Backend (server, programming, ...) and the Frontend (HTML, CSS, Javascript, ...). We carefully pick technologies which help us to be reliable and effective at the same time. We use them for anything from small cleverly designed websites to large-scale enterprise solutions. Even when you start small, the right tech makes it possible for your web application (infrastrucutre) to grow as your business grows.

Project & code management

We all started with SVN, which was great back then, but when the distributed version control system GIT came along, it was obvious we wanted and needed to move our projects under this system. Yes, we do version control from the start. We are not designers who use filenames like *v6_final_final.psd :)

We host the open source part of our code at Github, while our private projects are at the self-hosted Gitlab, where we have moved from Bitbucket 3 years ago. We also use Gitlab issues to communicate about projects all in one place. To track our time, we use Toggl, which is almost perfect.

For managing all dependies we use Composer, NPM and Webpack.

You can imagine us geeky developers happily working on our own but we do talk to each other occasionally, using Slack and Skype as IM.

Backend

Our servers are running linux, of course. We use Ubuntu at our dev machines, while CentOS + Plesk is running at production. We love UKFast support, which is great for managing our production servers. We prefer Nginx to Apache as webserver.

For server side programming, we love PHP, which is a proper programming language since the latest versions. The amount of websites which run with PHP proves that. We are sure our college teachers, who taught us Java, would still disagree with us :) To make our life easier and avoid re-inventing the wheel, we use a CakePHP framework and Symfony packages. With the latest PHP and Composer it is easy to use any proper framework nowdays.

Data are usually stored with MariaDB (open source successor of MySQL). We use Percona best practices to run databases smoothly and with high availability.

We keep our server to client communication secure by running websites only on HTTPS protocol. We often use Let's encrypt to issue free SSL certificates.

For speeding things up, among other things, we use Redis as cache engine.

Frontend

When working with CSS Cascading Style Sheets, we've used Less as preprocessor but we've been working with SaSS for the last few years. To ensure everything works well, we compile CSS to Webpack to make sure it works for the 3 latest browser versions. Before Webpack, we used tools like Gulp or Grunt. So as to not start from scratch, we use Twitter Bootstrap but with on-IDLE's clever graphic designs, you won't notice in the end.

More fancy things are done via Javascript and while we've used JQuery for the last 10 years, we are moving towards writing VanillaJS using ES6 standard. We use node modules a lot.

We use VueJS for nice component, which is a great compromise between client vs server-side rendering.

Testing

Since we take it seriously, we test our work. We use PHPUnit for unit testing running at Gitlab CI/CD, while Sentry is watching our code at app level. We also test with BrowserStack and Selenium IDE. When we are in the development stage, we use MailHog for testing emails.

Development environment

It might look a bit geeky, but we like to use VIM as IDE. We tried to use PHPStorm for example but the lightweight VIM which can run everywhere and has a specific way to control editing is the best for us.

To be able to run any project on the same machine, we use Docker, Docker Compose.

We hope those buzzwords you hear every day make a bit more sense now. With all these great technologies we are also able to develop our bespoke CMS which we use on a project basis and are able to customize to the client/project's needs.

Are you Full-stack developer too? We are curious what tools and frameworks you use. Let us know via our social channels or create@on-idle.com.