In the world of software development, we often talk about rigid methodologies, detailed sprints, and comprehensive design documents. But sometimes, the best way to build something is to just… start. To follow your intuition, let the project guide you, and “vibe code” your way to a finished product.
That’s exactly how the SermonShortCreator came to be. I had a simple idea: create a tool to help churches and content creators quickly snip short, shareable clips from longer sermon videos, complete with a watermark. I didn’t have a grand plan, just a clear goal and a bit of a vibe.
This post is the story of that process, powered by a new kind of collaborator: the Gemini CLI in VS Code.
A Second Attempt, A New Vibe
This wasn’t my first attempt at building a video-editing tool with the help of AI. My initial journey, which I documented on in blog post Building My YouTube Shorts Generator with AI, was a more fragmented, “copy and paste” experience. I was jumping between ChatGPT, Copilot, and Gemini in my browser, using a mix of Python libraries like MoviePy and building a desktop app with Tkinter. It was a tedious process, fraught with the constant need to ensure correct indentation and syntax. The experience felt less like a partnership and more like a scavenger hunt for code snippets.
This time, I was determined to find a better way. I wanted a true collaborator, a tool that was seamlessly integrated into my workflow, not a separate window I had to manage. The Gemini CLI in VS Code promised just that, and it completely transformed the experience.
The Backend: A Python-Powered Video Engine
The “vibe” for the backend was pure utility. Python felt like the right choice because of its powerful scripting capabilities and the wealth of available libraries. The core of the backend is a script I initially called video_processor.py.
The plan was simple:
- Accept a video file.
- Use the incredible command-line tool
ffmpegto do the actual cutting. - Overlay a watermark image onto the new clip.
- Send it back to the user.
This is where the Gemini CLI truly shone. My initial thought was that Gemini would know the perfect way to interact with ffmpeg to accomplish my needs. Sometimes it did, but other times, I had to rework my prompts or scrap entire approaches when the output wasn’t quite what I had in mind. It was a fascinating back-and-forth, a real collaboration where I had to guide the AI as much as it guided me.
As the logic grew, I created a main.py to handle the web server aspects (likely using a lightweight framework like Flask or FastAPI) and moved the core video logic into video_processor.py. This wasn’t a pre-planned architecture; it was an organic refactoring that happened when the code started to “feel” messy. In fact, the entire application started out as a Windows desktop app. Using the Gemini CLI, I was able to transform my existing code into a fully functional web app. The vibe told me it was time to clean up.
The Frontend: A No-Fuss React UI
While the backend was the engine, the frontend is what the user actually sees and touches. For this, the vibe was “fast and interactive.” Create React App was the obvious choice to get a modern web app running in minutes without getting bogged down in configuration.
The entire user interface lives mostly within src/App.js. It didn’t need to be a complex, multi-page application. It needed a few simple controls: a file upload button, inputs for start and end times, a “Create Short” button, and a way to download the finished product.
I used standard HTML5 components and some simple CSS in App.css to make it look clean. The focus was entirely on function. Does it work? Is it intuitive? Perfect.
The “Vibe Coding” Reality with Gemini
What did “vibe coding” with a powerful AI assistant actually look like?
- A True Collaboration: The Gemini CLI was a game-changer. I’ve tried coding with AI in a browser before, and it’s tedious—especially with the constant copy-pasting and indenting. But having Gemini right inside my editor felt awesome. It was a seamless part of my workflow, able to monitor the console for errors and even suggest fixes automatically. It truly felt like a collaborative process, with new suggestions appearing after each successful goal was accomplished.
- The Unavoidable Back-and-Forth: While Gemini was a fantastic partner, it wasn’t a magic wand. There were moments of going back and forth, refining prompts to get the desired result. And sometimes, the code it produced wasn’t exactly what I had envisioned, but I learned to work with it. It was a humbling reminder that even with an AI assistant, a developer’s judgment is still essential. It was also a relief to see that even AI isn’t immune to bugs.
- The Bigger Picture: This process has me analyzing the future of development. Is this truly the new way? While it’s clear AI is a powerful tool, it’s not a replacement for human intuition. I’m now facing a new kind of challenge: figuring out how to best deploy this app. Should it be hosted on a remote server or kept in-house at the church? While I can see the value in making the app public, the potential costs of hosting are a real consideration.
“Vibe coding” isn’t about being lazy or disorganized. It’s about being agile in the truest sense of the word. It’s about staying close to the problem you’re trying to solve and letting your developer intuition—now amplified by a powerful AI—guide you. For small to medium-sized projects, it can be an incredibly effective and, dare I say, fun way to build software.
So next time you have an idea, maybe don’t open up a project management tool. Open up your code editor and just start building. See where the vibe—and your AI collaborator—takes you.

