009 — Introducing, Transmits
E10

009 — Introducing, Transmits

I have finally settled on the project that I will be documenting on this podcast. I would like to introduce you to, Transmits. transmits.io is domain I have been sitting on for the past 4 years. When I had originally registered it I was working on a React Native prototype of an app that I was exploring, which was essentially an iOS Voice Memos app that was going to be platform agnostic. That prototype still lives on my machine, but work and life got in the way from taking it any further than a very rough example of getting some basic audio recording capturing and reviewing within the app.

Since then, I have worked on a bunch of different stuff, both for clients and personally, but this idea of a simple app that lets you quickly record some audio and easily share it with friends—or beyond—has remained constant over that time. Although, the one thing that has changed is my thoughts on what makes the most sense for how to build the app.

Over the last 4 years a lot of advancements have been made in the browser space to better support progressive web apps, things like local SQLite instances running in the browser, push notifications on Mobile Safari, and generally more packages and tools that make it easier to build a good PWA experiences that can truly rival native apps. So, with that said, this version of Transmits is going to be built with 100% progressive web app support from the beginning.

At this point, I already have basic PWA support for the app. You can turn off wifi and cellular and browse all the pages you had originally viewed while being online. And, I have some basic recording support setup via the Web Audio/MediaStream Recording API’s. Both the marketing site and app are built in React/NextJS, and I am going to explore building the API with NestJS (since this is a stack pairing that I have been wanting to explore).

Next on my list to tackle includes:
  • Get local file saving setup via the File System API
  • Setup local-first data handling (probably using electric-sql, or something similar)
  • Audio filters to apply to recordings in real-time via Web Audio API
  • Real-time transcription support via local automatic speech recognition (ASR) model
  • Integrations to make it easy to take recordings captured via Transmits and distribute them (looking at you, transistor.fm!)
  • Some other odds and ends to make the app feel more native, like Push Notifications and what not
I was definitely debating which project to really commit to, and this one ticked all the boxes of the type of app and technologies that I wanted to dig into more. Not to mention, if it turns out how I think it will, I will probably be able to drop my Adobe Audition setup and record all of my podcast episodes via this app, with a simple flow for distributing them to Transistor, Substack, Medium, and beyond.

I hope this project seems interesting to you, and I look forward to sharing my learnings from building it along the way.

To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.

Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:
Transistor FM
Fathom Analytics