Design systems, Testing, and getting serious with Types

05 Feb

6:30 pm Picnic HQ, Van Marwijk Kooystraat 15, Amsterdam



The first 2019 meetup from your favorite React community is coming soon! Even though we’re busy with preparing the upcoming React Amsterdam conference in April, we can’t forget about you, folks. 👩🏻‍💻👨🏽‍💻 This time, we’re going to discuss Design Systems, testing, and JSON in strongly typed apps.

Big thanks to our main partner Evolution Gaming ( and also to Picnic ( for hosting our event!

And if you’re hungry for more React knowledge, check out our conference on April 12

# Event Schedule

18:00 – Doors open: snacks, drinks, networking
19:00 – Introduction
19:10 – 🗣 “Building a design system with (p)react” by Bart Waardenburg
19:40 – 🗣 “Dealing with JSON data in a strongly typed application” by Lucas Twisk
20:10 – 🗣 “Mocking is hard. No it’s not. || Mocking like it’s 2019” by Mattia Assogna
20:40 – Finishing beers and more networking till 10pm

## Building a design system with (p)react
By Bart Waardenberg, ANWB

Working with multiple teams on multiple applications brings a whole new set of challenges to software development. How do you share code, how do you keep code consistent, how do your prevent breaking other peoples stuff… We could keep rabbling on. At the ANWB we are currently tackling these problems while building a design system using (p)react. We will share our learnings, challenges and progress moving our front-end applications to a new shared component architecture.

## Mocking is hard. Not it’s not || Mocking like it’s 2019
by Mattia Assogna, DAZN

Testing is considered as standard practice in our industry. We use libraries to mock dependencies to test our code in isolation (e.g. services used in our React components). We take them for granted, assuming that they function correctly, probably by magic! Are mocking libraries “magic”?

Join me to find out what libraries, such as Jest, are doing under the hood as we write our own mock testing library.

About Mattia
He loves shell scripting; he literally lives in the terminal (that’s probably why he uses VIM). Other than getting his hands dirty with React, RxJS and Mobx, he is also passionate about cyber security and Motorbikes.

## Dealing with JSON data in a strongly typed application
by Lucas Twisk, Picnic

In Javascript it’s common to push JSON objects retrieved from the server all the way down into the view components. A type system like Flow/ReasonML or TypeScript even helps you during development by providing you rich information about the structure of your data. However, in the end you are still executing Javascript and using this strategy leads to runtime errors if server data is different from what you expect.
To prevent such errors you want to validate data retrieved from the server as early as possible and gracefully handle cases where it is invalid. In this talk, I’ll first give some insights into the available solutions. Then I’ll present how we solve it in our latest React Native application: by generating typed JSON decoders from TypeScript interfaces using the TypeScript Compiler API.

About Lucas
Lucas Twisk is a software engineer at Picnic, working on the future of grocery shopping. Coming from native app development for iOS and Android he was excited to discover React Native which allows him to only maintain a single codebase.

# Propose your talk

If you would like to speak at one of our next meetups, please send your talk proposals via this form (, both long talks (30 min) and lightning talks are welcome.

# Contact

If you have any questions about the React Amsterdam community (meetups & conferences) – reach us at [masked] .

# Social


Leave a comment

You should login with GitHub to comment

Be updated, subscribe to our signals

Inviting for a beer
See you there!

Thank you for RSVPing. Please, keep culture high and remove RSVP once you now you can not make it.

Well done!

Your commit was pushed to GitOrbit, let`s see what other guys think about it.


Something wrong...

You already like this article!

Please authorize!

sign in