Blog

# ember

Sentry error reporting for Ember.js

Are you confident that your apps have no bugs? Do you not need a support team because no user ever complains about something not working? Then this post is not for you!

We use a lot of tools at simplabs to ensure reasonably high quality code, but occasionally something slips through. The important thing then is to notice and fix it quickly. This post will focus on the "notice" part by using Sentry error reporting in Ember.js apps.

Tobias Bieniek

July 15, 2019

# simplabs

simplabs monthly update - May 2019

Welcome to the third installment of our monthly update. Each month we cover the events and activities that have been happening at simplabs along with the things we're looking forward to. Enjoy.

Mark Coleman

May 10, 2019

# misc

Automated dependency updates for your internal GitLab server️

Are your dependencies hopelessly outdated? Would you need to hire another developer just to keep up with the maintenance work of keeping them up-to-date? If those questions match your project then this blog post is for you. Keep reading and we will show you how to solve a lot of these issues with some easy to use tools.

Tobias Bieniek

April 24, 2019

# javascript

SPAs, PWAs and SSR

Single Page Apps, Progressive Web Apps and classic Server side rendered websites are often seen as orthogonal approaches to building web apps where only one is best suited for a particular project and one has to make a choice to go with one of them. In this post we'll explore why that doesn't have to be the case, since all 3 approaches can actually be combined in order to achieve the best result.

Marco Otte-Witte

April 5, 2019

# simplabs

simplabs monthly update - April 2019

Welcome to the second installment of our monthly update. Each month we cover the events and activities that have been happening at simplabs along with the things we're looking forward to. Enjoy.

Mark Coleman

April 5, 2019

# simplabs

Qonto project

We're very pleased to announce that we've started working with Qonto, a Paris based VC funded Fintech startup who are "the ideal banking alternative for freelancers, startups and SMEs."

Mark Coleman

March 29, 2019

# elixir

Elixir Umbrella Applications and Testing with Mox

What's the big deal with Elixir umbrellas?

An Elixir umbrella is a container for mix apps; a structure useful to separate the application's concerns as each app is contained within its own mix project.

Why is this cool?

Because it's like Lego and Lego is cool.

Who's Mox you ask?

Mox is cool too... Let's dive in!

Niklas Long

March 13, 2019

# ember

Ember.js: The Documentary - Berlin Screening

Following on from last week's premiere in Amsterdam the new HoneyPot film 'Ember: A Mini Documentary' will be shown in Berlin this evening (2019-02-11).

The film is a deep dive into the world of Ember.js and includes an interview with our CEO Marco Otte-Witte. After the screening Jessica Jordan from simplabs will present 'Everything They Didn't Tell You About the Ember Community' which will be followed by a Q&A.

Mark Coleman

February 11, 2019

# ember

Ember.js: The Documentary - Amsterdam Premiere

We're very pleased to announce that simplabs are featured in the new HoneyPot film 'Ember: A Mini Documentary' that will premiere in Amsterdam this evening (2019-02-08).

The film is a deep dive into the world of Ember.js and includes an interview with our CEO Marco Otte-Witte. After the screening there will also be a Q&A with Yehuda Katz & Special Guests!

Mark Coleman

February 8, 2019

# testing

Factories best practices

Writing tests is like drinking beer 🍻. When you first try it, the taste is really quite unpalatable, but everyone else around you is doing it and they seem to be enjoying it. You've heard about all the benefits of it, people won't stop telling you how great it is, how it changed their lives for the better. Also there is a lot of peer pressure and judgement involved, don't be that dev... so you conceal your grimace and keep trying it, on a daily basis here at simplabs. And just like beer, in no time at all, on a long hot day, when you feel yourself tiring of writing all those features and tweaking all that CSS, you realise that what you need to relax is to write a good, concise, logical, cool and refreshing test. At least that's been my experience and I want to share a few tips for factories so that your tests are easy for your friends, colleagues, the next developer to read.

Andy Brown

December 20, 2018

# javascript

Assert Your Style - Testing CSS in Ember Apps

Sometimes you really want to make sure that your web application looks good; and that it keeps doing so in the future. Automated tests are an important foundation for making your application's appearance future-proof and this may involve the integration of a screenshot-based testing tool like Percy.io or PhantomCSS.

But writing your own visual regression tests for critical styles in your application can be really useful, too - and it can be easily done on top of that!

Jessica Jordan

December 10, 2018

# misc

Open Source Maintenance

People often ask us how we can handle maintaining a large number of open-source projects. In this blog post we will introduce you to some of out internal best practices we have developed or discovered to simplify and speed up working on open-source and other projects.

