Vibe Coding with AntiGravity and Gemini 3.0
I started writing a simple little app to allow Content Creators have AI pick a Title, Description, Keywords, and Hashtags for their video.
It took me less than 24 hours to have the full working app.
Gemini 3.0 gave me a starting prompt and we started and changed what it was several times with no problems. Just tell it what you want to change in plain English and it does. I started this as a SAAS app and using credits for the users then changed it to a free app (no it's not online yet) and it did not miss a beat. We even changed from using Supabase as the DB and now using Firebase/FireStore without a hitch. This is the original prompt Gemini 3.0 gave me:
<TASK>
Initialize a new, multi-user SaaS application project named "CreatorAI Engine." The final solution must be structured for scalability and monetization.
</TASK>
<ARCHITECTURE>
1. **Backend:** Use **Node.js with TypeScript** (e.g., Express or NestJS) for the API.
2. **Database:** Use **PostgreSQL** (preferred) or a compatible relational database.
3. **Frontend:** Prepare the project repository with a basic **React/Next.js** framework structure (e.g., separate folder for a client).
4. **Monetization Core:** Implement a dedicated service/module for **Stripe Integration** and **Credit Metering**.
5. **Multi-Platform Integration:** Include placeholder files for connecting to the **YouTube Data API** and **Meta Graph API** (for Reels).
</ARCHITECTURE>
<CORE_MODULES>
Set up the backend with the following four primary, interconnected modules:
1. **Authentication/User Module:** Standard user management (Signup/Login/User Profile).
2. **Payment Module:** Stripe integration for handling subscriptions and one-time credit top-ups.
3. **AI Orchestration Module:** Handles all external AI calls (Gemini/Image Generation/Dubbing) and manages the Job Queue.
4. **Content Management Module:** Handles saving the final video asset metadata, SEO tags, and publishing status.
</CORE_MODULES>
<DATABASE_SCHEMA>
Initialize the PostgreSQL database with the following three core tables, ensuring Foreign Keys are correctly mapped:
1. **Table: `users`** (Tracking identity and current balance)
* Fields must include: `user_id` (PK), `email`, `current_credit_balance` (DECIMAL), and `stripe_customer_id`.
2. **Table: `credit_transactions`** (Audit log for credits added)
* Fields must include: `transaction_id` (PK), `user_id` (FK), `stripe_charge_id`, and `credit_change_amount` (DECIMAL).
3. **Table: `usage_events`** (Audit log for credits consumed)
* Fields must include: `event_id` (PK), `user_id` (FK), `credits_consumed` (DECIMAL), and `job_type` (ENUM: 'THUMBNAIL_GEN', 'VIDEO_REPURPOSE', etc.).
</DATABASE_SCHEMA>
<INITIAL_CODE_GENERATION>
Generate the **`creditDeductionService.ts`** file in the backend. This file must contain a function `deductCredits(userId: string, cost: number)` that attempts to deduct the cost from the user's balance and records an entry in `usage_events` within a database **transaction** to ensure atomicity.
</INITIAL_CODE_GENERATION>
9
3 comments
Gerald Haygood
4
Vibe Coding with AntiGravity and Gemini 3.0
Builder’s Console Log 🛠️
skool.com/ai-for-your-business
We build things because it’s fun.
console.log ("democratize developing");
Leaderboard (30-day)
Powered by