How I Built a Functional Billing App in ~2 Hours Vibe Coding with Grok Build (Terminal Agent, No Traditional Coding)
A couple months back I shared how I stood up a complete Travel Log/Planner app (travel.jdb.net) over a weekend using ChatGPT 5.5. It was a solid vibe-coding experience—full CRUD, search, import/export, PDF generation—and the post got good traction from other IT pros tired of boilerplate drudgery.
This time I wanted something more operational for my property management work. A straightforward CLI app for generating invoices, tracking payments, handling my real estate tenants and client projects, with export options and basic reporting. Nothing fancy, but secure, practical, and useful day-to-day.
The whole thing, including installing and learning Grok Build, took me right around 2 hours. Here's how it went and why this tool feels like a meaningful step up.
The Setup (15-20 minutes)
I asked Grok how to start with Grok Build and followed the simple instructions.
Opened a fresh directory in PowerShell, typed grok, authenticated, and I was in the Terminal User Interface (TUI). No IDE extensions, no project templates to wrestle with. It just read the empty folder and was ready.
First prompt was simple: “Build an app to generate invoices. Include client/project management, invoice creation with line items, payment tracking, PDF export, and basic auth. Prioritize security and clean code.” I told Grok Build where the Excel and PDF invoices I was manually generating were and it used them as a template for the app.
Grok Build went into planning mode, asked a few clarifying questions, laid out the structure, and started building. Subagents handled frontend, backend logic, and even some test data in parallel.
I reviewed generated files, asked for some changes, and iterated with natural follow-ups. The next step was to ask Grok Build to set up my computer to run the app monthly and send me an email indicating that the process was run. Now I have invoices ready to email every 15th of the month.
Finally, I asked Grok Build to backup to my GitHub and remember to update GitHub if I make changeds.
Contrast with the Travel App (ChatGPT 5.5 Era)
The Travel Planner was a great proof-of-concept. ChatGPT handled most of the heavy lifting in the chat window, but I was still copying chunks, managing context manually, and doing more glue work myself. It took a full weekend of back-and-forth because the conversation would drift or lose nuance on larger refactors.
Grok Build feels different right in the terminal:
Deep repo awareness from the start—no need to keep feeding it files.
Plan → Approve → Execute workflow that keeps things disciplined.
Multi-file edits and terminal execution (no install, builds, git commits) without leaving the session.
I stayed in flow longer. The agent handles grunt work while I focus on business logic (like tenant-specific invoice rules or capital gains notes for my properties).
Result: Same “I didn’t really code this” feeling, but faster and with fewer context resets. The Travel app was weekend-warrior mode; The billing app was “I have client work this afternoon” mode.
Grok Build vs Codex: The Real Delta
I’ve used Codex. It’s excellent for generating solid code snippets and filling functions. But it’s still mostly a smart autocomplete on steroids inside an editor.
Grok Build is a full coding agent living in your terminal:
It owns the project lifecycle—planning, architecture decisions, parallel subagents for different concerns, running tests/builds, and even git integration.
Stronger at staying on task across a whole app without constant prompting.
The TUI with Plan Mode and approve workflows reduces hallucinated changes I’d have to chase down later in pure Codex flows.
Security-aware defaults and practical defaults align well with how I work (no fluff, focus on reliability for client-facing or financial tools).
Codex is still great for quick one-offs. Grok Build wins when you want an autonomous partner that treats the entire codebase as context and ships working end-to-end programs.
What I Actually Got
A clean, functional billing app with:
Client invoice tracking
Invoice generation (line items, totals, notes)
PDF exports
Basic auth and data persistence
It’s already handling real data and ready for me to integrate further. Exactly the kind of internal tool that saves me (and potentially clients) hours every month.
Bottom Line
Grok Build isn’t magic—it still requires clear direction and occasional course corrections—but it compresses real development work dramatically. Two hours from zero to usable app is the kind of productivity that makes solo consulting sustainable.
If you’re an IT leader, consultant, or technical founder tired of context-switching between chats and editors, give the CLI a spin. For security reasons I won’t be open-sourcing a version of billing app.
What internal tool pain point are you solving next? Drop it in the comments—I’m always iterating on these.
— Jonathan D. Brown JDB Consulting | Practical IT that ships
How I Built a Complete Travel Planner App Using ChatGPT 5.5 and Codex (No Coding Required)
UPDATES: I’ve made more changes to the app since posting this blog on 4/30/2026. See the NOTES at the bottom of the blog.
Over the last few days I put ChatGPT 5.5 and Codex to the test in a serious way. I started vibe coding on Monday and finished today (Thursday April 27th). Roughly 10 hours total time invested — and at least half of that time was spent testing features thoroughly. The 1st hour was spent doing it wrong then I started over. The last hour was figuring out how to setup GitHub to load it there. This wasn’t casual weekend tinkering; it was focused, deliberate work.
The result is a fully functional, mobile-first Travel Log app that I’m actually going to use for my upcoming trip. It’s live right now at travel.jdb.net.
What I Built
A clean, self-contained travel itinerary manager with:
Trips grouped by name and automatically sorted by earliest event
Events sorted chronologically inside each trip
Compact one-line display (date • time • bold location • description)
Full add / edit / delete for events and trip names
Instant search across every field
“Not booked” items automatically highlighted in red
Import from pasted text or file (with review step before committing)
Export clean text itineraries that can be re-imported
One-click PDF export (print-optimized, page breaks between trips, events kept together)
Reload the built-in 2027 sample itinerary anytime
100% localStorage — no account, no server, works offline (if installed offline).
It currently ships with two incomplete sample trips: an Alaska cruise and a 17-event Spain itinerary.
Security: Everything persists in the browser and feels native on mobile. No data lives on the cloud only on your computer if you want to try it out. That said, I have made only minimal security evaluations of this app and it’s intended for demonstration purposes only. Use it with real data at your own risk. I’m using a local copy of the app for my real trip data.
How I Built It (Vibe Coding in Practice)
I followed the exact workflow I learned in the Generative AI Bootcamp:
Wrote a clear PRD (Product Requirements Document) first
Used ChatGPT 5.5 and Codex to generate the initial structure
Iterated with precise follow-up prompts: “Make the search instant across all fields”, “Add typed-name confirmation before deleting a trip”, “Highlight ‘not booked’ in red”, “Generate a clean PDF export with proper page breaks”
Tested every single flow repeatedly — adding events, importing notes, exporting PDFs, checking mobile layout, edge cases, etc.
The 5-hour testing investment paid off. The app feels solid because I caught and fixed dozens of small issues before they ever reached the live site.
Why This Matters
If you’ve ever wanted a custom internal tool, client portal, lead tracker, or operational dashboard but didn’t have the budget or timeline for traditional development, this approach is now genuinely viable.
You can go from idea to working, usable prototype in a single focused day (or a few evenings). The remaining polish still benefits from human oversight, but the barrier has dropped dramatically.
I’m not claiming this replaces professional developers. I am saying the cost and speed of testing new ideas has improved by an order of magnitude. I do have programming experience and I used that to direct the AI, but at no time did I write or look at any code.
What’s Next
I’m already thinking about the next small tool I want to build the same way. The pattern is addictive once you experience it.
If you’re a business owner or operator sitting on an app idea because “we don’t have developers” or “it would take too long,” let’s talk.
I’m now helping companies build AI-generated apps and internal tools using ChatGPT 5.5, Codex, and the same vibe-coding process. We start with a clear requirements document, deliver a working prototype quickly, and iterate until it fits your actual workflow.
Reach out if you want to explore what’s possible for your business. No hard sell — just a practical conversation about whether this makes sense for what you’re trying to solve.
The 10-hour experiment is complete. Turning these capabilities into real business advantage is where the interesting work begins.
Travel Log — because good trips deserve good records, and good records shouldn’t require a complicated app.
Live demo: https://travel.jdb.net
What kind of internal tool or app would you build first if the technical hurdles were this low? THEY ARE! Send me comments here: I read every comment.
NOTES / UPDATES:
- Added features on 6/1/2026:
Added a dropdown in the Add Event dialog to pick an existing trip
Added a Settings button that floats with the Add Event button
Added a choice of search options for the Description field link:
ChatGPT
Grok
Gemini
Google Search
- Added features on 5/31/2026:
Added links to events
Added Links and files at the Trip level
Debugged some edit dialog issue on iPhone
- Added features on 5/30/2026:
Changed Color Scheme to be consistent across pages.
Added a link from travel.jdb.net back to this blog post.
Added file attachments support.
Added a full backup to supplement the TXT backup so all events and files can be copied to a different device. Intended use: sync to a mobile device.
Debugged some issues with iPhone browsers.
- Added features on 5/29/2026:
Linked the location field to a custom page that displays data from the Internet and links to Google Maps. It works great on mobile too.
Getting data to mobile when generated on a computer is a bit tricky as you have to save using the TXT link the get that file uploaded to your mobile device then use the Import feature to load the file.
- Added features on 5/28/2026:
Event descriptions link to ChatGPT search URLs in a new tab.
PDF export asks whether to include notes each time.
Event rows show location, date, time, and description on one line; the date appears only on the first event of each day.
- I updated the App with some fixes to editing and PDF printouts on 5/23/2026
I have added about 5 hours of additional effort to the app. As I used it, I found bugs and added new features