The Core Stack: What You Actually Need
Forget the all-in-one web apps for a minute. Most are just shiny wrappers around the same core components, and they lock you into their templates and pricing. You can build a more powerful, flexible system yourself with three things: Google Slides, Google Apps Script, and an LLM API key.
That’s it. The whole system lives inside your Google Workspace account.
Google Slides is your canvas and, critically, your template engine. You’re not starting from a blank page; you’re starting from your own branded master template. Google Apps Script is the engine that connects everything. It’s Javascript that runs on Google’s servers and can manipulate your Slides, Sheets, and Docs programmatically. Think of it as the nervous system for your G-Suite. For the brain, you’ll use an LLM. I use OpenAI‘s GPT-4 models, but you could swap in Claude or Gemini. The cost is negligible. A complex 15-slide deck might cost you ten cents in API calls. Honestly, the free credits they give you are probably enough to run your business for a month.
What Most Guides Get Wrong About AI Slide Decks
Here’s the problem with 99% of AI presentation tools: they think the job is to generate text and images. That’s the easy part. The actual hard part is arranging that content into a coherent narrative that follows a specific visual structure—your structure.
AI Side Hustles
Practical setups for building real income streams with AI tools. No coding needed. 12 tested models with real numbers.
Get the Guide → $14
These tools spit out generic, ugly slides that look like they were designed by a committee in 2004. They ignore your company’s fonts, colors, and layout conventions. You spend more time fixing the output than it would have taken to make the deck from scratch. The result is an unusable mess that screams “I let a robot make this.”
Our goal is different. We aren’t asking an AI to *design* a presentation. We are commanding it to *populate our pre-existing, beautifully designed template*. The AI’s job is to be a content strategist, not a graphic designer. It will decide the flow and the text for each slide, and it will tell our script which of our layouts to use for that specific piece of content.
Step 1: Architecting the Master Template
This is the most important step, and the one everyone skips. Before you write a single line of code or a single prompt, you must build a bulletproof master template in Google Slides. Open `View > Master` and create a set of distinct slide layouts for every type of slide you use. Don’t just rely on the defaults.
Create layouts like:
- Title_Slide: For the main title and subtitle.
- Section_Header: A bold slide to introduce a new topic.
- Two_Column_Text: A layout with a title and two distinct text boxes.
- Image_Left_Text_Right: A layout with a placeholder for an image on the left and text on the right.
- Quote_Slide: For a large, impactful quote.
The key is to give each of these master layouts a unique, descriptive name. You do this in the Master view by selecting a layout and using the ‘Rename’ button. This name is how your script will identify and create new slides. My concrete gripe here is that Google’s documentation on programmatically accessing layouts by the names you set is shockingly thin. It took me a full afternoon of `Logger.log()` trial and error to figure out the exact syntax to get a layout by its custom name instead of its useless index ID. It’s a perfect example of a feature being technically available but practically undocumented.
Step 2: The “Director” Prompt for the LLM
Your prompt is not going to be, “Write me a presentation about cold email automation.” That’s a recipe for generic paragraphs. Instead, you’ll prompt the LLM to act as a “Presentation Director.” Its only job is to return a JSON object that our script can parse.
This prompt is a contract. It defines the exact structure of the output, mapping directly to the master layouts you just created. You have to be ruthlessly specific.
Here’s a simplified version of a prompt I use:
You are a Presentation Director. Your task is to generate the content structure for a Google Slides presentation based on the user's topic. The output MUST be a valid JSON object. Do not include any text outside of the JSON.
The user's topic is: "An overview of AI agent frameworks for solo operators."
The available slide layouts are: "Title_Slide", "Section_Header", "Two_Column_Text", "Image_Left_Text_Right".
Generate a JSON array of slide objects. Each object must have two keys: "layout" (the name of the layout to use) and "content" (an object containing the text and image data for that slide).
For "Image_Left_Text_Right" layouts, the content object must include an "image_query" key with a simple, effective search term for a stock photo API.
Example format:
[
{
"layout": "Title_Slide",
"content": {
"title": "AI Agent Frameworks",
"subtitle": "A Guide for Solo Operators in 2026"
}
},
{
"layout": "Image_Left_Text_Right",
"content": {
"title": "What is an Agent?",
"body": "An AI agent combines an LLM with tools and memory to accomplish complex tasks autonomously.",
"image_query": "abstract network connections blue"
}
}
]
This approach forces the LLM to think about structure first. It has to choose the right layout for each piece of the narrative, which is exactly what a human would do.
