0%case-study / production
← Back to projects

01 / Latest product

Voxnara

A local-first voice workspace for producing speech from text, transcribing supported audio locally, refining pronunciation, and managing voice projects from one desktop application.

ProductionWindowsmacOSLocal-first
voice-workspace.png1920 × 1080
Voxnara desktop dashboard with text-to-speech, speech-to-text, projects, and processing queue

/overview/product.md

One workspace for voice projects.

Voxnara brings text-to-speech authoring, speech-to-text workflows, pronunciation management, voice providers, project organization, processing queues, and exports into a focused desktop product. Its local-first architecture keeps projects and application state on the user's device.

My role spans product planning, software architecture, React and TypeScript interface development, Tauri and Rust native services, SQLite persistence, native speech integration, voice-provider boundaries, licensing, testing, packaging, and release maintenance.

React 19TypeScriptViteTauri 2RustSQLiteNative speech
// product type
Cross-platform desktop voice workspace
// engineering focus
Local projects, speech engines, durable editing
// delivery
Windows and macOS application bundles

/architecture/system.map

Native capability, clear boundaries.

The product separates interactive editing, native operations, persisted project state, and speech engines. Platform-specific capabilities are exposed through a narrow typed bridge rather than leaking operating-system details into the interface.

01 / interface

React + TypeScript

Dashboard, TTS and STT editors, projects, pronunciation, providers, queues, settings, and localization.

02 / bridge

Tauri IPC

Typed commands and events connect the interface to speech, storage, licensing, filesystem, and export operations.

03 / native core

Rust services

Validation, platform adapters, offline-recognizer checks, queue work, secure configuration, and native integration.

04 / data + engines

SQLite + speech

Local project state and pronunciation data connect deliberately to installed voices, offline recognition, or configured providers.

/engineering/decisions.log

Voice workflows that remain editable.

The engineering focus is durable user work: text edits, pronunciation rules, processing state, capability checks, and exports must remain understandable and recoverable across sessions.

01

Local-first projects

Projects, editor state, pronunciation data, and operational records persist locally so the desktop application remains the source of truth.

02

Capability-gated STT

Offline transcription checks available native recognizers and supported locales before presenting the capability as usable.

03

Durable TTS editing

Text effects are rebased across insertions, deletions, replacements, and Unicode content instead of being discarded after every edit.

04

Pronunciation state

Shared persisted pronunciation rules remain available across navigation and are applied through a consistent project-level workflow.

05

Queue visibility

Running, queued, completed, and failed speech tasks stay visible so users can understand progress and recover from errors.

06

Release integrity

License verification, production-key checks, tests, artifact metadata, signing gates, and Windows/macOS packaging form part of the delivery pipeline.

/next/connect.sh

Building a native product with complex workflows?

I design cross-platform applications where interface state, native capabilities, local data, provider boundaries, packaging, and long-term maintenance work as one product.