Tobias Bieniek

November 27, 2018

# javascript

From SPA to PWA

Progressive Web Apps are the next level of browser based applications. While Single Page Apps (SPAs) have already meant a giant leap forward, PWAs are taking things even one step further. They offer a rich user experience that parallels what users know and expect from native apps and combine that with the benefits that browser based applications provide. In this post, we'll look at how to turn a Single Page App into a Progressive Web App.

Marco Otte-Witte

July 24, 2018

# ember

Building a PWA with Glimmer.js

We recently set out to build a progressive web app with Glimmer.js. Instead of building it with Ember.js, which is our standard framework of choice, we wanted to see how suitable for prime-time Glimmer.js is and what we'd be able to accomplish with it. To put it short, we are really happy with how building the app went and the result that we were able to achieve. In this series of posts, we will give some insights into how we built the app, why we made particular decisions and what the result looks like.

Marco Otte-Witte

July 3, 2018

# ember

ember-intl data loading patterns

At simplabs we ❤️ ember-intl and use it for all our projects where translations or other localizations are needed. ember-intl is based on the native Intl APIs that were introduced in all newer browsers a while ago. Unfortunately some users are still using browsers that don't support them and this blog post will show you our preferred way to load the necessary polyfill and the associated data.

Tobias Bieniek

June 18, 2018

# elixir

Handling Webhooks in Phoenix

I recently had to implement a controller, which took care of receiving and processing webhooks. The thing is, the application had to handle webhooks which often contained very different information, and they were all going to one route and one controller action. This didn't really seem to fit with my goal of keeping controller actions concise and focused. So I set out to find a better solution.

Niklas Long

February 14, 2018

# ember

Using ember-freestyle as a component playground

A component playground is an application that you can use to test out and play around with your custom components in isolation from the rest of your project. In the React and Vue ecosystem Storybook is a quite popular project that implements such a component playground as part of your app. In the Ember ecosystem we have the ember-freestyle addon that can be used for this purpose. This blog post will show you how to install ember-freestyle in your app and how to use it to build and test components in isolation.

Tobias Bieniek

January 24, 2018

# ember

Enginification

We recently improved the initial load time of an Ember.js app for mobile clients, by using Ember Engines and leveraging that to lazily loaded parts of the app's code. In this blog post we're going to show how we extracted the engine out of the app and discuss some smaller issues we ran into along the way and how we solved them. So let's dive right in!

Clemens Müller

December 4, 2017

# misc

Magic Data in Tests

Often when working on large codebases, my changes break some existing tests. While I would prefer my coding to be perfect, it's highly unlikely that I'll ever achieve the state of coding zen, so it's nice to know I have a test suite to catch me when I fall. Given that the codebase is large and in the majority not written by me, I tend to be introduced to code via the test files. One important principle I've started to follow when writing and refactoring tests is AAA.

Andy Brown

September 17, 2017

# ember

On Computed Properties vs. Helpers

Ember's computed properties are a great mechanism for encapsulating reactive logic and implementing consistent, auto-updating UIs. Since the past year or so though, there seems to be an increasing tendency in the community to use template helpers as the main tool for expressing this kind of logic right in the templates. Following up on a talk I gave at last year's EmberFest, I'll elaborate in this post why I think that is often not the best choice and what the drawbacks are.

Marco Otte-Witte

March 21, 2017

# ember

Using npm libraries in Ember CLI

tl;dr Use npm instead of Bower whenever you can!

With Ember 2.11 we are now using the ember-source module and no longer the ember Bower package. In the upcoming Ember CLI 2.12 release, Bower will also no longer be installed by default and only install lazily when an addon requests it. All this indicates that from now on we should try to use npm packages instead of Bower whenever possible. This blog post will explain how we can do that and what options are available to us.

Tobias Bieniek

February 13, 2017

# ember

Class based Computed Properties

We think Computed Properties in Ember are awesome. We also think they are in many cases the better alternative to template helpers as they allow for cleaner separation of where a computation is triggered and the implementation of that computation. In some cases though it is currently very hard to do things in Computed Properties (and Computed Property macros in particular) that are possible with Class based helpers. With the introduction of Class based Computed Properties we're aiming at making these scenarios solvable easily.

Marco Otte-Witte

February 1, 2017

# ember

New features for ember-test-selectors

In March 2016 we have released the first version of ember-test-selectors and today we are proud to present you our next milestone: 0.1.0.

While 0.1.0 does not sound like much has changed, the addon has actually gained a lot of new functionality and should be considered our release candidate for 1.0.0.

This blog post will highlight the major changes in this release, and will give you a short introduction into how we have implemented these new features.

