Inspiration

Small-business content usually starts with a real, imperfect phone photo. It often ends in a rushed poster, generic copy, or a design tool the owner does not have time to learn. General image generation can improve a scene, but it can also change the product, flatten fragile text into pixels, or invent an offer.

Soruno Go is a camera-first pocket art director: it turns what just happened in the business into the right customer action while keeping the real product and owner-confirmed facts as the source of truth.

What it does

  1. Builds a short Brand Capsule from a website or compact manual setup.
  2. Lets an owner capture or choose the real product or service photo.
  3. Asks for the channel and business outcome instead of an open-ended prompt.
  4. Makes the main message, price, dates, location, and call to action reviewable before generation.
  5. Produces one art-directed poster and saves it as a resumable project with source, creative spec, facts, exports, provenance, and quality checks.

The result is not a template grid. The photo controls the composition, the business purpose controls the hierarchy, and exact facts stay structured.

How we built it

Soruno Go is a native SwiftUI and Jetpack Compose experience backed by a Next.js/TypeScript mobile API, versioned cross-platform contracts, Neon Postgres, Drizzle, Inngest, and Vercel Blob.

At runtime, the poster engine defaults to GPT-5.6 Luna for a strict CreativeSpecV1. The planner receives the ordered source photo, confirmed brand context, verified facts, recent creative history, and target channel. GPT Image 2 performs one image edit for the art-directed scene. Confirmed wording and provenance remain structured; a model response cannot silently replace them.

Codex with GPT-5.6 was used across the full build: journey tracing, architecture and contracts, tenant-scoped and idempotent generation, cancellation/retry/recovery, iOS and Android implementation, Brand Capsule import, deterministic fact handling, tests, simulator verification, and product/design review.

Primary Codex Session ID: 019f799a-f0f2-7333-b2bd-0e38efeac535

Build Week scope

SORUNO existed before the submission period as a broader web content platform and an early Soruno Lite iOS companion. During Build Week, Soruno Go added the mobile/v1 API and shared contracts, Brand Capsule import and versioning, camera-first verified-facts workflow, GPT-5.6 creative specification stage, GPT Image 2 compositor, resumable jobs and provenance, native Android, adaptive iOS/iPad layouts, evaluation harness, launch guards, and release runbook.

Challenges

The hardest problem was not generating a pretty image. It was preserving business truth across models, storage, asynchronous jobs, and two native clients. We separated the source asset, structured creative specification, deterministic confirmed facts, generated background, export artifact, and provenance. We also designed cancellation, retry, idempotency, credit rollback, and private-asset boundaries as part of the product rather than as cleanup.

Accomplishments

The implemented vertical slice passed 291 backend unit tests, 28 contract tests, 29 launch-guard tests, 52 disposable-database integration tests, TypeScript checks, the Next.js production build, and iOS build verification. A spend-bounded live GPT Image 2 canary returned a 1024×1024 JPEG.

We keep the evidence boundaries explicit: this is a tested release candidate. Production migration and physical-device acceptance remain release gates and are not presented as completed.

What we learned

Small-business creative quality depends on more than a prompt. Good results need hierarchy, channel intent, product fidelity, deterministic facts, brand memory, and a project lifecycle the owner can trust.

What's next

Next are the journal-reconciled production migration, physical-device camera/Photos/background/save/share acceptance, Android device validation, and a licensed 80-image evaluation collection.

Built With

  • codex
  • drizzle-orm
  • gpt-image-2
  • inngest
  • jetpack-compose
  • kotlin
  • neon-postgres
  • next.js
  • openai-gpt-5.6
  • swiftui
  • typescript
  • vercel-blob
Share this project:

Updates