The blog of , a Ruby on Rails development team
Known from Rails LTS, makandropedia and Nanomize

2017 web tech predictions and good ideas that will not happen

1. Web devs will start owning performance on mobile

2017 will be the year where 20 seconds time-to-interactive on mid-range phones stops being cool. If you don't think that's an issue, maybe stop testing for mobile with a MacBook Pro and a small browser window.

Every Javascript library, Bootstrap release, web font and icon set adds seconds to load time on low-powered devices. The time has come for developers to own that trade-off instead of piling even more work on overworked CPUs and exhausted batteries.

In 2017 we will see teams succeed in making fast apps by simply loading less stuff. Expect radically smaller Javascript payloads and a move to minimalist CSS boilerplates. I even expect to see see web design with traditional web-safe fonts to save that 500 KB download of Open Sans which looks as dated as Arial these days.

Good idea that will not happen in 2017: Google search results showing how many minutes a page load will suck out of your battery.

2. IoT hype will continue to endanger the public

Pushed by consultants, every device that does not need to bundle Wifi and a web server will do so in 2017. Hence we're going to see a lot more botnets of unpatched toasters and lightbulbs.

I predict that there will be at least one large-scale DDoS attack caused by unmaintained household devices.

Good idea that will not happen in 2017: Regulations enforcing a best before date for networked devices, until which manufacturers are required to produce security patches.

3. Native apps must stop competing with the web (or die)

With two thirds of users having access to Progressive Web App features like store-less installation and offline support, the sweet spot for native apps must move or disappear.

If you're working on native apps right now, make sure to build something that cannot be done on the web: Large offline media, background audio, low-friction payments.

I predict that in 2017, several high-profile media properties will abandon their native apps in favor of PWAs, lowering maintenance costs and increasing engagement.

Good idea that will not happen in 2017: App stores allowing low-friction inclusion of unprivileged PWAs in their listings. We probably blew that chance by not buying Firefox phones in 2015.

Introductory interview with Natalie

At makandra we're welcoming 2 to 3 new colleagues per year. We'll publish short introduction interviews like this one with Natalie, who joined our development team this year.

Introduce Yourself

I am Natalie Krehan, living in Augsburg. Before joining makandra, I studied computer science with multimedia and besides my study worked as working student in the project management of an IT company.

How did you first learn about makandra and what drew you to makandra originally?

Searching for an IT company where I can learn all skills and knowledge to become a professionell developer, I discovered a job opening for makandra's trainee and I thought "that would be perfect". I turned on my heels and walked to the next computer to write my application and voila - now I am here! :)

What is your role at makandra?

In 2016 I have finished the trainee programm and wrote my bachelor dissertation at makandra. Now in 2017 I am joining the team as a developer.

What are 3 words to describe makandra?

  • expertise
  • passion
  • reliability

What challenges are you looking forward at makandra?

Honestly I can't tell what challenges I will face at makandra. I am new to the developer working life and I coudn't possible imagine all challenges waiting for me. But I am really excited to meet and master all of them!

Are you messy or organized?

Some kind of organized mess from my point of view.

Best vacation you've been to?

I can not really descripe the destination of our vacation trip, but I can describe the feeling I had. I loved those trips most, where we just jumped in our old lovely VW bus and just kept driving until we reached a spot we liked and stayed. On those trips we see a lot of cute little cities and gorgeous secret spots on deserted beaches or in mysterious pine forests. And if we fellt like moving on….we just hoped on our bus and were back on the road again…

Do you have a favorite quote?

My favorite quote is from Socrates: "Someone who believes being somebody has just stopped becoming somebody."

Welcome to makandra, Natalie!

Know your APIs

Last month we unrolled another project: A social media center for one of Germany's largest insurance companies. The R+V Newsroom streams activities by R+V and R+V24 from eight different sources, giving a total of 14 different accounts polled, adding about 9 new posts each day. Until today, about 200,000 imports have been performed.