Tobias Bieniek

January 13, 2017

# ember

Out-of-the-box FastBoot support in Ember Simple Auth

Ever since FastBoot was first announced at EmberConf 2015 it was clear to us that we wanted to have out-of-the-box support for it in Ember Simple Auth. Our goal was to make sure that Ember Simple Auth did not keep anyone from adopting FastBoot and adopting FastBoot would not result in people having to figure out their own authentication and authorization solutions. Today we're happy to announce the availability of Ember Simple Auth 1.2.0-beta.1, the first release with out-of-the-box support for FastBoot.

Marco Otte-Witte

December 6, 2016

# ember

Using better element selectors in Ember.js tests

We just released ember-test-selectors, an Ember Addon that enables better element selectors in Ember.js tests. It removes all data attributes starting with data-test- from the application's templates in the production environment so that these attributes can be used to select elements with in acceptance and integration tests without polluting the markup that is delivered to the end user.

Marco Otte-Witte

March 4, 2016

# ember

Updating to Ember Simple Auth 1.0

With Ember Simple Auth 1.0.0 having been released a few days ago, a lot of people will want to upgrade their applications to it so they can finally make the switch to Ember.js 2.0. While quite a big part of the public API has been changed in 1.0.0, updating an application from Ember Simple Auth 0.8.0 or earlier versions is actually not as hard as it might appear at first glance. This post explains the steps that are necessary to bring an application to 1.0.0.

Marco Otte-Witte

November 27, 2015

# ruby

Rails API Auth

We are happy to announce the first public release of the rails_api_auth gem. rails_api_auth is a lightweight Rails Engine that implements the "Resource Owner Password Credentials Grant" OAuth 2.0 flow as well as Facebook authentication and is built for usage in API projects. If you’re building a client side application with e.g. a browser MVC like Ember.js (where you might be using Ember Simple Auth which works great with rails_api_auth of course), a mobile app or anything else that’s backed by a Rails-based API, rails_api_auth is for you.

Marco Otte-Witte

August 7, 2015

# ember

Ember.SimpleAuth 0.3.0

Ember.SimpleAuth 0.3.0 was just released. The main change in this release is the split of Ember.SimpleAuth into one core library and a set of extension libraries. These extension libraries include everything that’s not mandatorily required for Ember.SimpleAuth like authenticators, stores etc. so that every application would only have to load whatever it needs.

Marco Otte-Witte

April 10, 2014

# ember

Ember.SimpleAuth implements RFC 6749 (OAuth 2.0)

Update: Ember.SimpleAuth 0.1.0 has been released! The information in this is (partially) outdated.

With the release of Ember.SimpleAuth 0.0.4 the library is compliant with OAuth 2.0 - specifically it implements the "Resource Owner Password Credentials Grant Type" as defined in RFC 6749 (thanks adamlc for the suggestion). While this is only a minor change in terms of functionality and data flow, used headers etc. it makes everyone’s life a lot easier as instead of implementing your own server endpoints you can now utilize one of several OAuth 2.0 middlewares that already implement the spec.

Marco Otte-Witte

October 28, 2013

# ember

Ember.SimpleAuth

Update: Ember.SimpleAuth 0.1.0 has been released! The information in this is (partially) outdated.

After I wrote 2 blog posts on implementing token based authentication in Ember.js applications and got quite some feedback, good suggestions etc., I thought it would be nice to pack all these ideas in an Ember.js plugin so everybody could easily integrate that into their applications. Now I finally managed to release version 0.0.1 of that plugin: Ember.SimpleAuth.

Marco Otte-Witte

October 9, 2013

# ember

(better) Authentication in ember.js

Update:I released an Ember.js plugin that makes it very easy to implement an authentication system as described in this post: Ember.SimpleAuth.

When we started our first ember.js project in June 2013, one of the first things we implemented was authentication. Now, almost 2 months later, it has become clear that our initial approach was not really the best and had some shortcomings. So I implemented a better authentication (mostly based on the embercasts on authentication).

Marco Otte-Witte

August 8, 2013

# ember

Authentication in ember.js

Update:I released an Ember.js plugin that makes it very easy to implement an authentication system as described in this post: Ember.SimpleAuth.

Update: After I wrote this I found out that it’s actually not the best approach to implement authentication in Ember.js… There are some things missing and some other things can be done in a much simpler way. I wrote a summary of the (better) authentication mechanism we moved to.

I’m using the latest (as of mid June 2013) ember/ember-data/handlebars code directly from the respective github repositories in this example.

Marco Otte-Witte

June 15, 2013