Software products, from the first problem to maintenance.
What we do
Research and development
Open source libraries
How we work
We start from the problem Before writing code we work out who has the problem and how they'd describe it. The Bluetooth check started that way: to accept an order from a phone in Addubby, we needed to know whether the customer was really sitting at the table. We prototype, then rebuild A prototype, then the versions it takes. That check, which later became Troveme, went through three: a device on every table with a display and a QR code, then Bluetooth on the restaurant's gateway, and finally a single microcontroller with Wi-Fi and Bluetooth. We pull out what can be reused When a piece is useful to more than one product, we split it out into a library with documentation and examples. Our date and time zone handling started that way, with date-tz, because the people using our products sit in different time zones. We keep it maintained The work goes on after release: new versions, documentation, updated rules. The new 2026 time zone rules, for example, are already in our date library.
What we care about
Documentation with examples
An error beats a wrong value
Personal data only where it's needed
Few dependencies
Technical skills
Web and apps
Services and integrations
Devices
Technologies from our published products and projects
In our products
- NestJS
- TypeScript
- Angular
- MongoDB
- RabbitMQ
- Redis
- Capacitor
- Firebase Cloud Messaging
- jambonz
- Stripe
- Bluetooth Low Energy
- ESP32
- C++
- MQTT (Eclipse Mosquitto)
- .NET 5
- Entity Framework Core
- Keycloak (OAuth2)
- Vue.js
- Docker
In our open source projects
- Angular
- TypeScript
- NestJS
- JavaScript