crafting (and) JavaScript

Projects πŸ› 

See projects that I work on, mostly in my spare time. I started and run various events and I also write open source code.

Events (I run, ran or started)

JavaScript the Language Meetup

On twitter: #jslang

The meetup JavaScript the Language is an evening event that I run almost every month, since October 2015. It is a no-presentations-meetup, focusing on JavaScript the language, only. The jslang-meetups repository contains all code, mostly tests that we write every evening we meet. No frameworks, libraries or alike, just JavaScript, just the language. Every meetup is hands on and deep dive into the language. Learn, share, practice and teach.

#jscc - JSCraftCamp

On twitter: #jscc19

We started the JSCraftCamp in 2016. It takes place once a year, in summer. It is a two days BarCamp/Unconference with the focus on JavaScript and all topics around it. The event is completely sponsored and free of charge. We organize it in our spare time, everything, including the orga is on github.


The JS CodeRetreat is a full day TDD focused, pair- or mob-programming event, where everyone is programming five times 45min exchanging the learnings regularly. The first one took place in February 2014.

A CodeRetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. This FREE event gives the opportunity to practice TDD, Clean Code and Refactoring for a whole day. This isn’t a conference! Rules are totally different, attendees take actively part in the coding experience: act a lot, listen very little.

Open Source Code

I love programming and love to put stuff online as mostly as open source.


Reusable Web Components that I build for various use cases. These can be included in any site provide small addons or utilities, I also presented how to build one at the January 2023 FrontEnd Munich Meetup.


On jskatas.org you can find about 100 katas for learning the language JavaScript. Every kata consists of failing tests that shall be fixed one after another.

I learned ES6 by writing it and failing. Out of this the es6katas evolved. And since, this allowed me to always again go back and (re-)learn ES6 I wrote katas for ES8, later ES1 (I always got the sort() function wrong). At some point I started to learn a very expressive assertion library hamjest by writing katas for it, and so this page came about. Enjoy and I hope you have fun learning with it.


I built tddbin.com for the first JSCodeRetreat to have a no-install environment for writing and running JavaScript tests.


Pico Tester is a small and fast spec runner for Javascript. Mocha, Jest, etc. bring too much burden along, either from history or features. This library is a reset. Using the least needed for a test runner. Also in terms of dependencies pico-tester tries to use the least needed.


The todo-stitcher is a project that checks a list of to-do items to determine if the project is ready for release. Sounds weird? Read the details of what I mean by that and how this changed the way I develop.


I describe test-stitcher alike this: Stitch all tests together, to see the big picture.

Get insights on tests. Get a tree structure of all tests, their test descriptions and some stats about each test and each test suite (or group of tests). This project lets you read (and analyze) the test descriptions, to understand what the code does. Test descriptions are the human-readable describing a test, see examples below.

More HTML components

The More HTML components project provides several web components that just enhance HTML. Some are provided as pure web components ala <more-somecomponent> and others can be used via customized built-in elements (CBEs read more on MDN), such as <h1 is=more-h1> which enhances an H1 with certain functionality. See the examples for some more in depth explanation and examples.


I describe site-stitcher like this:

Others would call it static site generator. But tbh, I don't know where it goes. Currently this tool serves for creating my website https://picostitch.com