Audience Need
Brand-safe speed
The team needed self-service assets without rogue layouts, colors, or manual review cycles.
I built an internal React/TypeScript application integrating the Gemini 2.5 Flash API that embeds brand constraints into the production surface. It instantly turns a single concept into 130KB of platform-ready marketing copy, presentations, and visual assets without breaking brand guidelines.
AiSA needed repeatable, branded marketing assets: course slides, certificates, social posts, carousels, covers, QR grids, and campaign copy. The operational pain was not only production speed. It was the recurring cost of reviewing, correcting, and policing work that should have been on brand from the start.
The generator app changes the job from micromanaging output to designing the conditions for good output. Team members can choose an approved format, theme, layout, topic, and image slot, while the app limits the ways the brand can be bent out of shape.
Audience Need
Brand-safe speed
The team needed self-service assets without rogue layouts, colors, or manual review cycles.
What I Built
Locked generator
A browser app for approved slides, posts, certificates, AI copy, image slots, and exports.
Leverage Move
Guardrails in code
Formats, themes, dimensions, backgrounds, and access rules became product constraints.
Value Created
Less supervision
One topic can become channel-ready assets while the system protects the brand standard.
The Backstory
The marketing team needed assets quickly, but speed was creating fragmented collateral: random layouts, unauthorized design elements, and the occasional hot-pink HTML signup button trying to live its truth.
I did not want the job to become endless supervision. So I turned the brand rules into the tool itself.
This case is not about making another pretty asset. It is about replacing repeated brand policing with a small internal product that lets people create platform-specific copy and visuals while the system keeps brand rules, channel specs, and access control in place.
The Useful Solution
People can still enter ideas, choose formats, switch themes, and upload images. The difference is that every choice lives inside approved layouts, aspect ratios, typography, backgrounds, and image slots.
That is the leadership move: do not slow the team down with review cycles. Design the conditions where good output is the default.
const ASSET_TYPES = {
story: { name: 'IG Story (9:16)', class: 'size-9-16', icon: Smartphone, scale: 0.4 },
post: { name: 'IG Post (1:1)', class: 'size-1-1', icon: ImageIcon, scale: 0.5 },
carousel: { name: 'IG Carousel (4:5)', class: 'size-4-5', icon: Square, scale: 0.5 },
linkedin: { name: 'LinkedIn Carousel (4:5)', class: 'size-linkedin', icon: Linkedin, scale: 0.5 },
twitter: { name: 'Twitter / X (16:9)', class: 'size-twitter', icon: Twitter, scale: 0.5 },
slide: { name: 'Presentation Slide (16:9)', class: 'size-16-9', icon: MonitorPlay, scale: 0.7 }
};
Platform Copy Kit Demo
The video shows the AI Copywriter view generating different text outputs for different social media and campaign surfaces: Instagram captions, LinkedIn posts, email copy, X/Twitter, Threads, Reddit, video scripts, carousel hooks, and infographic text.
Each card carries a different channel job, length expectation, tone, call-to-action pattern, and next action, so the team starts from structured outputs instead of a blank page.
Omni-channel AI Copywriter
The copy system turns one topic into channel-specific cards with distinct social, email, video, carousel, and infographic structures.
const result = await generateAssets(topic);
setGeneratedContent(result);
<TextAssetCard title="Instagram Caption" content={generatedContent.textAssets.instagramCaption} />
<TextAssetCard title="LinkedIn Post" content={generatedContent.textAssets.linkedInPost} />
<TextAssetCard title="Email Copy" content={generatedContent.textAssets.emailCopy} />
<TextAssetCard title="Twitter / X" content={generatedContent.textAssets.twitter} />
<TextAssetCard title="Threads" content={generatedContent.textAssets.threads} />
<TextAssetCard title="Reddit Post" content={generatedContent.textAssets.reddit} />
<TextAssetCard title="Educational Video Script" content={generatedContent.textAssets.eduVideoScript} />
<TextAssetCard title="Promo Video Script" content={generatedContent.textAssets.promoVideoScript} />
Brand Protection
Access control comes last in the story because it is the quiet protection layer. The app uses Google sign-in and corporate-domain filtering so templates and brand assets stay inside the approved team environment.
The same system that makes asset creation easier also makes rogue asset creation harder.
const result = await signInWithGoogle();
const email = result.user.email ?? '';
if (!email.endsWith('@company.com')) {
await signOutUser();
setError('Access is restricted to authorized company accounts.');
}
Story, post, carousel, certificate, cover, slide, and social formats become approved size and layout options.
Reusable intro, process, agenda, quote, and testimonial layouts make new assets feel composed.
The typography, colors, image crop behavior, logo rules, and backgrounds stay controlled.
The topic input expands into channel-specific copy cards, scripts, hooks, emails, and social content.
Uploads use aspect-ratio constrained boxes with branded fallback slots and predictable placement.
Google sign-in and corporate-domain filtering protect the internal templates from casual external use.
The impact map is a scrappy internal tool codebase with enterprise instincts: constrained layouts, SSO access, structured generation, reusable inputs, and a clear path to a cleaner multi-client brand tooling layer.
User inputs a basic topic, audience, and goal into the React frontend.
The Cloud Run backend proxy calls Gemini 2.5 Flash with heavily engineered prompt constraints.
The generated data is injected strictly into pre-approved UI layouts and approved color palettes.
The app turns approved layouts into export-ready assets, completely bypassing manual design tools.
Most organizations attempt to protect brand consistency through policing, style guides, and bureaucratic review layers that exhaust leaders and slow teams down. By embedding brand guidelines, aspect ratios, and tone constraints directly into an automated software workflow, output scales rapidly while governance remains absolute.
I build custom AI workflows, locked brand engines, and operational infrastructure for fast-moving organizations. Let's discuss how to eliminate production bottlenecks while protecting your brand standard.
I bring an Olympic athletic background to fuel the relentless discipline required to execute, a deep research background focused on hyper-targeted strategy, and the grit of the immigrant experience. I rely on hard analytics and behavioral strategy to build resilient operational systems that help businesses actually run.