Fable Magic Spark
Lovable AI writes fairy tale scenes so parents entertain kids; FLock generates whimsical SFX for it.
FLock Image Generation· visual generation
Section · FLock.io
full primer →The kernel.
Writers type a brief and FLock's image models (Nano Banana 2, Gemini 3.1 Pro) render a fresh image for children's interactive books in seconds — moodboard, cover, scene, or poster, ready to drop into the work.
Why this primitiveSFX generation provides instant, magical audio cues that parents can trigger to make bedtime storytelling highly interactive and engaging.
Kernel
the FLock marketplace image models (Nano Banana 2, Gemini 3.1 Pro Preview, Gemini 3 Flash) called via chat completions with `modalities: ['image','text']` on https://api.flock.io/v1 — returns a hosted image URL the client renders straight into an <img>
Drives the UI as
a prompt-driven canvas that renders covers, moodboards, posters or scene art on demand
Required key.
FLOCK_API_KEY
Single API key for FLock's OpenAI-compatible endpoint — text, image, video and tool-calling agents across the whole model marketplace. Sign up at platform.flock.io, create a team, generate a key starting with sk-.
open ↗Add this in your Lovable project under Settings → Secrets before pasting the prompt below.
Appendix · Mega-prompt
The build prompt.
budget · 1 message
Paste into a fresh Lovable project. Make sure the key above is set first. read the build strategy →
Build "Fable Magic Spark" as a ONE-SHOT Lovable build. The participant has only
5 credits — this single message must produce a working demo with no follow-ups.
Single-page TanStack Start app. Cut scope ruthlessly.
CONCEPT
Lovable AI writes fairy tale scenes so parents entertain kids; FLock generates whimsical SFX for it.
Discipline: Writing, Poetry & Narrative (children's interactive books).
Recipe: FLock Image Generation (visual generation) as the single creative surface.
Why this kernel: SFX generation provides instant, magical audio cues that parents can trigger to make bedtime storytelling highly interactive and engaging.
LOVABLE BUDGET (HARD CAP: ONE-SHOT, ~5 CREDITS TOTAL):
The participant has FIVE Lovable credits for the whole build. This prompt MUST
ship a working demo on the FIRST message with zero follow-ups. Engineer for that.
- ONE TanStack Start app, ONE route (`src/routes/index.tsx`). No extra pages, no auth, no nav.
- ONE TanStack server function in `src/lib/flock.functions.ts` that proxies the FLock call.
- ONE client surface (a textarea + button, or chat box, or prompt-to-canvas) wired to it.
- NO database, NO Lovable Cloud, NO auth, NO file uploads, NO extra integrations.
- NO tests, NO docs pages, NO settings screens, NO theming toggles.
- Libraries: template defaults + `zod`. Nothing else.
- Keep the diff small enough to land in one build pass. If a feature is not on
screen in the user flow below, do not build it. Cut scope before adding scope.
STACK
- TanStack Start app, the index route only.
- FLock.io is the only AI dependency. All API calls live inside a `createServerFn`
handler so `FLOCK_API_KEY` stays on the server.
- Client surface fits the kernel: a prompt box that returns the result.
- Tailwind + shadcn. Editorial look: gold accent on a dark or warm-cream
background, generous type, one strong headline, one primary action.
- Footer renders: "Built during the FLock.io Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14".
SERVER FUNCTION (src/lib/flock.functions.ts) — FLock image generation:
```ts
import { createServerFn } from "@tanstack/react-start";
import { z } from "zod";
/** Built during the FLock.io Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14 */
export const render = createServerFn({ method: "POST" })
.inputValidator((d) => z.object({ brief: z.string().min(1).max(1000) }).parse(d))
.handler(async ({ data }) => {
// FLock image models are called via chat completions with the image modality.
const r = await fetch("https://api.flock.io/v1/chat/completions", {
method: "POST",
headers: {
"x-litellm-api-key": process.env.FLOCK_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "nano-banana-2",
modalities: ["image", "text"],
messages: [{
role: "user",
content: `Concept art for children's interactive books: ${data.brief}. Editorial, high detail.`,
}],
}),
});
if (r.status === 401) throw new Error("FLock rejected the API key — check FLOCK_API_KEY.");
if (r.status === 402) throw new Error("FLock balance exhausted — top up at platform.flock.io.");
if (r.status === 429) throw new Error("FLock rate limited — try again in a moment.");
if (!r.ok) throw new Error(`FLock image failed: ${r.status}`);
const j = await r.json();
// FLock returns the image URL either as an `image_url` block or as a data URL
// in the assistant message. Handle both.
const msg = j.choices?.[0]?.message;
const url = msg?.images?.[0]?.image_url?.url
?? msg?.content?.match?.(/https?:\/\/\S+\.(?:png|jpg|jpeg|webp)/i)?.[0];
if (!url) throw new Error("FLock returned no image URL.");
return { url: url as string };
});
```
CLIENT: textarea + "Render" button. On success, show `<img src={url} />` and a
download link. Keep one canvas on screen, replace it on the next render.
FLock image-capable models: `nano-banana-2` (fast, default), `gemini-3.1-pro-preview`
(highest fidelity), `gemini-3-flash-preview` (balanced). Browse at
https://platform.flock.io/models.
USER FLOW (the entire app — nothing else exists)
1. Land on the page; the headline previews what the demo does for children's interactive books.
2. The primary action (a prompt-driven canvas that renders covers, moodboards, posters or scene art on demand) is one tap away; the rest of the layout supports it.
3. FLock runs the kernel server-side, the result lands on screen, the user can retry or copy.
KEY — only ONE secret is required:
1. `FLOCK_API_KEY`. Sign up at https://platform.flock.io, create a team,
generate an API key (starts with `sk-...`). Add it to Project Settings ->
Secrets. Read it only on the server via `process.env.FLOCK_API_KEY`.
Never prefix with `VITE_`, never expose to the client. One key unlocks
the entire FLock model marketplace — text, image, video, tools.
CREDIT (must appear in UI footer AND as JSDoc on the server function):
Built during the FLock.io Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14
Market sizing.
TAM
$10B
global children's book and edutainment market
SAM
$1.5B
interactive storytelling and read-along apps
SOM
$50M
parent-led interactive bedtime story tools
Indicative figures for hackathon pitches — refine with your own research before raising.
Adjacent entries.
screenplay foley
Script Foley Forge
Lovable AI extracts scene actions so Foley artists rehearse; FLock generates SFX for it.
poetry performanceStanza Vibe Scorer
Lovable AI extracts poetic mood so performers feel the vibe; FLock scores a backing track.
horror draftingDread Pacing Engine
Lovable AI paces horror chapters so authors test anxiety; FLock generates creeping SFX for it.
sci-fi worldbuildingXenotech Audio Blueprint
Lovable AI describes alien tech so narrative designers build worlds; FLock generates SFX for it.