Skip to content

Software products, from the first problem to maintenance.

Riolabs S.r.l. designs and builds software products. When a piece of code is useful to others too, we publish it as open source.

What we do

Software products

We design and build our own products, from the idea to release. Today there's Chattoo, a virtual assistant that answers a business's customers on WhatsApp, Instagram, email, website chat and phone; before that, Addubby, a smart menu for restaurants, with orders, bookings and payments.

Research and development

When there's no ready-made solution, we build one. In 2021, with Troveme, we worked on proving that a smartphone is really inside a building, where GPS can't reach: Bluetooth Low Energy devices, an expiring token and a single API to check it.

Open source libraries

Angular components (ng-bootstrap), a base for applications made of many apps (ng-app), dates and times in the right time zone (date-tz), NestJS services that talk over RabbitMQ (nestjs-amqp): libraries we develop and publish on GitHub and npm, and some of them run in our own products.

How we work

Each step below comes from a real project, described on its own pages.

  1. 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.

  2. 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.

  3. 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.

  4. 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

Our libraries ship with a guide and live examples or a playground, so you can try them before installing.

An error beats a wrong value

If a date doesn't match the pattern, date-tz throws instead of guessing. And in the nestjs-amqp gateway, errors from the services come back with the right HTTP status.

Personal data only where it's needed

In the Troveme location check we kept it out: users and access were handled by a separate service.

Few dependencies

Every dependency is code to keep an eye on over time. date-tz, our date library, has none.

Technical skills

Web and apps

Web interfaces, management consoles and phone apps.

Services and integrations

Microservices, message queues, sign-in and payments, messaging channels.

Devices

Microcontroller boards with Bluetooth Low Energy, configured from a phone.

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

Why open source

The code our products need is often useful to others too. Publishing it pushes us to document it and keep it tidy, and anyone using it can see how we work.

Our open source projects

Questions about what we do? Let's talk.