🎵 Music & Sound Design · children's audio

Lullaby Weaver

Lovable AI writes sleep stories so parents can calm kids; AIsa scores the music.

AIsa Image Generation· visual generation
Section · AIsa

The kernel.

full primer →

Musicians type a brief and AIsa renders a fresh image for children's audio in seconds — moodboard, cover, scene, or poster, ready to drop into the work.

Why this primitiveMusic generation creates soothing, continuous ambient beds tailored to children's sleep routines.

Kernel
an OpenAI-compatible `POST /v1/images/generations` against https://api.aisa.one/v1 (Seedream + GPT image backends) — returns a hosted 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
Appendix · Secrets

Required key.

AISA_API_KEY
Single key for AIsa chat completions, image generation, video generation and live skills. Free tier covers a hackathon weekend.
open ↗

Add this in your Lovable project under Settings → Secrets before pasting the prompt below.

Appendix · Mega-prompt

The build prompt.

Paste into a fresh Lovable project. Make sure the key above is set first. read the build strategy →

Build "Lullaby Weaver" 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 sleep stories so parents can calm kids; AIsa scores the music.
Discipline: Music & Sound Design (children's audio).
Recipe: AIsa Image Generation (visual generation) as the single creative surface.
Why this kernel: Music generation creates soothing, continuous ambient beds tailored to children's sleep routines.

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/aisa.functions.ts` that proxies the AIsa 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.
- AIsa is the only AI dependency. All API calls live inside a `createServerFn`
  handler so `AISA_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 AIsa Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14".

SERVER FUNCTION (src/lib/aisa.functions.ts) — AIsa image generation:
```ts
import { createServerFn } from "@tanstack/react-start";
import { z } from "zod";

/** Built during the AIsa 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 }) => {
    const r = await fetch("https://api.aisa.one/v1/images/generations", {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${process.env.AISA_API_KEY!}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        model: "seedream-3.0",
        prompt: `Concept art for children's audio: ${data.brief}. Editorial, high detail.`,
        size: "1024x1024",
        n: 1,
      }),
    });
    if (r.status === 402) throw new Error("AIsa balance exhausted — top up at console.aisa.one.");
    if (r.status === 429) throw new Error("AIsa rate limited — try again in a moment.");
    if (!r.ok) throw new Error(`AIsa image failed: ${r.status}`);
    const j = await r.json();
    return { url: j.data[0].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.

Use BARE model ids — `gpt-image-1` (text fidelity) or `seedream-3.0` (default,
fast + artistic). NO vendor prefix. Browse https://aisa.one/models.

USER FLOW (the entire app — nothing else exists)
1. Land on the page; the headline previews what the demo does for children's audio.
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. AIsa runs the kernel server-side, the result lands on screen, the user can retry or copy.

KEY — only ONE secret is required:
1. `AISA_API_KEY`. Sign up at https://console.aisa.one, copy the key into
   Project Settings -> Secrets. Read it only on the server via
   `process.env.AISA_API_KEY`. Never prefix with `VITE_`, never expose
   to the client. A single key unlocks chat, image, video and skills.

CREDIT (must appear in UI footer AND as JSDoc on the server function):
Built during the AIsa Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14
Appendix · Market

Market sizing.

TAM
$100B
global wellness and family economy
SAM
$5B
sleep aids and children's audio apps
SOM
$15M
AI lullaby and sleep story generators

Indicative figures for hackathon pitches — refine with your own research before raising.

See also

Adjacent entries.