ViennaJS at home

Watch our Videos

Our Talk Recordings

JavaScript Essentials: Memory Management

As JavaScript developers we don't have to care how our application "gets" memory and releases it. We are in the luxurious position that the engine does that automatically and shields us from all challenges that can occur. ...

Page Load Performance 2014 and now

I did a technology update on a website, which was developed and super optimized 2014. It was super interesting to see what works similar and what really changed. The result is a high performant modern website, ...

Starting up security

Security from a developers perspective: which types of attack to expect? What you can do to improve your security? Slides:

Intro to Postgraphile / GraphQL Power without compromises

This talk will present Postgraphile, a library written in TypeScript that automatically converts DB Schemas to at GraphQL backend running in Node. Just because most of the coding is in the database, ...

Introduction to Verdaccio

Verdaccio is an npm package which allows you to create a local npm registry, without any configuration. It’s a batteries included project, coming with its own database. It does so by acting as a local caching/proxy server.

GraphQL in the Enterprise: From Legacy to Bleeding Edge

This talk shows best practices, implementation challenges, and the impact on the development process when you implement GraphQL in a legacy RESTful environment with enterprise requirements. (Hands-on with nodejs, nestjs, graphql, swagger and typescript...

HTML5 & SVG pipeline for interactive experiences

Coming from Console development with very strict rules we had to find our way into the modern frontend world. ...

Async/await in JS

Selected by community request – This talk will explain how ES2017 async/await works with respect to older approaches and non-blocking code. We will see how this integrates into legacy codebases, ...

Towards Verified Compilation of CakeML to WebAssembly

WebAssembly should already be on your radar. I will approach it from formal methods and compilers, sharing my progress and challenges towards verified compilation of CakeML to WebAseembly. You'll not see much Javascript, but plain WebAssembly, ...

V8-GC-optimizations for WeakMaps

Describe/explain GC-optimizations on V8 for WeakMaps I did in my internship in the V8 team in Munich.

Lessons learned re-writing Neos CMS UI with ReactJS

Image your task would be to build one of the biggest open source ReactJS applications. Dmitri has exactly that experience as a Neos CMS core member. Neos CMS is a modern open source content management system. ...

Improving server rendering performance of React

Using React and server-side rendering doesn't automatically give you the best performance. In this talk, I'll describe additional steps we took to improve page speeds in our new React architecture. ...

Micro Frontends with Single Page Applications

A micro frontend approach can make your life easier. We will look at different kind of micro frontend architectures and their benefits and drawbacks. ...

Framework Compass Chart

I think that right now as JavaScript developers we are in one of the most lively communities out there. We have a lot of power with React, Angular, Vue and so on. So how should we choose the right framework for our new shining project? ...

Jumpstart into Swagger / OpenAPI Tools

Design is the foundation of your API development. Swagger makes API design easy and Rainer will show you how he uses Swagger in his daily life.

A minimalistic approach to building connected forms in react and the new context api

Basically I am not somebody who prefers to reinvent the wheel. There are already a ton of solutions out there on handling data binding and and validation within forms in ReactJS. ...

Code generation for fun and profit

If you want to translate your react app, you usually end up using react-intl. But doing so has a few problems. react-intl is 42k minified, which is quite a lot. it also parses all your translation strings at start time, ...

Willhaben Markup Language (WHML)

We usually associate changes in the UI with frontend developers, but that's not always true. At willhaben we have developed a new markup language that helped us to decouple the UI from the frontend team, ...

VR Maps - Putting OpenStreetMap data into WebVR

"VR Maps" is a small demo as a side project by Robert. It puts OpenStreetMap data into WebVR using Mozilla's A-Frame toolkit. ...

Make your Google Apps talk to each other

I am sure that you use Google Sheets to organize your data and that you are familiar with the built-in functions, too. Just imagine a huge sheet with hundreds of columns and rows. Now try to edit them, ...

World-class frontend engineering at scale

Over the last months, the Jira development team has been busy shipping an all-new UI layer, all written in React, redux, and rx.js. Learn about the strategies and tools that Atlassian has developed to create a high-velocity, ...

JavaScript at blazing speed: a deep dive into V8

This talk takes you on a deep dive into the inner workings of V8, the high-performance JavaScript engine powering Chrome and Node.js, focusing especially on the compilation aspects. ...

Rapid Prototyping in JavaScript & friends

Difficulties in understanding the problem, crystal-balling for meaningful functionality, puzzling about user acceptance/technological feasibility and speed in delivery are the key challenges in driving ideas to business applications. ...

Using the Flux pattern in combination with Relay on a charting use-case

The flux pattern is around for a while and has found its implementations in popular libraries like e.g. Redux. When using a GraphQL server for the data representation of an application, Relay and Apollo are the two widely used GraphQL clients. ...

Orga-Talk: Google Pagespeed all the way

How to achieve score 100, why page speed matters, what are the important trend - and why you want a score of almost 100.

Functional JavaScript with Monads

Functional programming is quite popular in JavaScript nowadays. Main principles are widely adopted. I'd like to talk about monads on Rx.js and Monet.js example: how does it work, how can you use it, which benefits does it give you.


Making .map & .filter even more functional using transducers with .reduce

A-frame and vanilla JS

Vlad will tell us how he build a simple 3D version of space invaders using A-frame and vanilla JS.

Javascript Engine Essentials for Developers

Google's V8 raised the execution speed of JavaScript to a level almost comparable to C++. But how do the internals affect us as developers in our daily life? Doesn't "normal written code" just run faster automatically? ...

What's to come for JavaScript?

JavaScript is evolving faster than ever and there are a range of proposals currently making their way through the standardization process. In this talk, we'll take a look at what's to come and how it can help write cleaner code in the future.  

Why we should care about Code Splitting

Shipping apps is easy, but shipping GREAT apps takes quite some effort. Our mission now is to build faster web apps and deliver as less code as needed. But how? Dynamic imports have arrived! ...

Web App Development

Topics: 1) Client DB for Offline-First Apps (via IndexedDB) 2) Server Graph DB (via Neo4j) 3) JS Async/Await (No Callbacks)

