The why (personal)

Hi.

If you're here — then you're interested in learning more about the person behind Bowdler.

I'll take the following path — first I'll tell you about myself, then I'll tell you about Bowdler and why I built it. I hope that every reader will find a piece of themselves in this text and feel that they're not alone in their work. That in fate and in vast thoughts — they're not alone either.

At the time of writing I am 22 years old. This text might seem surprising or naive, might seem like an excuse. But since you're here — I have nothing to hide. And I don't need to justify myself to anyone. Enjoy the read.

Let's go back to my childhood — I was always a very curious person. I lived everything that surrounded me. I tried to understand everything around me. When I say "lived everything that surrounded me" — I mean I really dug deeper and asked hard questions about everything that happened to me. All parents idealize their children, but mine looked at me differently — as someone who doesn't just dream, but does everything to achieve goals and ideals, where only interest and the possibility of changing something mattered.

One of the most important objects of my attention became my father's personal computer. It was the first thing I drowned in after solving social problems. (By pure coincidence, my father is a huge man, an engineer with a kind soul who also didn't dwell on problems — he solved them. And he still does, successfully, to this day. I know he'll read this — you never stopped my hunger and my foolishness, you were always there when needed, you led by example. Your contribution is hard to overstate. He is foundational.) And from early childhood I started digging deeper into everything connected to that computer. Looking back, it was fairly modern for its time, and I didn't just take it apart as a kid — I thought about why and how. Besides hardware, I got into software too — I taught myself editing, tried programming, played a lot of games and modified them. I don't know computers as a tool — I know them as a friend. And I see people through and through.

