Kyan De Sutter

I'm a full-stack engineer at CanaryCoders, a small studio in the Canary Islands. I design screens, write APIs, ship to the App Store and keep the servers happy. After hours I build desktop software in Rust.

Drag to turn. Click it, then use the arrow keys to play.Drag to turn.

Work at CanaryCoders

CanaryPulse

A platform for discovering the Canary Islands: beaches, hikes, restaurants, places to stay, events and local forums across all eight islands.

I helped build it across the stack: the web apps, the mobile app, the admin tools and the APIs they share, plus Pulse, the guide you can ask questions.

  • React
  • React Native
  • TypeScript
  • Cloudflare Workers
The CanaryPulse home page: a headline, a search box and a map of the eight Canary Islands

Be Fit 2 Sail

A training app for dinghy sailors. It plans gym, cardio and rest around your regattas, availability and fatigue.

There is a coach you can talk to, set-by-set workout logging, and one calendar for the whole season. I built the app, the API behind it and the admin, and took it through App Store review.

  • Expo
  • SwiftUI
  • TypeScript
  • Cloudflare Workers
Four Be Fit 2 Sail screens: the home screen, the week plan, the coach chat and a workout in progress

Club La Santa map

Resort navigation for Club La Santa. Guests enter their room number and get compass guidance to it, with nothing to install.

Behind the map sit an admin for the resort staff and a spatial database of the grounds.

  • React
  • Hono and tRPC
  • PostgreSQL and PostGIS
  • Cloudflare Workers
The Club La Santa navigation app on a phone, asking for a language and a room number over an aerial view of the resort

CanaryLytics

The cookieless analytics we run on our own products. One script tag, and traffic shows up live.

It counts pageviews and sessions without cookies, IP logging or fingerprinting, so nothing that identifies a person reaches the database and no consent banner is needed.

  • TypeScript
  • Cloudflare Workers
The CanaryLytics landing page, showing the script tag to paste and the fields it never stores

On my own time

Lynk

A keyboard-first browser where one command bar takes addresses, open tabs and every action the window has.

Pages render in Chromium through CEF. Everything around them is native: every row, field, popover and dialog is a real AppKit or GTK4 widget, with no HTML in the interface.

  • Rust
  • React
  • CEF
  • AppKit
  • GTK4
Lynk on macOS with the command bar open, searching for "formal" and offering matching open tabs

FormalShell

One Rust process that draws the bar, launcher, panels, notifications, lock screen, greeter and screensaver.

Every colour comes from the wallpaper, everything is reachable from the keyboard and drivable over IPC. It has been the session shell on both of my development machines since August 2026.

  • Rust
  • Wayland
  • D-Bus
  • BlueZ
  • IPC
FormalShell on Hyprland: a top bar with workspaces and the launcher open over a blurred wallpaper

NativeDesktop

A Rust toolkit for desktop apps. You describe a window once and each platform draws it with its own widgets.

On macOS that means a real NSToolbar, NSButton and NSTableView. Linux gets a libadwaita look, Windows a Fluent one, and the same tree compiles to WebAssembly. My iMessage and YouTube Music clients are built on it.

  • Rust
  • AppKit
  • GPUI
  • WebAssembly
  • API design
The NativeDesktop gallery example on macOS, showing a sidebar of native components and a command palette page

meshtop

Resource usage, connections and coding agents across all my machines, in one terminal.

It starts an agent on each host over ssh, so there is no daemon and no open port. The map view is a 3D mesh of the machines that you drag to turn, drawn entirely in terminal characters.

  • Rust
  • TUI
  • SSH
  • 3D projection
meshtop in a terminal: a rotating 3D map of three machines and their ssh links, beside CPU, memory and network graphs

Skills

More projects

I'm not for hire, but I'm easy to reach.

Client projects go through CanaryCoders. For anything else, email me.