D3 + React

How to use D3 for rendering in an React app.

Coherence: Conflict-free* Distributed Version Control System

A lightning talk how you could have a conflict free distributed version control system, inspired by Google Docs simultanious editing.

Animating the virtual DOM

How to animate the virtual Dom, by Sarah Drasner.

Out of the Tarpit, Revisited

How to Learn to stop worrying and Love Datomic.

Apollo Client 2.0: More than just GraphQL

Apollo Client is a fully-featured caching GraphQL client with integrations for React, Angular, and more. It allows you to easily build UI components that fetch data via GraphQL. 

Using Logux in Production

Replace AJAX-REST by Redux actions synchronization between client and server

From Java to JavaScript: the Journey of GeoGebra Graphing Calculator is an highly sophisticated visual math app that is used my milliones of users each month. Zbyněk will share how he went from a pure Java desktop app to a cross-compiled web app.

Build Your Own Blockchains in JavaScript for Fun (and Profit)!

Gerald will explain what blockchains are and how they work, and show how to build them in JavaScript.

Javascript Enterprise Architecture

Hands-on approach on how to shift an organization to modern Javascript architecture, including a deep dive into project management, technical decisions and architectural challenges explained by code, components and task runner configurations.

Zipping Files Fun - Server Side

A follow-up talk to Zipping Files Fun

Ladda: A New Library for Client-Side Caching

Everyone wants to offer a snappy experience to their users, but it often comes at a cost. One common solution for increasing performance in a web application is to introduce client-side caching, ...

FrintJS - Building Modular Web Applications with React and RxJS

FrintJS is a modular JavaScript framework, consisting of multiple packages. It embraces reactive programming with RxJS, and has official support for ReactJS for rendering. GitHub Docs Twitter