After finishing school, I moved many kilometers from home to study in another country. I went back and forth between professions (after all, you have to decide what you'll devote your life to) — and in the end I enrolled not in Computer Science, but in Finance, Accounting & Management. An interesting turn, isn't it? The catch was this — I wanted to combine technology and management in companies in my life. But one was impossible without the other. In my first year of university I wasn't just studying macroeconomics and EU law — I was also writing Telegram bots. I didn't attend computer science lectures at all — they were trying to tell us why AI mattered, while I had already spent a year understanding how ChatGPT worked, and had been following AI training even before that. I could have taught informatics in that very lecture hall myself — it just wasn't the right audience. And who was I, anyway?

Several years passed at that pace — I worked with technology and Python, in parallel learning things that were already obvious to me. I'd been drawn to economics and the organization of people since childhood — it came naturally to me. And it turned out that by attending university, I almost never learned anything new for myself, or I learned things that would probably have come to me anyway when needed. That's a very bold claim for an ordinary, unassuming person to make. But that's my nature. I won't trust the system — I'll build it myself, inside myself. I'll gain knowledge by arriving at it myself, not by dryly cramming a book before an exam. Having become completely disillusioned with the education system, I understood — it wasn't for me.

When I dropped out, I wasn't afraid. Incredible challenges life had thrown at me and surviving in another country had taken their toll on me and on the person I loved and still miss to this day (...). I was in a severe depression (I've been fine for a long time now!) — but I knew I'd return home to the people close to me. Because, introvert as I am, being with them is what makes me keep moving forward. That was the second time in my life I believed in myself and sent myself out into open waters. By that point, my total experience in programming was 5 years. From time to time, not consistently, I solved my own small problems with code. And I dealt with computers the way someone who'd worked in tech support would — all the friends I helped can attest to that. I also tried a bunch of cool things, like Swift Playgrounds, which pushed me to make a simple iOS app (AI couldn't write a single line of code back then — I figured it all out myself. And, by the way, I belong to that generation that used to look for answers to coding errors on Chinese forums). But what was I supposed to do with that experience? It was so scattered that I couldn't find a job with it (not that I wanted one — but hunger took its toll), and I was simply stuck before the next stage of my life.

While editing test videos (something I'd also been into on and off since childhood — hello, Sony Vegas Pro 13 — and I'd even done test assignments to work as an editor), I noticed that Final Cut didn't have the tools I expected. Why was there no way to make great subtitles in my language? Why couldn't you remove silence from a video? Later, while editing Twitch streams, I asked myself another question — what services even help remove profanity from video? It's so simple to implement technically.

I remember that exact moment — a downloaded small Whisper model that ran beautifully on my Air M4, a script named whisper_profanity_test.py. That script became the starting point of my life. Three months later, the world saw Bowdler. But it was a different Bowdler then — one that could only make subtitles, remove silence, and mute profanity.

As I talked with people in the professional editing world, I realized that wasn't what they needed. They needed other features. My vision broadened in that moment — Transcript Edit was born. I started seeing the market more clearly — even though that was never my priority. I began applying my love of technology and bringing it into editing wherever it made sense. Slowly, for now — but users were glad.

So basically, first I solved my own problem, and then I saw other people's problems, and that only deepened my interest in development, because I love helping people and I love complex systems. That's where my two selves met — INFJ in how I relate to people, and INTJ in how I work. The second one, by the way, is too much of an idealist, which is exactly why I spend so much time on development — I'm afraid to release something that isn't perfect. In the three weeks before writing this text, I spent around 200 hours on development, all to rewrite the architecture and make it more convenient and better.

Now, after 7 months of practically daily development (I'm not exaggerating) — as I write this, a lot is planned (and some of it is already done, just not properly tested yet). And I'd like to see Bowdler as a tool that helps hundreds of people around the world speed up their editing process and focus on the creative work.

Right now, I want to sharpen the app like a stone, and after that, keep it close and keep sharpening it for as long as I possibly can. Because this — this is my project. I see where the market stands — and it's lagging behind technological trends. Also, a lot of similar services have stopped chasing new technology altogether — they settle for "the product works" — and the ones that do chase it cost an insane amount of money.

Along my path with Bowdler, I've talked with an incredibly large number of kind people who forgave my development delays and my inconsistency, and who saw how much this mattered to me and how much I love working on something I care about. Thank you. You have no idea what state I was in when I read your kind emails. I wanted to cry and smile at the same time, but I had to keep working. Kind people really do exist! And I got lucky — I attracted users who don't just want to see a product, they want to see the person behind it. But it's important to stay grounded, not to float away — which is exactly why I deeply value it when the app gets criticized constructively, even harshly. Any feedback is valuable to me.

I want to believe that human creativity will remain irreplaceable. You can use powerful tools, but the final decision should always be made by a human. That's the principle Bowdler runs on: it doesn't make the final call in creative work like editing, it removes the routine, tedious parts. Whether it's a videographer or an editor — only they make the final creative decisions. And they're worth far more than people tend to think.

So that's me. A technology-hungry empath. I walked a very hard road to get here, and not everyone who just wants to speed up their editing needs to know about it. But to those who want to know what kind of altruist builds a project like this for half a year with no marketing, basically no profit, and no team — I say hello to you. If you're reading this, you are an incredibly valuable person, not just to me, but to the people close to you. Your kindness will come back to you twofold. Thank you.

I don't know what happens next, how my life will unfold, or whether the effort will pay off. But I know one thing for certain — I tried to help people. And it just so happened, fortunately, that my skills and knowledge were enough to achieve that goal. I'm not sure I'll write something like this publicly again, but let this text be the beginning of a bigger story — for Bowdler, and for me. I regret nothing. One last thing I can say for certain: once I feel that Bowdler is fully grown and polished (and there's still a lot of work ahead), I'll keep closing out the natural need of my complicated personality — to make this world better, with my skills and my wide-open view of it. See ya.

May your dreams come true too,
Vladislav Korobkin


The how (technical)

In the first part of this text I told you about myself — but I didn't tell you about the technical difficulties, or about Bowdler's product identity. The audience for these reflections is even smaller, but no less important to me. First we'll dive into the technical world, then into monetization. Get comfortable — this is going to be a dry but interesting story.

The story begins in winter 2025, when I ran into the following problem: the market didn't offer a cheap way to censor video. Digging deeper, I found other cloud-based video editing services using video transcription technology. They cost an unreasonable amount. Looking back today, I understand why it was so expensive — building and maintaining something like that requires incredible specialists, even though the underlying cost is pennies. What does Whisper transcription on AWS even cost? Nothing.

The idea of building an app was very ambitious at that point. I had no idea how I'd close all the gaps in my skills, since I only knew basic Swift, and extracting audio and working with video are something else entirely. On top of that, at the time I was planning to release the app not just on macOS, but on Windows too. I took a look at Tauri — even though I'd only touched Rust writing test code for servers (back when I was 16, I'd already considered that language as my main one, for its technical elegance and simplicity. But I didn't go through with it — and stayed with Python). React wasn't foreign to me — and beyond that, I consider web interfaces more universal and more precise than native ones. And I value being able to change every single detail. And which Whisper implementation to use — that was its own mystery. I settled on MLX at the time (which was a bit silly, but still better than plain Whisper). It seemed like the perfect solution to me, since implementing a model in a language I already knew was an incredible kind of joy... Of course, I was simultaneously considering a move to CUDA (for Windows), but over time that task became unworkable, since I gradually sank even deeper into optimizing for Mac.

To sum up, I used Tauri (Rust, React), Python for ML processing and part of the backend, and Swift for audio/video handling. The backend's main weight sat on Python (after which I quickly ran into problems and started moving everything over to Rust).

  • Framework: Tauri v2 (Rust backend, React frontend)
  • ML processing: Python (Whisper MLX, Parakeet GGUF, Silero VAD)
  • Media handling: Swift for audio/video I/O and ProRes pipeline
  • License security: Apple SEP + Go API on custom backend

As I implemented Whisper I ran into a pile of problems — hallucinations, inaccuracy, poor optimization, poor performance in other languages. If I managed to solve the first two using custom algorithms (which, arguably, wasn't even my job — but I did it because output accuracy was a priority for me, since otherwise Transcript Edit simply couldn't work), then optimization and inaccuracy on non-English content kept haunting me and my users. The second pick for the model went to Parakeet, this time more deliberately — it was implemented in Rust (something I take incredible pride in: that I recognized my early mistakes and managed to step outside my Python comfort zone). Even though it's a heavy load on users in terms of how much unnecessary information it throws at them, I labeled every model inside Parakeet for this exact case and added six different ones.

Parakeet — a breath of fresh air after Whisper. I don't want to dive into the technical weeds, but it filled me with real excitement. Latency, accuracy across different languages, all balanced against model weight — that's not magic, that's brutally hard architectural decision-making. Whisper and Parakeet were built in different eras, and as a developer it's satisfying to know we're all still moving forward. My comparison tests gave incredible results, but Parakeet drops off on long videos. Still — that's a good trade-off.

Vosk is also worth mentioning — it stayed in the app only for handling censorship. But after weighing whether to integrate it further, and after testing, I decided to keep it in that one mode only. It didn't meet the accuracy bar — even though it was incredibly well-optimized and accurate in my native language. As of writing this, I haven't decided to remove it — let it stay as part of this enormous path of mine, back when I was trying to absorb and test everything that came within reach.

UX became a major undertaking — I tried to pack in as much functionality as possible while still keeping things simple for users. As I see it, the app looks simple, but gives plenty of room to fine-tune the processing models and their functionality.

It also became a massive task to get the product to actually hold up as a project. Adding a Free Trial changed my whole relationship with protection and reliability in the app. It forced me to implement SEP (more on that shortly), and to package and sign all the Python code inside. That's an enormously large piece of work — but without the product actually holding together as a real project, it would have stayed at the level of half-measures rather than concrete decisions made and owned.

I implemented SEP with no fallback — that's an extremely harsh measure. Why? We're already living in a world where old hardware has run its course, and every new Mac supports this architecture (in general, very few people would want to run AI models on old Macs anyway, and I targeted the M-series line from the start, so even Intel Macs with the T1 chip aren't my target audience). This gives users data protection and a simple way to bind the license to the machine (something Apple doesn't let you implement through UUID encryption and the like — which is the right call on their part, but it creates an enormous gap for developers, and a lot of people give up halfway through trying to build that kind of heavy architecture). I built an API in Go that handles the remaining edge cases (if something goes wrong, a user can unlink their device from the license once every 30 days) and connects to the single source of truth for information about the app and licenses (previously, the Gumroad license was just checked directly against the device — now that's been moved out into its own system). I also gave proper attention to security, but the rest of those protections will stay between me and anyone who tries to get around them. In short — this was the heaviest architectural decision I've made, one most users will never even notice. It was very harsh on me personally — but those are the rules of the game when you're aiming above your own head.

Now, a bit on the product side. No joke — with three features — subtitles, silence removal, and profanity censorship — I priced it at $19 back then. That's laughable now — but at the time I genuinely didn't believe I could solve someone else's problem the way I'd solved my own. Users showed up — and their influence on my vision is priceless. People compared it in quality to $100 products. The price climbed as reliability and the feature set grew. And even now it's unreasonably lower than competitors — that's a conscious choice. At one point I spent a lot of time making the project more marketing-friendly — wrote up nicer descriptions, raised the price, calculated how long the money I'd get would last me for further development and different growth scenarios. With that approach, more buyers showed up. And the question of pricing itself is a big one, since price always depends on positioning and complexity. But when you're building something for yourself, those two concepts fade into the background — and what you want isn't to make money, it's to make a powerful tool accessible. If I worked at a company — that'd be a different story. I know how to evaluate businesses, their structure, but a one-person operating model is too unique, and leans far more on altruism than on profit. The second one, more often than not, turns out to be the favorable outcome — if the work itself is done well and at scale.

That's exactly why, at every stage, I'd imagine — "what if I were running a team building Bowdler? What price would I set for the product right now?" That's to say I do have common sense and grounded reasoning — but Bowdler isn't about perfect marketing, and it isn't about perfect positioning. It's a human-to-human product, not a business-to-consumer one. It's tied to my own ideals and principles. So, comparing those two business models, you'll understand my position. Yes, I do bend to the market somewhat — the app's price isn't small after all. But at a lower price, I'd be pulling in a different audience, one that could undermine my vision and principles.

Why not a subscription model? It's simple. If the product is human-to-human — in a world where everyone is tired of everything being monetized, in a world where every professional or hobbyist wants to own something, not rent some piece of software or a camera — then a subscription model makes no sense. So there will be no subscription model in Bowdler. I'm taking on the full risk of under-monetizing the app, but let's circle back once more to where this started, and to me — I want to help people.

And I chose a position deliberately, somewhere between business and human. I'm using the power that comes from that decision — because inside a company (where I'd carry responsibility for decisions at an even bigger scale, since other people would be depending on me) I could never allow myself this, not in a million years. I'd be trying to squeeze every reasonable cent out of users, and I'd be the one explaining to them why that's justified. So, from a product standpoint — you can judge me for this, but you can also understand one simple thing: in a world of monetization and AI, people are going to choose the people who offer them solutions for a fair price. And I can afford to make that call — because I have no team, I work as hard as ten people, which means I'm paying myself. And my altruism is what makes the product more accessible. That's just how the indie development market works.

Driving traffic to Bowdler was a hard problem, but I bet on the affiliate system, and it hasn't fully paid off yet. But for a project with not a single cent for marketing — it's the only right move. Paying the people who promote you, and giving them a real stake in it, matters more than helplessly shouting about how great your project is.

The model here works like this — I take on the full identity, I show outwardly everything Bowdler has to offer (the site, as you've seen, isn't dry text — it's animations, concepts, and examples, meant to show my attitude and the philosophy behind the project). The affiliate shows what the project means to them, and offers users a 10% discount (which makes using their link genuinely worth it). That's appealing, and most importantly, honest. And, for what it's worth, generous. But fairly generous — because I can't keep up with everything alone. I have to bet either on development or on marketing. Throwing words around isn't my strength — I'd rather have a working but unknown project than a broken one. But marketing is an important part if you want to keep growing. So I'm learning it out of genuine interest in doing it well going forward.

The conclusion is the same as in the first text — I don't regret the hard decisions or the way the market has pushed and pulled me. This is part of my becoming — and however thorny this path may be, it's mine. So — see ya.

Vladislav Korobkin