BrandHero – Project Story
🌟 Inspiration
Agency clients loved Donald Miller’s StoryBrand framework but dreaded 40-page workbooks.
I wanted a SaaS button that captures brand DNA once and spits out a cinematic narrative plus channel-ready copy in minutes.
📚 What I Learned
- Prompt-chaining beats mega-prompts for long-form consistency and lower token costs.
- True multi-tenant isolation requires a schema per org and row-level guards.
- Emoji + custom fonts can crash Markdown-to-PDF—fallback font stacks save the day.
🛠️ How I Built It
| Layer | Tech & Flow |
|---|---|
| Data Capture | React stepper records brand details & hero’s current state. |
| Story Engine | OpenAI o4-mini crafts the StoryBrand arc; a second call autogenerates personas. |
| Content Studio | Users pick persona + funnel stage → GPT expands into web, email, or social copy. |
| Export | Story framework rendered via React-PDF, cached by Netlify functions for speed. |
| Auth & Storage | Supabase Postgres, RLS for agency/client segregation. |
⚠️ Challenges
| Issue | Fix |
|---|---|
| Token limits vs rich tone prompts | Split chain + concise brand “voice tokens.” |
| Persona explosion from minimal input | Added confidence threshold + similarity check. |
| PDF fidelity across browsers | Embedded fonts & rasterized tricky emoji. |
🚀 What’s Next
Client portals with custom domains Collaboration layer – inline comments, approval workflows, and AI rewrite suggestions.
BrandHero is on track to become a full-stack storytelling studio—turning browsers into believers at the speed of AI.
Built With
- netlify
- openai
- react
- supabase
- tailwind
- vite
Log in or sign up for Devpost to join the conversation.