React with TypeScript

A short practical demo about using React and Typescript. No slides, just code.

Make Linting Great Again

Watch how you can create fewer bugs and make the code more readable with linting tools. But does linting really make code reviews faster? If so, how?

Typesafety with TypeScript and Live-Coding

In this talk: static types in a JavaScript app using TypeScript and companion tools. Live coding done with Angular 2 / Spring.

Keyboard Controls for an International User Base

The UI Events specification comes with two new properties for keyboard events: key and code. They replace the previously existing (and still existing) charCode, keyCode, and which. ...

An Introduction to HTML5 Responsive Images

This opinionated 5min talk will motivate you to use responsive images everywhere.

GraphQL and ApolloData

Find out what GraphQL and ApolloData are, plus play around with GraphiQL, and have an in-depth code view with a sample app.

Zipping Files Fun

Learn how to zip files on the fly in the browser and on your server. You'll see how easy it is to put remote files into a zip archive and streaming parts of the archive to the client at the same time.

Client-side Encryption with Javascript

JavaScript cryptography on client side: design and develop safe and secure file transfer service (Demo).

Managing States in JavaScript via Prototypal Inheritance

Watch how to use prototypal inheritance in JavaScript to do state management. Code snippets by Andrea Giammarchi @WebReflection, related blog post:

Leveraging code-splitting in React Apps

Code-splitting allows you to split your code into separate bundles which you can load them on demand. How do you do it? Why is it useful? How would you do it in React? Answers to these questions and more in the talk.

Introducing Svelte: The Compile-Time Non-Framework

Rollups creator Rich Harris has started a new project called svelte. In this talk we will describe the reasoning behind the project, show some examples and discuss possible future directions.

Interprocess Communication in NodeJS

Node is single threaded and uses non-blocking event loops for IO but for CPU intensive tasks it still blocks. If we want to use more CPU cores to parallelize the processing we must create new processes and distribute the load. ...

View Source:

An overview of's front-end architecture.

Wombat Driven Understanding - An Interactive Guide to Using Npm

So you want to write some software. And you decide to use npm, because everyone's saying it's the coolest thing ever. Great! But... where do you start? And once you've started, how do you take advantage of the advanced features? ...

This was 2016

A look back at the last year and all the things happening in ViennaJS.

Greensock Animation Platform for Interactive Animations

Ever tried to use jQuery.animate, Angular.$animate, Animate.css, and so on for a bit more than button hover effects? We honestly got quickly fucked up. GSAP came to the rescue and helped us animating SVG buttons, cubic b splines, ...

Rendering complex 3d models in WebGL

In this talk Roland will speak about rendering realistic models in WebGL.  This great talk was held by Roland Schütz at the monthly ViennaJS meetup in Vienna:

How modern JavaScript patterns affects performance

Arpad will explain what the web platform (browsers) are doing to increase rendering performance, how he thinks the hype of React, immutable data and fractal app architectures is actually really bad for performance. ...

Optimistic Updates in a Pessimistic World

This great talk was held by Daniel Woelfel at the React October Meetup in Vienna, organised by ViennaJS together with ReactJS and Clojure Vienna.

What's Next? Exploring the future of React, now

This great talk was held by Guillermo Rauch at the React October Meetup in Vienna, organised by ViennaJS together with ReactJS and Elm Vienna.

Universal Rendering with React

This great talk was held by Mark Dalgleish at the React October Meetup in Vienna, organised by ViennaJS together with ReactJS and Elm Vienna.

DataScript - A Database for the Client

This great talk was held by Nikita Prokopov at the React October Meetup in Vienna, organised by ViennaJS together with ReactJS and Elm Vienna.

Me, myself and AI

Meet North, a trained neural network specialised in colours. See how North started as a clumsy toddler, but quickly became a colour expert to reckon with. With North's story, learn how neural networks actually work, ...

TJ Holowaychuk is a Hive Mind