It's all about APIs

Polling APIs is different from usual single-box coding where errors are usually your own bad. Since we need to handle uncertainties implied by remote systems, our code needs to be particularly robust. Since we're talking to eight different systems, we need to talk eight different API languages. And since we're regularly checking data streams, we need a reliable way to find the point we left off for each of them.

Each network has its own associated importer that knows a) how to fetch new posts and b) how to write them to the database. With API client gems like twitter, koala, yt and xing_api, this is no big deal. Some sources had to be consumed more manually, like Wordpress RSS feeds, and to display press releases we're even scraping their web page.

The key for robustness is asynchronous import scheduled by whenever and performed by Sidekiq. When an import fails (due to an API unavailability like during the the DNS DDoS last month), a clever configuration makes sure it is retried a number of times before we're notified of its failure.

But it's not just flexible input, the R+V Newsroom also provides its data in various formats. Besides the website, it offers widgets that can be embedded into other pages and display a limited, filtered list of posts. Additionally, the post stream is available as RSS and JSON, leaving the choice on how to consume the data to the user.

Great UX with reasonable effort

In the frontend, the R+V Newsroom makes use of a number of great libraries to leverage user experience.

Number one is our more and more established Javascript library Unpoly. Think Rails + intelligent Turbolinks + Angular directives + power modals. Unpoly turns a plain full-page server-side website into a snappy app while requiring only little changes in your code. As a side effect, it leaves the frontend with lean Javascript (~280 lines of Coffeescript) and even has the website still accessible when Javascript should be turned off. You should give it a try!

We further sped up the page by delivering images in the right sizes for each device. Since monitor resolution is ever increasing, images need to be served in higher resolutions, too. At the same time, the traffic from mobile devices increases—devices, that mostly have little bandwidth and usually sport far smaller screens than desktop computers. By using the awesome lazysizes, we could accomplish a flexible and maintainable delivery of "just right" images to whatever device visits the page. Read more in this in-depth blog post.

Another notable improvement was made to file uploading in the backend. You all know these plain file input fields that make any webpage feel like it's 20 years old. It does not have to be this way! jQuery-File-Upload is a mature library that lets you build awesome, snappy file uploads that are customizable and play well with server-side components like CarrierWave. See an in-depth example in the makandropedia.

Hosting by makandra

Having this new platform with a great UX, R+V decided to add the other half of UX: reliable servers. The Newsroom is hosted on makandra's powerful Rails infrastucture. Like web applications from Audi, ABUS and ProSieben, the R+V Newsroom runs on redundant machines that are properly scaled and caringly maintained.

With all this in place, the R+V Newsroom is a solid platform with a snappy UI in both frontend and backend, looking forward to its next 100,000 imports.

Four party cooperation

The R+V Newsroom is the result of a multi-company endeavor. Conception, project management and customer communication was done by d.tales, a content marketing agency from Munich. Christian Ringleb crafted these clean, bluey designs, while we were growing the Newsroom line by line. Thanks for the sweet cooperation!

Introductory interview with Andreas

At makandra we're welcoming 2-3 new colleagues per year. We'll publish short introduction interviews like this one with Andi, who joined our operations team two weeks ago.

Introduce Yourself

I am Andreas Herz, living in Schwabmünchen south of Augsburg. I live there with my little daughter and my wife. In my spare time I like to fool around with my daughter or rebuild the Lego buildings she destroyed. If there is still time left I like to work on technical projects, playing video or board games. Before I joined makandra I worked as a systems developer for Linogate after graduating from Augsburg University, where I studied computer science with physics.

How did you first learn about makandra and what drew you to makandra originally?

I know makandra since the beginning and followed the progress they made. After a nice evening at the summer party I had a great talk with Henning and Thomas about the opportunities at makandra and had the chance to get an valuable insight into the daily work.

What is your role at makandra?

I joined the operations team as senior operations engineer.

