#003: Owning the Full Loop — My First App Shipped
I've been marketing other people's products for decades - then AI allowed me to build and market my own app. Learn from my journey so can do the same. Checklist inside.
I’ve been marketing other people’s products for decades. But AI is now allowing me to build and market my own products. Single-person operators can now own the entire loop from product development to product marketing, and every function between. I’m proof of that.
I may be romanticizing ‘vibe coding’ a bit, but for some of us older folks, it’s opened doors that were shut for a long time. Let me explain. Creating an app had been a dream of mine for 20 years.
As far back as 2006, when Facebook was still a new thing, I sat in a McDonald’s in China sketching app ideas with a classmate of mine from Germany. He and I sat there imagining all kinds of futures.
But for whatever set of reasons, I lost touch with that dream. I tucked away the possibility in some dusty chest in my brain’s attic, like the one Clark Griswold discovered in the Christmas Vacation movie.
Fast forward to today. I just deployed my first app to production—Narrly.AI. The entire process, from coding to the website, was done without hiring or outsourcing a single task. (Sure, the tools I used are hosted elsewhere so technically that’s like outsourcing. Ok, fine, you got me there.) But in reality I am able to directly control the full loop.
I’m not trying to gloat. The reality is that the app is still mostly unused and the odds are against it winning any clicks in today’s attention economy. I haven’t (and don’t plan to) quit my day job any time soon, and still have a ton to learn. It was a total pain to get the app deployed—it took 8 months of random dev sessions between work and life priorities.
I also took a two month detour building prototypes in Replit and bolt.new. Then ChatGPT recommended that I go all-in on Cursor. I took the bait. It was the tool I needed for the job. Save yourself the time and just start there. This was the first time I truly understood what an application was made of—it’s really just a folder composed of files (.js, .json, .ts, etc.).
My goal was to create an app for my brand Cyber PMM but I spent a lot of time learning how to build. I didn’t follow a plan and was all over the place. I began building 3-4 apps at once and lost focus. Running all three of environments was chaotic, yet blissful. I was deep into the weeds, prompting Cursor chats with dozens of tabs open, testing, learning and building. I found my new happy place.
Yet it all seemed theoretical and “classroom-ish”. I wanted more than just a set of half-baked apps that I never shared externally. I needed to deploy something in public. So I began to execute against that objective. I would aim to deploy an app in 2025.
My first major detour was attempting to fine-tune an LLM based on a custom dataset. I ended up using a mix of HuggingFace, Mistral, Llama, and Google Colab, PyTorch, and Python. I finally tuned and hosted a model, but it needed to “stay warm” and that meant more costs. Users need speed. Reality set in.
I went back to the drawing board learning from failure. All along I was getting comfortable in Cursor. I uncovered the mysteries of the AI world. I was getting closer to deployment. It was like that image of the gold miner turning away in the tunnel just before a big discovery.
I went with a Fireworks-hosted API integration with OpenAI’s newly released (at the time) model GPT-OSS-120B. That release was perfect timing, because this open source model allowed me to LLM functionality into my app with speed and scale. I integrated the model and began building the app skeleton.
Then came my Mad Scientist phase. I was in my basement, privately laughing to myself out loud one minute while shouting curses at ChatGPT the next. It went on like this for a few months. Family and friends were getting concerned. Yet I pressed the gas even more.
It was hard to stay focused. I had two apps in development and something had to give. Either I would fail at both or one would succeed. Instead, I built a merged application that used a Platform + App model. Narrly is the platform, and Cyber PMM is the first app on the platform.
I finally had the right formula. Simplicity arrives after a ton of complexity. Build. Fail. Rebuild. Build. Fail. Rebuild.
The app started to get “good enough” and I saw the light at the end of the tunnel. I could have spent years building the perfect product, or I could release what I had. Besides, I was fully intent on hitting my 2025 release target, and December was approaching fast. I refined focus, cut away any extra features, and prepared to ship.
One fine December morning, after 8 months of effort, I quietly shipped the app. I didn’t announce it, just kept it quiet and saw a 20 year old dream take shape. My wife and I celebrated. I finally did it. I released my first app.
No matter if the app succeeds or not, I now have the formula of tools and processes for building apps with AI efficiently. And I’m sharing it with you.
10 Things to Know Before Building Your Own App
Here’s what you need to understand before you start on your own dev journey:
Release the bare minimum. The first public release lays the infrastructure for future development. Getting a basic app shipped is harder than it sounds, even with AI. Design a minimal viable product (MVP)—in other words what’s the least amount of functionality it can have at launch? Just focus efforts there, and if you get new module or feature ideas, put them on a list somewhere for later.
Go with Cursor. I used Cursor for all my integrated development environment (IDE) needs. It’s only $20 per month to use. I’ve thrown a TON of prompts at it across multiple apps, and it never failed to deliver. There were a few times where was slow, but 95% of the time it processed my prompts and coded on my behalf.
Get a Powerful Machine. Hardware is a factor you can control. I invested in a Mac Studio and never had a glitch. No forced restarts, apps don’t crash, and everything works (Hint: it’s the opposite of Windows machines). It’s a variable you can control. I’m now setting up a DGX Spark with a Blackwell chip inside for my next development phase and beyond excited.
Use LLM APIs Where You Can vs. Fine-Tuning. My major app detour was trying to fine-tune and host my own model. Just take the shortcut for your first app deployment. Besides, you need to get the foundational app concept proven first, then down the road if you want to work on a model swap, you can invest your time there.
Use Firebase for Auth, Data Storage and Security: Avoid any user data being stored on your machine at all costs. By integrating with Firebase, you can easily and quite affordably host all user data securely. Also, Firebase allows your users to “Sign in with Google” which saves a lot of hassle when trying to manually create profiles.
Master the Language of Prompting. Prompting is the fuel for Cursor. Knowing how to talk to AI is a massive skill in this process. Nearly everything will be solved with the right prompt. I’ve learned techniques like, “Just investigate this issue - don’t implement any changes yet.” This is a way to ensure Cursor doesn’t mess things up, which it will do if you are wily with your prompting.
Push Your AI to Greatness. Sometimes you need to get pushy with AI. Ask it, “Is that really the best you can do?” It works wonders. Sometimes AI will limit itself and you need to understand how to push it. Add to your prompts, “Use the best available modern techniques for formatting tables here - make sure it’s the best user experience that’s ever existed.” Don’t limit your AI.
Get Used to GitHub. Make sure you establish a Github account so that your files can be privately hosted there while you’re building. It’s free, and not doing this can lead to disaster. One time I lost a major feature after I accidentally overwrote a file and it couldn’t be recovered. I didn’t understand how to push to Github yet, a mistake you can avoid by continually pushing your app to Git. Just get used to telling Cursor, “push to Git.”
Use Vercel for Hosting. I use Vercel to host my apps and now use it for a website. This eliminates the need for Wordpress. It’s amazing how fast you can push updates to deployment from your local machine to public consumption. For example if I change a logo file in a folder using Cursor, I simply say “Push to Git.” Then Vercel receives the Git update. This is the Cursor — Git — Vercel chain.
Use Canva for Your Logos and Custom Graphics. Just like your developing and shipping your own app, you can handle design too. With a Canva subscription, I eliminated the need for a design agency, the shadyness of using Fiverr, and any other expenses.
I hope this is helpful for you. As I continue to build out apps and grow Narrly.AI, I’ll share more of what I’m learning along the journey here at Dane’s Newsletter. Be sure to subscribe to keep up with what I’m building and learning.
And I’m open to questions so feel free to message me on Substack if you want to chat. Or drop in a comment to share your dev journey if you have had a similar experience.
Keep creating,
Dane





