Eikon Studio

November 2025 to August 2026 · Solo project · Product design, full-stack development, and API

An Eikon Studio image workspace card

I started Eikon because I hated the existing image-generation platforms. Some were too expensive. Others had terrible interfaces. Most would not let me use my own provider keys.

The first version only supported Nano Banana. At the time, it was the only image model I actually liked using. I started with Vercel's Nano Banana Starter template, which was little more than a simple generation screen. Most of Eikon has been built beyond that starting point.

Why bring your own key

I do not want to resell generations or add another markup. People already have access to Google and OpenAI. Eikon should make those models easier to use, not become another company selling the same inference through a different screen.

A creator can use the studio without learning a provider API. A developer can send the same request through Eikon's REST API. AI agents will eventually use the CLI and SDK without touching the dashboard. The web interface and REST API work today. The CLI and TypeScript and Python SDKs are still in development.

The Eikon Studio landing page showing its bring-your-own-key media pipeline and dashboard
The live Eikon site presents one workspace for provider keys, model access, media, and usage.

A generation can outlive the browser

01Connect a key

Save a Google or OpenAI credential.

02Choose a model

Select one of the three ready image models.

03Add the input

Write a prompt or attach reference images.

04Start the job

Convex records the generation before provider work begins.

05Leave if needed

Navigation or closing the app does not cancel the work.

06Return later

The result appears in generation history when it finishes.

07Keep the image

Download it or organize it in the gallery.

The browser starts the job, but Convex owns its progress and result.

The hardest part was making generations persist

An image generation should not belong to an open browser tab. A user might change pages, close the app, or return later while the provider is still working. Eikon creates the generation record in Convex before starting the provider request. Convex keeps the work running, saves the completed output, and updates the user's history.

Building this was the hardest part of the project. Provider calls can take time, fail halfway through, or finish after the user has left. The system has to know whether it is safe to retry without accidentally creating another paid generation.

How Eikon connects the interface to the provider

Ways in
Web studioAvailable now
REST APIAvailable now
CLI and SDKsIn development
Eikon
Model registryCapabilities and readiness
Generation contractOne request shape and job lifecycle
Credential boundaryServer-side provider-key access
Providers
GoogleNano Banana models
OpenAIGPT Image
Convex
Background workContinues after the browser leaves
Database and storageKeeps the record and returned media
Back to the user
HistoryStatus and past generations
GalleryFolders, saved media, and downloads
AnalyticsUsage and estimated cost
The interface and API share the same model registry, provider path, and stored result.
Public REST APIrequest.json
{
  "prompt": "An isometric keyboard switch cutaway",
  "provider": "openai",
  "imageSize": "2K",
  "aspectRatio": "landscape"
}

curl -X POST https://eikonstudio.xyz/api/v1/generate -H 'Authorization: Bearer eik_...'

The current REST API sends a generation through the same account-scoped path as the studio.

What works now and where I want to take it

The current release handles text-to-image generation, image editing, references, reusable prompt skills, folders, history, a personal gallery, usage analytics, Google sign-in, provider credentials, platform API keys, and a public REST endpoint. A couple of my friends and colleagues use it. Anyone can run the hosted version or self-host the project.

The useful breadth of fal.ai is the long-term reference point, not its branding or payment model. I want Eikon to provide a visual studio and one consistent way to call image and video models. More provider adapters, runnable models, comparison tools, model playgrounds, a CLI, and typed SDKs are still ahead.

what the user doeswhat Eikon keeps
connect provider key
Encrypted credentialOnly server-side code can resolve it
choose a model
Ready catalog entryUnavailable models stay out of the selector
prompt + references
Validated requestSaved before provider work starts
start generation
Persistent Convex recordWork continues after navigation or close
provider returns media
Stored outputCopied into Convex storage
generation completes
History and analyticsThe result returns to the account
The prompt, job, and returned image stay connected after the browser leaves.