What are 3 words to describe makandra?

  • structured
  • organized
  • familiar

What challenges are you looking forward at makandra?

I'm looking forward to learn more about the techniques used at makandra, especially Puppet and Ruby. It's also interesting to see how a more advanced setup with loadbalancer, dedicated servers, failover etc. is working and managed with a huge amount of automatization.

Are you messy or organized?

Sometimes even too organized.

Describe what you were like at age 10.

Imagine a small nerd sitting in front of a PC 24/7 playing video games or trying to fix the PC from other people.

What did you want to be when growing up?

I wanted to be a game developer which also brought me into coding.

Best vacation you've been to?

So far the best vacation was honeymooning in the Berchtesgaden Alps. We had a really nice hotel and liked the relaxing and calm atmosphere there close to nature.

Vim or Emacs? (Be careful here…)

Vim of course :)

What tools are you using that you don't want to miss anymore?

Linux in general (although it's an OS), but without i3wm, zsh, tmux, vim and taskwarrior I would be less productive.

Welcome to makandra, Andi!

Now available: Post Rails Book Bundle

The Post Rails Book Bundle is a collection of books about growing Ruby on Rails applications as they become bigger and more successful.

The bundle is only available until this Friday (July 22nd 2016), so grab your copy while you can!

The following eight books are included at a heavily discounted price:

Fearless Refactoring Rails Controllers

This book guides you through the complicated task of cleaning up the mess that controllers often become in legacy Rails applications.

How do you extract the business essence from the controller, while keeping the HTTP related aspects in it, untouched?

It also touches to topic of introducing explicitness to multiple Rails conventions which simply further refactorings.

Trailblazer - A new architecture for Rails

Trailblazer introduces several new abstraction layers into Rails. It gives developers structure and architectural guidance and finally answers the question of "Where do I put this kind of code?" in Rails.

This book walks you through a realistic development of a Rails application with Trailblazer and discusses every bloody aspect of it.

Rails As She Is Spoke - How Rails gets OOP wrong but it works anyway

Do you want to understand Rails? Do you want to write Rails apps effectively, or see your own open source creations delight their users and enjoy wild success like Rails has? Have you noticed that Rails never quite makes perfect sense according to traditional object-oriented theory, or that the Ruby On Rails Guides never seem to quite explain the realities of cutting-edge Rails development?

Frontend friendly Rails - Better defaults for your sophisticated frontends

Upgrade Rails defaults and introduce cool features that’ll help you with making your apps more maintainable and faster to write.

Take your API to a higher level in terms of maintenance and provide user experience improvements.

Growing Rails Applications in Practice

Discover a simpler way to scale Rails codebases. Instead of introducing new patterns or service-oriented architecture, we will show how to use discipline, consistency and code organization to make your application grow more gently.

Rails TDD Video Class

The real goal of the class is to teach you how to combine Rails with TDD. Other things, like DDD and mutant are also crucial. We don’t want to show the only one and true way. We are going to present more techniques over time. Think of this class as a TV series, which is easy to consume in short episodes every day.

Modular Rails - The complete guide to modular Rails applications

Wait! What's a modular application?!

It's pretty simple. Instead of putting everything into one project, you put your MVC components into specialized Rails engines packaged as gems. Module by module, you can define what your application will be!

Unfuck a Monorail for Great Justice

Monolithic Rails apps – or monorails – are a problem in the world of Rails development. This book doesn't just show you how to get them back on track. It shows you how to get them back on track more cleanly and more swiftly than you would have believed humanly possible.

All in all this is $458 worth of books for only $199. Offer is valid until this Friday (July 22nd 2016). More information at

Our address:
makandra GmbH
Werner-von-Siemens-Str. 6
86159 Augsburg
Contact us:
+49 821 58866 180
Commercial register court:
Augsburg Municipal Court
Register number:
HRB 24202
Sales tax identification number:
Chief executive officers:
Henning Koch
Thomas Eisenbarth