Yohai Wiener

Frontend
Mobile
Backend

Crafting Digital Experiences

I thrive on building seamless applications that bridge the gap between elegant interfaces and robust backend systems. Every project is an opportunity to innovate and create impact.

With expertise across the full development stack, I enjoy tackling complex challenges and turning ambitious ideas into reality.

01
iZed preview icon

iZed

RustGPUIiPadOSSSH

An iPad port of Zed for working on projects over SSH. It adapts Zed's editor, tabs, project panel, Vim mode, and command palette for touch and a hardware keyboard. A Machine picker handles SSH identity, remote directories, and server setup. Built in small steps on a real iPad.

02

Plust

In Development
RustSwiftKotlinWebAssemblyWebCodecs

A video player I built to understand what happens between a media file and a frame on screen. A shared Rust core connects to native decoders on iOS, Android, and the web. I’m revisiting the project in public, starting with MP4 parsing and documenting what I learn.

03

Strixos

GoWebSocketsReact NativeTypeScriptSkiaAWS

A twist on Tic-tac-toe where marks vanish after three turns - makes it way more strategic! Built with a Go backend using WebSockets for real-time gameplay and deployed on a custom AWS setup. The mobile app uses React Native with Skia to craft smooth animations that make the game feel alive.

04

Telelogger

TypeScriptGoTelegram APInpm packageGo module

A utility package for logging messages with Telegram, available for both TypeScript and Go. Simplifies debugging and monitoring by sending log messages directly to Telegram chats or channels. Includes features like log levels, formatting options, and rate limiting to prevent spam during high-volume events.

05

Kindle Highlights Extractor

GoWeb ScrapingHTML ParsingCLI

A Go-based tool that extracts highlights from Kindle's web reader. Uses web scraping techniques to access and parse your Kindle highlights, making them available in various formats for note-taking apps or personal archives. Preserves book metadata and highlight context for better organization.

06

Kairos

React NativeSkiaSQLiteReanimatedTypeScript

A mobile app that helps you make the most of your spare time. Instead of managing all tasks, it focuses on quick, productive activities you can do during free moments. Built with React Native, using Skia for custom UI elements and Reanimated for smooth interactions. Local SQLite database keeps everything simple and private.

07

FlexiPlan

ReactReact NativeSupabasePostgreSQLTypeScript

Cross-platform gymnastics session planner that helps coaches design personalized training programs. Available on both web and mobile, it enables creating custom sessions for individual athletes and groups. Built with React for web and React Native for mobile, using Supabase for real-time data sync, authentication, and PostgreSQL storage.

08
Tumbling Logo

Tumbling Tariff Calculator

ReactReact NativeSwiftTypeScript

A handy tool that simplifies power tumbling score calculations, making competition preparation easier for athletes and coaches. Available across mobile, web, and native macOS, it helps quickly determine pass difficulty scores. My first venture into cross-platform development, combining React Native, React, and Swift to create something useful for the gymnastics community.

09

Breathe Air

React NativeAfter EffectsSQLiteTypeScript

A mindful breathwork companion offering multiple techniques like Tummo and box breathing. Features smooth, calming animations crafted in Adobe After Effects to guide users through each session. Built with React Native and uses SQLite for seamless offline access to session history and preferences.

10

TargetsFit

React NativeTypeScriptSQLite

A fresh take on workout planning that focuses on movement patterns rather than traditional exercises. Users define abstract movement targets like 'hip internal rotation' and set weekly frequency goals, then flexibly distribute these across their schedule. This approach makes workout planning more intuitive and adaptable to individual needs.