The productivity, conspiracy and code behind one of the Node community's most prolific contributors.   This great talk was held by Aaron Cruz at the monthly ViennaJS meetup in Vienna.

Microsoft Bot Framework

This talk gives you an introduction to the Microsoft Bot Framework and the Bot Builder SDK for NodeJS that helps you build bots with free form or guided interaction models and that you can publish to popular communication channels. ...

A Journey to Cerebral

Happy with your framework of choice? Think you're highly productive? Creating maintainable apps? I was... A journey from Ember to Cerebral via Angular, Flux, and others. ...

Building a static (web)site with the Great Gatsby and React.js web components

This great talk was held by Gerald Bauer at the monthly ViennaJS meetup in Vienna:

Real live experience with Dart

Sebastian shows his Slack Chatbot written in Dart. It covers websockets, an API w/ redstone and a little bit AngularDart for the frontend.  ...

Developing a Messenger chatbot with node.js

With the example of, the Euro 2016 Chatbot, he will show how to create a bot for Facebook Messenger using node.js. The technology stack includes a bot engine for natural language processing (NLP) and MongoDB for storing data. ...


Switching Libraries in a running project is never and easy decision. I want to show you why we transitioned from Angular to VueJS. VueJS is simple and elegant and we got a performance boost of over 50% at no cost. ...

ConvNetJS – Deep Learning in your browser

ConvNetJS is a JavaScript library for training and running Convolutional Neural Networks in the browser. It can be used for common Machine Learning tasks, such as classification and regression and can get quite powerful using offline training. ...

How functional concepts can be used in JavaScript

Peter Ferak shows how utilising the built in methods of Array allows the usage of functional concepts (map, filter, reduce, etc) and then hacks around a little on a few examples.  ...

Creating a Slack Bot with JavaScript

Andrey shows us how to create a Slack Bot. In the talk he will show us how he developed one for displaying code snippets for files hosted on Beanstalk. This great talk was held by Andrey Okonetchnikov at the monthly ViennaJS meetup in Vienna.

Simple Mobile Development With Iconic

Ionic is the beautiful, open source front-end SDK for developing hybrid mobile apps with web technologies. By building only one single AngularJS web app with Cordova extensions you can deliver up to 8 different native mobile apps. ...

Write Robust & Type-Safe JavaScript with Flow

JavaScript is great because of it's rich and expressive syntax. On the other hand, the lack of type-enforcement, use of anonymous functions, dynamic function argument lists and contexts makes it very hard to document, ...

Eight shortcomings of the waterline ORM

I recently had the opportunity to investigate the sails.js Web framework. It comes with an ORM called waterline. In my experiments, I found some deficiencies and outright bugs.  ...

Video rendering while swiping

We built a digital publishing tablet app for a major Austrian mobile network operator. The result is basically a digital magazine with our own developed swipe engine. In this talk we will show you our architecture, ...

The Golden Age of Continuous Integration

Learn about options for cloud hosting Continuous Integration, ala Travis, AppVeyor, StyleCI and so on.   This great talk was held by Florian Eckerstorfer at the monthly ViennaJS meetup in Vienna:

Exciting Insights from Translating a Classic Car Racing Game to JavaScript

As a follow up to his beloved first talk, Norbert will talk about implementing another Arcade game in JavaScript. This time it will be a lot about the interesting ways to implement simple KI and how this led him to modern robotics. ...

JavaScript does NOT offer zero-cost abstractions

Arpad will dissect common patterns and conventions to raise awareness of their runtime costs. This great talk was held by Arpad Borsos at the monthly ViennaJS meetup in Vienna.

NativeScript to build native Apps with JavaScript

An introduction talk about NativeScript, a open source tool to build truly native apps withJavaScript, which integrates with TypeScript and AngularJS 2.0.    ...

Everything from Scratch vs. Libraries all the way

a.k.a. vs A short talk about coding experiences: what happens if you code everything without any 3rd party crap vs. ...

