Build a webapp with Cats Effect and FS2

Session Abstract

Learn about Cats Effect and FS2 while building a collaborative webapp with Calico! In this lab you will build an interactive widget for a webapp. Along the way we will learn about the IO, Resource, Stream, and Signal monads, and how the Typelevel stack can be used to make frontend applications.

Session Description

Calico is a UI library for building interactive web applications using Cats Effect and FS2. This lab uses Calico as a learning aid to introduce attendees to the Typelevel stack and functional programming. By deploying Cats Effect and FS2 programs in an interactive webapp, they will get a real-time feedback loop to experiment with how different features of these libraries work in practice.

Building frontend applications is also a case study of the powers of different kinds of monads: IO, Resource, Stream, and Signal all play important roles in Calico. It also helps develop a more nuanced view of concurrency, by considering the role of fibers in a single-threaded frontend application.

We will start by building a “hello world” widget together as an example. This is when we will cover the core concepts. Then, attendees will work in pairs to design and implement an interactive widgets using Calico. To make their component interactive, they will have to reach for different features of Cats Effect and FS2. We will assemble all of these widgets into a single webapp.

I ran a version of this lab during the Typelevel Meetup last year. Here was the product:
https://www.armanbilge.com/lausanne-meetup-aug-2025/

Because attendees will work on their own widgets in pairs, I think this lab will simultaneously be able to serve two audiences:
(1) Attendees familiar with the Typelevel stack and want to have a taste of how it can be used to create frontend webapps with the Calico library.
(2) Attendees new to Typelevel and functional programming who will get a feel for the capabilities of this paradigm via an interactive sandbox.

Frannz Salon: Lab 2
13.Oct 2026
11:00am - 13:00pm
Interactive labs
Arman Bilge
Arman Bilge

Executive Director

Typelevel Foundation