Projects IdeaWood P.02

Sysel

A mobile app for scaling timber in the forest that we designed as a team and I built: it works without signal, takes voice input for individual pieces and is on both the App Store and Google Play.

Role
Design, development
Period
2026 → present
Scope
Mobile app (iOS, Android) and web version, local database and sync
Status
In production (App Store, Google Play)

Product site at ideawood.cz ↗

Job list, piece-by-piece measuring and the job summary with volume and backup status. Sample data, no real customer.
Fig. 1 · Job list, piece-by-piece measuring and the job summary with volume and backup status. Sample data, no real customer.

The brief

Sysel is a mobile app for scaling timber right in the forest. You measure piece by piece or enter the counts from a notebook, the measurements become a job, and an invoice can be issued from the job straight from the phone. The app runs on iOS and Android, and there is a web version too.

We designed the app as a team and I built it, from working without signal to voice input. Sysel shares the REST API of IS WoodSoft, so jobs and invoices end up in the same system.

What is worth mentioning

01

Working without signal and syncing with the server

In the forest the signal is weak or missing, so the app saves everything in the phone and you can measure without a connection. Once it is connected, it first sends to the server what changed in the phone and then downloads the changes from the server. If the same record changed somewhere else in the meantime, the app notices and resolves it on its own.

02

Voice entry of pieces

The person measuring has a caliper or a tape in hand, so there are no free hands for typing. They can dictate the pieces instead, and the app reads the reply aloud. The phone itself understands Czech if the language pack is installed, otherwise the speech is processed over the network. The app picks which of the two to use.

03

Round timber volume from the ČSN 48 0009 cubing tables, including debarked timber

The volume is calculated according to the Czech standard ČSN 48 0009, that is from tables for groups of tree species, and lengths that are not in the table are interpolated. For debarked timber you enter the diameter under bark and the bark is no longer deducted. The app remembers whether it is a diameter under bark on the job and on every measurement.

What it looks like

The From notebook screen on the phone: a table of diameters, piece counts and volumes with the label Spruce logs 4 m
Fig. 2 · Tally from the notebook: piece counts by diameter, the volume is calculated on its own.
The new measuring template form with a choice of species, length and a diameter range from 16 to 46 cm
Fig. 3 · New measuring template: species, length and diameter range.
The list of buyers in the app, with Call and E-mail buttons for each company
Fig. 4 · Buyer directory with buttons for calling and e-mail.

Download on the App Store Get it on Google Play

What it runs on

  • Expo 54
  • React Native 0.81
  • TypeScript
  • SQLite (expo-sqlite)
  • Drizzle ORM
  • TanStack Query
  • OpenAPI client

The app always writes to a local SQLite database, and sync reconciles it with the REST API it shares with IS WoodSoft once there is signal again. Voice input runs on the device's own speech recognition.

Sysel architecture The mobile app always reads and writes to a local SQLite database. Sync takes the records that are not synced yet, pushes them to the REST API and then pulls the server state, including conflict resolution. Sysel shares the REST API with IS WoodSoft. Voice input comes from on-device speech recognition that sends the dictated pieces to the app. Invoicing a job and map tasks are called on the REST API directly. SPEECH RECOGNITION MOBILE APP SQLITE (LOCAL DB) SYNC REST API (SHARED WITH WOODSOFT) INVOICES, MAP TASKS

I describe how I build systems like this on the How I work page.

Want to build something similar?

Get in touch →