Ship it as a real project
A spec before the code, tasks with acceptance criteria, one pull request each, and tests that keep the documentation honest. An experiment that cannot be read by someone else is a note, not a project.
Labs is where I test the parts of a product before a client depends on them: real-time voice interfaces, streaming LLM responses, on-device inference, and the boring machinery around them — state machines, interruption handling, evaluation. Some are mine, some are proofs of concept built to answer a question for a client and published once it was answered. Each one ships as a real repository with a spec, tests and documentation, not a gist. What survives here is what I bring into client work.
A spec before the code, tasks with acceptance criteria, one pull request each, and tests that keep the documentation honest. An experiment that cannot be read by someone else is a note, not a project.
Input to output, including the unglamorous middle: audio buffers, streaming parsers, cancellation, error states. The interesting problems in AI products almost never live in the prompt.
Platform frameworks first. It keeps the build reproducible years later, keeps the licence clean, and forces me to actually understand the layer I would otherwise import.
If the work can run on the user’s machine, it runs there. On-device speech, local models and edge inference are design constraints I like: they make the product cheaper and the data question simple.
Talk to a local or remote LLM with your voice. Native macOS, on-device speech, zero dependencies.
A visitor talks to a page in Spanish and hangs up with a confirmed 30-minute appointment on the business calendar.
Two repositories are public right now. HermesVoice is a native macOS voice client for large language models, MIT licensed, at github.com/devrchancay/hermes-voice-jarvis. The voice booking agent (github.com/devrchancay/elevenlabs-cal-demo) is a proof of concept built for a client: a visitor talks to a page in Spanish and hangs up with a confirmed appointment, using ElevenLabs Agents, Cal.com and a Fastify backend. Earlier, as part of the Nexxtway team, he contributed to react-rainbow-components, an open-source React component library. Everything is built in public: the spec, the task list and the pull requests are all in the repository.
HermesVoice is a native macOS app, styled after the J.A.R.V.I.S. HUD, that lets you hold a spoken conversation with a large language model. Speech recognition and synthesis run on-device with SFSpeechRecognizer and AVSpeechSynthesizer, the reply streams over server-sent events and is spoken sentence by sentence, and you can interrupt it by talking over it. It is written in Swift and SwiftUI with zero third-party dependencies and requires macOS 14 or later.
Any OpenAI-compatible endpoint that serves POST /v1/chat/completions with streaming. That includes a Hermes Agent instance from Nous Research, the OpenAI API, and local runtimes such as Ollama and LM Studio. The server URL is set in the app, and the API key is optional and stored in the macOS Keychain, so a local server without authentication works with no key at all.
No. Both the recognition and the synthesis run on-device, so only the transcribed text is sent to whichever model you point the app at. The language picker lists only the languages your Mac can both transcribe and speak locally, and explicitly flags any language whose recognition would have to leave the device. The only running cost is the model itself.
It is a proof of concept built for a client, and it works end to end: the visitor opens a page, talks to an assistant in Spanish, and hangs up with a confirmed 30-minute appointment on the business calendar. ElevenLabs Agents handles speech, turn-taking and the model, Cal.com owns the calendar, and a Fastify backend in TypeScript sits in between so the model never does date arithmetic, never writes a timestamp and never sees the Cal.com key. There is a full write-up of the build on the blog.
HermesVoice is MIT licensed, so it can be used, modified and shipped commercially with attribution. The voice booking agent is a public repository with no licence file, so it is there to be read and learned from rather than reused as-is: if you want that flow in your product, the practical route is to build it for your calendar and your copy. Issues and pull requests are welcome on both.
Spec first. The architecture, API contract and UI design are written down before any code, the work is split into numbered tasks with acceptance criteria, and each task ships as its own pull request with tests. In HermesVoice the README screenshots are rendered from the real SwiftUI views with ImageRenderer as part of the test suite, so the documentation cannot silently drift away from the app. In the voice booking agent the agent itself is versioned JSON applied with the ElevenLabs CLI, and 153 tests plus a simulation harness run without touching the network.
Yes — the voice booking agent above was exactly that, built end to end for a client. Ramón builds voice and AI features end to end for web, mobile and desktop products: real-time speech interfaces, streaming LLM responses, RAG over your own data, and local or edge inference when the audio or the documents cannot leave the user’s machine. The fastest start is a short call to define the use case and the constraints.
More than a decade shipping product across web, mobile and AI left me something more valuable than a stack: judgment. If your team is stuck on a technical decision, evaluating a stack, or wants a second opinion before sinking months into a direction, let's talk.