<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prantik</title>
    <description>The latest articles on DEV Community by Prantik (@prantik_1995).</description>
    <link>https://dev.to/prantik_1995</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4123986%2Fdca8a215-d9bb-4718-8758-386d8751c164.png</url>
      <title>DEV Community: Prantik</title>
      <link>https://dev.to/prantik_1995</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prantik_1995"/>
    <language>en</language>
    <item>
      <title>Why I built an open creative layer across image, video, voice and AI agents</title>
      <dc:creator>Prantik</dc:creator>
      <pubDate>Mon, 14 Sep 2026 06:18:17 +0000</pubDate>
      <link>https://dev.to/prantik_1995/why-i-built-an-open-creative-layer-across-image-video-voice-and-ai-agents-5cke</link>
      <guid>https://dev.to/prantik_1995/why-i-built-an-open-creative-layer-across-image-video-voice-and-ai-agents-5cke</guid>
      <description>&lt;p&gt;Foundation models keep changing. Your creative workflow shouldn't have to.&lt;/p&gt;

&lt;p&gt;AI media has an unusual problem.&lt;/p&gt;

&lt;p&gt;The best model for images may come from one company.&lt;/p&gt;

&lt;p&gt;The best model for video may come from another.&lt;/p&gt;

&lt;p&gt;Your preferred text-to-speech model may be somewhere else entirely.&lt;/p&gt;

&lt;p&gt;And six months later, all three might change.&lt;/p&gt;

&lt;p&gt;That makes building a creative application surprisingly awkward.&lt;/p&gt;

&lt;p&gt;If your product is deeply coupled to today's winning model, you're effectively building on shifting sand.&lt;/p&gt;

&lt;p&gt;While building OpenCreative, I started approaching the problem differently:&lt;/p&gt;

&lt;p&gt;Treat models as infrastructure. Treat the creative workflow as the product.&lt;/p&gt;

&lt;p&gt;Then continue with sections:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The problem with provider-first creative tools&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Explain:&lt;/p&gt;

&lt;p&gt;users lose project context between products;&lt;br&gt;
assets have to be downloaded/re-uploaded;&lt;br&gt;
prompts and references don't travel;&lt;br&gt;
pricing/model quality changes constantly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A capability layer instead of a model picker&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Explain that the user asks to:&lt;/p&gt;

&lt;p&gt;generate an image;&lt;br&gt;
animate a frame;&lt;br&gt;
dub a video;&lt;br&gt;
create a voiceover;&lt;br&gt;
relight footage;&lt;/p&gt;

&lt;p&gt;rather than having to think first about which provider should perform it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One project, many modalities&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;A user starts with a product launch brief.&lt;br&gt;
Generate product photography.&lt;br&gt;
Turn the hero shot into video.&lt;br&gt;
Add narration.&lt;br&gt;
Translate it.&lt;br&gt;
Produce social cuts.&lt;br&gt;
Reuse the brand material for a customer-facing support agent.&lt;/p&gt;

&lt;p&gt;That's the workflow OpenCreative is trying to make continuous.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why we're using an open-core approach&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Talk about:&lt;/p&gt;

&lt;p&gt;avoiding permanent vendor lock-in;&lt;br&gt;
provider abstraction;&lt;br&gt;
future BYOK;&lt;br&gt;
self-hosting where practical;&lt;br&gt;
keeping private assets under stronger user control.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What I've learned&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good points:&lt;/p&gt;

&lt;p&gt;abstractions should expose advanced controls instead of hiding everything;&lt;br&gt;
creative consistency matters more than raw model count;&lt;br&gt;
cost estimation should happen before generation;&lt;br&gt;
asynchronous media generation changes UX considerably;&lt;br&gt;
storing lineage between input/reference/model/output is extremely useful.&lt;/p&gt;

&lt;p&gt;Closing&lt;/p&gt;

&lt;p&gt;I'm still early with this.&lt;/p&gt;

&lt;p&gt;OpenCreative currently includes image, video, voice, dubbing, music, avatar/character and agent workflows, but I'm much more interested in whether the architecture survives as models change.&lt;/p&gt;

&lt;p&gt;I'd especially like feedback from people building on multiple AI providers.&lt;/p&gt;

&lt;p&gt;Project: &lt;a href="https://opencreativehq.com/" rel="noopener noreferrer"&gt;opencreativehq.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If there's interest, I can write a second post about how we're handling provider routing, asset lineage and generation jobs.&lt;/p&gt;

&lt;p&gt;That last sentence gives you an excuse to publish Part 2, which means more backlinks and more discovery.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
