TL;DR — We have done extensive changes in Graphback over the last 3 weeks focused on refactoring to support custom plugins

You can try it now at github.com/aerogear/graphback

Graphback — building production-ready GraphQL applications

The main purpose of Graphback is to provide an autogenerated GraphQL based CRUD API for developers and their various use cases. Graphback differs from other GraphQL based solutions by utilizing code generation and application templates as a quick way to get started. This gives developers the ultimate flexibility that was recognized by our community. The CRUD API can be added to existing projects or function as standalone service.

Why have we rewritten Graphback?

When working with the community we identified multiple ways people want to add a CRUD API to their…


Performance problems are often one of the reasons why developers avoid adopting GraphQL API. First Google search results that will appear when searching for “GraphQL performance” will mostly cover the disadvantages of this technology. Are the GraphQL API’s less performant than their RESTful counterparts? Is performance really a big problem of the GraphQL APIs or it is more a myth build by early adopters?

Image for post
Image for post

In the following blog post, I’m going to cover some performance facts and myths around GraphQL along with solutions that developers can employ for both GraphQL client and server.

NOTE: in this blog post we are going to focus on the Node.js ecosystem. Described problems can be mapped to any language and reference implementation. …


In this short post, we will summarize the recent state of offline support in the Apollo community.

What is Offline Support

Offline support allows the application to operate when the device running it lost connection to the server. Offline solutions are characterized by the ability to:

  • Read local projection of the data
  • Perform modification of the data when offline
  • Synchronize local changes to the server
  • Perform consistency (conflict) check

Apollo Link Offline

Apollo-link-offline is basing on the Apollo-Retry link. The offline link will try to reattempt requests that failed to reach the server. …


Apollo GraphQL Client (JavaScript) offers extensive options for building efficient data queries using the cache, Optimistic UI, and error handling. Developers can use various ways to fetch data, store it in the local cache or handle different types of errors.

With so many different ways to query data developers can often write suboptimal queries or rely on defaults that may give different results than expected. Apollo GraphQL documentation provides very comprehensive coverage for network and cache updates, however, they are documented in many places. …


GraphQL was created almost 7 years ago at Facebook to resolve specific problems for the Facebook mobile platform. As Query Language, GraphQL offers transport and data exchange layer between server and client, leaving many implementation details to developers. When comparing with REST, GraphQL technology has a steep learning curve and many pitfalls waiting for beginner developers looking to embrace it.

GraphQL ecosystem in 2019

Over the years the ecosystem flourished and evolved towards more production-ready use cases. GraphQL stack became more mature and more developers started to create their applications using this technology.

GraphQL evolved thanks to the large community and many supporting libraries. Choosing the right approach in the ocean of the options can be not only overwhelming but also lead to building solutions that will be suboptimal to our domain and our business needs. …


Part 1 of tutorial.

In second part of our tutorial we going to focus on adding opponents - the other cars that we need to avoid. Cars will appear first on the top of the screen and move towards player with constant speed that can be adjusted in the code.

Image for post
Image for post
Other cars driving towards player

Building main logic

We first need to start with adding a forever loop.
In the loop we going to check for situations where our car and others meet at the line position 5 which is the bottom of the micro:bit screen.

Our first check will check if emptySlot position is different that actual player position. If not this will mean that game is finished and player will see X on the screen. …


Progressive Web Apps (PWA) are the way to provide mobile users the best experience in reliability, speed and engagement. PWA are a generic concept that can be achieved by native API for various capabilities in modern browsers and adopting best patterns for achieving performance and flexibility in application distribution. PWA apps often behave and look like other native applications. Applications can be added to the mobile home screen and can work offline thanks to the concept of service workers and manifests.

In this short blog post, we going to focus on why and how developers can start writing Progressive Web Apps. …


GraphQL is an specification for an Query language and API engine with implementations in many different languages. Specification clearly abstracts from the underlying database solutions, leaving developers to work with any source of the data including REST API or different databases. In this blog post we are going to draft options for adopting GraphQL API in new or existing projects — most particularly focusing on the database layer.

GraphQL — How to adopt it?

Developers can adopt GraphQL API in many different ways:

Image for post

1) API gateway for microservices exposing GraphQL or REST API

This case is really well documented by Apollo. Adopters can benefit from existing solutions like DataSources that will help them to wrap existing REST API. Additionally Apollo supports Schema Stitching that allows to join multiple GraphQL schemas into single API. Thanks to DataSources and Schema Stitching developers can build GraphQL based microservices architecture where underlying servers can expose. If you are interested in this use case please follow official Apollo blog post about this topic. …


Microbit is an hardware platform that can be used to program and build real life hardware projects. Micro:bit has many hardware sensors, display and buttons which are good base for simple projects without connecting any external elements.

The best way to start with Micro:bit (without even buying board) is to visit MakeCode IDE website. MakeCode IDE has many sample projects and demos that can be used to get yourself familiar with the Micro:bit.

Image for post
Image for post
MakeCode IDE examples

In first part of our Micro:bit tutorial we going to focus on building a car racing game. …


Raincatcher is solution that provides reusable plugins to build mobile and web applications. Target of Raincatcher is to provide default implementations for various functionalities like Maps with GPS tracking, Photo collections with storage, tasks managment and many more.

Each of this areas are implemented as separate plugin (npm module) that can be customized by application developers by extending and modifying module API. All modules are organized and used as part of demo application which provide reference how to use them as part of external system.

Image for post
Image for post
Top level overview of Raincatcher architecture

Modules can provide various types of implementations:

  • client (business logic)
  • server side (API)
  • frontend (UI like…

About

Wojciech Trocki

Writing about Teaching, OpenSource, Mobile and Cloud. https://wtrocki.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store