Exploring ES6

Wondering what all the fuss with ES6 is about? Max Stoiber (@mxstbr), co-organizer of the React Vienna meetup, gives you a quick and simple overview. First he explains the confusion about the acronyms (ES5, ES6, ES2016 & ...

Dr. Strangelove - or how I learned to stop worrying and love Javascript

- Coercion and dynamical typing problems, e.g. why (2 > 1 > 0) == false - Hoisting and Lexical Environment - What and What? - Why first class functions are awesome and why the new class keyword is a mistake IMHO this, that, self, _proto_, ...

"I am trying to work but nothing happens!"

You are always busy but somehow nothing really get’s done? Or at least not the stuff that should have gotten done? There’s always something that’s gotten in the way of starting the important tasks on time? Welcome to procrastination! ...

Composition vs. Inheritance

  Differences between the composition and inheritance patterns and why you should strive to create composable units in your code.

Kick your CSS up a notch with PostCSS

Learn how to bring your CSS to the next level with PostCSS. Explore the endless possibilities and master writing a CSS transformation plugin! This great talk was held by Max Stoiber at the monthly ViennaJS meetup in Vienna.

React & Redux (Classic from 2015)

Introduction to React in combination with Redux. Redux helps you to develop applications in a simple way while having features like time-travel available during development. ...

Your code will explode

It’s impossible to write software that doesn’t break. The more complex software gets, the bigger this problem. Since JavaScript has become a ‘serious’ programming language, ...

Why Page Transitions Matter

Roland gives a small talk explaining the reasons why you should care about page transitions and what you can do.

D3.js - Data driven visualizations

After explaining the main principles of D3 (Data transformations, Data joins, Update pattern), Christoph will focus on visualizations (Charts, Graphics, Games, etc.) with D3 (Drawing Shapes, Paths, Axis, Transitions, etc.). In the end, ...

JavaScript and its Web server gateway interfaces

An introduction and status-quo summary for backend web developers. This great talk was held by Lars Dieckow at the monthly ViennaJS meetup in Vienna.


JavaScript since its inception has been continously kept lowering the barrier of entry for software development. After the web, servers, mobile and desktop apps the new frontier is JavaScript-driven hardware & electronics.After Arduino & ...

Adding Anchor Links to Your Static Website

You might have noticed in some web pages (e.g. GitHub README) the option to link to a specific paragraph or heading. This is called deep (anchor) linking. ...

Website Development with Instant Feedback

Fast-live-reload is the swiss army knife of live reloading that works with all the browsers. Learn from the core developer how to use it, and about all it's awesomeness! ...

Offline First and Service Workers

Offline first web applications are a much discussed topic at the moment. Thanks to a new method called ServiceWorker, implementing an application that is available without a network connection is easier than ever. ...

Node.js & Redis at Scale

Learn about his journey in building a realtime chat system with 200 000 concurrent users. You will be blown away by some of his stats. This great talk was held by Max Kossatz at the monthly ViennaJS meetup in Vienna.

Automatic Translation of Classic Arcade Games to JavaScript

Ever wanted to play classic arcade games from the 1980s in the browser? The talk describes the main principles of translating them to JavaScript without traditional emulation techniques and challenges of the translation of Atari's Asteroids game, ...

Steams in Gulp.js

In contrast to other other task runners/build tools (like Make, Rake, Phing or Grunt) Gulp.js operates on streams. In this talk you will learn what streams are and how Gulp.js uses them. ...

Node.js development for unbelievers

In this talk Bogdan will compare Python, Java, and Node.js as development platforms, with small node.js code samples (mostly on modules, and general commands) and see where are the strengths of each platform. ...

Classic Emulation in JavaScript

Complementing Norbert Kehrer's talk from June on static conversions and emulation in JS, a classic emulation topic: "Spacewar!", the very first video game (1962) for the DEC PDP-1, the "first toy computer" (© J.M. Graetz). – Probably, ...