In short, we make websites and mobile applications, but let's break that down a little bit. Over the last 5 years we've done quite a lot. We mobilized thousands of people to help out during the heavy floods of 2013, for two years we organized WebExpo, the largest web conference in Central Europe, organized numerous competitions for young web designers under the label Junior Internet, and started the self-sustainable bikesharing non-profit Rekola. Meanwhile, we are still programmimg, coding and designing for clients. Along with this, we developed our own set of tools for programmers and coders, lectured and helped create developer processes in different companies.
So we have experience with the real world. The onslaught of users with web-scale projects and how experiences are driven by design. We're experienced with multi-year web maintainance agreements, gradual expansion of projects over a long time period, the handling of large data sets and data security. We apply this experience to every web site and app we do.
The human. The one that uses your site or app. Right now they need something. She’s nervous, too busy. She doesn’t want to explore your innovative interface. She wants quick information. Or vice versa. He’s just sitting on the couch with your application and he wants to play, watch and spend. Every time he touches your product, there is some intense sensation. And of course, this doesn't need to always be pleasant - the fear that he will miss something has its place in the design. You just need to know how to evoke the right reactions and how to eventually translate it into a conversion goal. This whole process is called user-centered design.
Finally the visual design is the icing, allowing our web sites and applications to be memorable. We like to play with the details, movement, transitions, video and new approaches.
We can bring small sites and apps to the world pretty quickly. The finished design is usually deployed on a combination of WordPress and Nette framework or we generate it as a quick static pages. On the frontend we use standard HTML5 / CSS3 / ECMAScript 6 compiled through Babel into JS. We test on all the relevant browsers and all sorts of devices.
Larger applications now live in ecosystems. We believe that the less code you write, the better for all is it. And so at the beginning of the project we carefully analyze what and how we want to create it. Will the result be a single application or independent API connected to other applications? What programming language and database is the best fit for us right now? How should we approach server infrastructure? Usually on such a project we consider a lot of technologies - from Nette (PHP) or Node.js frameworks up to scripts in C ++ or different hardware solutions such as Raspberry PI and Arduino.
In our studio all code is seen by multiple developers in the code review process, and all important parts are covered with unit tests which get run on every deployment by continuous integration tools. Bugs are captured by Sentry.
We believe that one of the most important topics is loading speed. A third of people leave the site if the page is not rendered in 3 seconds. We use vector icons, optimized images and serve them by the needs of the facility. We minify all files (and for part of it we use a CDN), and aim towards the gradual loading of site assets. To increase the impression of speed we often use small CSS animation cached at the server level. Loading speed is addressed by graphic designers, coders, programmers, testers. Simply put, everyone! And that's good.
We prefer to build on the infrastructure of Amazon AWS. Most of our projects are run in the data center in Frankfurt. A load balancer handles load distribution on several machines that can be enlarged or reduced. RDS then addresses the database and storing data, including their backups. We store user data in S3. Security is thus solved very nicely. The deployment process is helped by bots in Slack that we wrote to keep things simple.
Every experienced web designer will tell you that launch is really where everything starts. So we measure how users use the application, where it works beautifully, and where it needs improvement.
And because most applications today are linked to many other services, there´s always the threat that an external change will break our app. Our task is to know about such issues immediately. We monitor what is happening and when something is not right, we'll work to find a solution as quickly as humanly possible.