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.
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.
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.
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.
We use VueJS for nice component, which is a great compromise between client vs server-side rendering.
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.
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 firstname.lastname@example.org.