About the Project

Inspiration

We wanted to make it easier for developers to start building with Storyblok without spending hours on setup and boilerplate. Setting up a frontend framework, connecting to Storyblok, and customizing it for a real-world use case can be repetitive and error-prone. Our idea was to combine a Go-based CLI with an AI-powered backend so developers could describe what they want to build, answer a few clarifying questions, and instantly get a working scaffold.

How We Built It

  • CLI (Go + Cobra)

    • Built an interactive wizard that asks questions about the project (framework, region, API token, etc.).
    • Uses npx @storyblok/create-demo to scaffold a starter app.
    • Streams generated code and follow-up prompts from the backend.
    • Handles file merging, caching of answers, and dependency installation.
  • Server (FastAPI + LangChain + Google Gemini)

    • Provides structured JSON code generation endpoints.
    • Generates project files, dependencies, and follow-up questions.
    • Uses LangChain agents to refine prompts and avoid repetitive questioning.
    • Enforces strict JSON output and fallback parsing for resilience.

Together, the CLI and backend create an iterative, AI-assisted development workflow.

What We Learned

  • How to integrate streaming AI responses (NDJSON) into a CLI workflow.
  • The importance of caching answers and merging generated files safely.
  • Best practices for prompting LLMs to return valid, structured JSON.
  • How to design a workflow that balances automation with developer control.

Challenges We Faced

  • Prompt design: Getting the AI to consistently output well-structured JSON was non-trivial.
  • Streaming integration: Handling partial file outputs in real-time required careful error handling.
  • Merging logic: Ensuring generated files didn’t overwrite important parts of the scaffold was tricky.
  • Developer UX: We wanted the CLI to feel smooth and intuitive, even though it connects multiple moving parts.

Built With

Share this project:

Updates