<?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: jacksam</title>
    <description>The latest articles on DEV Community by jacksam (@jacksam).</description>
    <link>https://dev.to/jacksam</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%2F3910331%2F9b743f4b-3e8f-40d3-8491-eaf5910d6a01.png</url>
      <title>DEV Community: jacksam</title>
      <link>https://dev.to/jacksam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jacksam"/>
    <language>en</language>
    <item>
      <title>Building Mireka: A Japanese-First AI Image Platform as a Solo Developer</title>
      <dc:creator>jacksam</dc:creator>
      <pubDate>Thu, 23 Jul 2026 06:41:00 +0000</pubDate>
      <link>https://dev.to/jacksam/building-mireka-a-japanese-first-ai-image-platform-as-a-solo-developer-hnm</link>
      <guid>https://dev.to/jacksam/building-mireka-a-japanese-first-ai-image-platform-as-a-solo-developer-hnm</guid>
      <description>&lt;p&gt;I recently launched &lt;a href="https://mireka.jp/" rel="noopener noreferrer"&gt;Mireka.jp&lt;/a&gt;, an AI image generation platform designed primarily for Japanese users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk4k9fkfrtyg7lzpbodo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk4k9fkfrtyg7lzpbodo5.png" alt=" " width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mireka is still at an early stage. It is not a finished product, and I do not want to pretend that everything has already been figured out.&lt;/p&gt;

&lt;p&gt;I am building it in public: launching early, observing how people use it, identifying what feels confusing, and improving the product step by step.&lt;/p&gt;

&lt;p&gt;In this post, I want to share why I started Mireka, why I chose to focus on Japan first, what I learned after launching the first version, and how I plan to expand it into a multilingual product.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem I Wanted to Solve
&lt;/h2&gt;

&lt;p&gt;There are already many powerful AI image models available today.&lt;/p&gt;

&lt;p&gt;Some are better at photorealistic images. Some are better at illustrations, product photography, text rendering, image editing, or creative styles.&lt;/p&gt;

&lt;p&gt;But from a user’s perspective, the experience is still fragmented.&lt;/p&gt;

&lt;p&gt;To use different models, people often need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create accounts on multiple platforms&lt;/li&gt;
&lt;li&gt;Learn different pricing and credit systems&lt;/li&gt;
&lt;li&gt;Add payment information more than once&lt;/li&gt;
&lt;li&gt;Understand which model is best for each task&lt;/li&gt;
&lt;li&gt;Learn how to write prompts&lt;/li&gt;
&lt;li&gt;Move generated images into other tools for editing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For experienced AI users, this may not be a major problem.&lt;/p&gt;

&lt;p&gt;For beginners, however, the first question is often not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should I create?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which model should I use?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think that is the wrong starting point.&lt;/p&gt;

&lt;p&gt;Most users do not care about model names at the beginning. They care about the result they want.&lt;/p&gt;

&lt;p&gt;They want to create a social media post, a product image, a YouTube thumbnail, an illustration, or a new background for an existing photo.&lt;/p&gt;

&lt;p&gt;That became the central idea behind Mireka:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with what you want to create, not with the name of an AI model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why I Started With Japan
&lt;/h2&gt;

&lt;p&gt;Most AI image platforms are designed for English-speaking users first.&lt;/p&gt;

&lt;p&gt;Many of them technically support Japanese prompts, but supporting Japanese input is not the same as designing a product for Japanese users.&lt;/p&gt;

&lt;p&gt;A localized product also needs to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How features are described&lt;/li&gt;
&lt;li&gt;Which examples are shown&lt;/li&gt;
&lt;li&gt;Which image formats are commonly needed&lt;/li&gt;
&lt;li&gt;Which social and publishing platforms people use&lt;/li&gt;
&lt;li&gt;What kind of design feels familiar and trustworthy&lt;/li&gt;
&lt;li&gt;How pricing, credits, and instructions are presented&lt;/li&gt;
&lt;li&gt;Whether the Japanese copy sounds natural&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, Japanese users may want to create images for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;X and Instagram posts&lt;/li&gt;
&lt;li&gt;YouTube thumbnails&lt;/li&gt;
&lt;li&gt;note article covers&lt;/li&gt;
&lt;li&gt;LINE announcements&lt;/li&gt;
&lt;li&gt;E-commerce product listings&lt;/li&gt;
&lt;li&gt;Advertisements and promotional banners&lt;/li&gt;
&lt;li&gt;Anime-style or manga-style content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Simply translating an English interface into Japanese would not be enough.&lt;/p&gt;

&lt;p&gt;Mireka is currently Japanese-first because I want to understand one market deeply before expanding into several markets superficially.&lt;/p&gt;

&lt;p&gt;I am a solo developer from China, so building for Japan also gives me an additional challenge: I need to learn not only how to build the software, but also how to understand a different language, market, and user experience.&lt;/p&gt;

&lt;p&gt;That challenge is one of the reasons I decided to build the product publicly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Launching Before Everything Was Perfect
&lt;/h2&gt;

&lt;p&gt;The first version of Mireka focused mainly on making the core image generation workflow work.&lt;/p&gt;

&lt;p&gt;Users could enter a prompt, choose a model, select an image ratio, and generate an image.&lt;/p&gt;

&lt;p&gt;Technically, the product worked.&lt;/p&gt;

&lt;p&gt;But after reviewing the website as a new user, I noticed a major problem.&lt;/p&gt;

&lt;p&gt;The interface explained many features, but it did not clearly answer the most important question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What can I actually make with this?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The homepage talked too much about models and capabilities.&lt;/p&gt;

&lt;p&gt;It expected users to understand the product before they had even tried it.&lt;/p&gt;

&lt;p&gt;Shortly after launching, I started redesigning several parts of the website:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The homepage structure&lt;/li&gt;
&lt;li&gt;The image generation interface&lt;/li&gt;
&lt;li&gt;The example gallery&lt;/li&gt;
&lt;li&gt;The product copy&lt;/li&gt;
&lt;li&gt;The model selection experience&lt;/li&gt;
&lt;li&gt;The pricing presentation&lt;/li&gt;
&lt;li&gt;The mobile navigation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of placing AI model names at the center of the experience, I began organizing the product around user goals.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a social media image&lt;/li&gt;
&lt;li&gt;Generate an AI illustration&lt;/li&gt;
&lt;li&gt;Design a product photo&lt;/li&gt;
&lt;li&gt;Edit an existing image&lt;/li&gt;
&lt;li&gt;Create an advertisement&lt;/li&gt;
&lt;li&gt;Make a YouTube thumbnail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was an important lesson for me.&lt;/p&gt;

&lt;p&gt;A feature may be technically impressive, but that does not mean users immediately understand why they need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Mireka Can Do Today
&lt;/h2&gt;

&lt;p&gt;Mireka currently brings several AI image generation and editing workflows into one platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Multiple AI Image Models
&lt;/h3&gt;

&lt;p&gt;Users can access different AI image models through one account.&lt;/p&gt;

&lt;p&gt;They do not need to register for a separate service every time they want to try another model.&lt;/p&gt;

&lt;p&gt;Credits, billing, and generation history can also be managed in one place.&lt;/p&gt;

&lt;p&gt;The goal is not to claim that one model is always the best.&lt;/p&gt;

&lt;p&gt;Different models are useful for different tasks, so Mireka should help users choose based on what they are trying to create.&lt;/p&gt;

&lt;h3&gt;
  
  
  Generate Images With Japanese Prompts
&lt;/h3&gt;

&lt;p&gt;Users can describe an image naturally in Japanese.&lt;/p&gt;

&lt;p&gt;They can specify the subject, background, mood, lighting, composition, clothing, or visual style without needing to write everything in English.&lt;/p&gt;

&lt;p&gt;This is especially important for users who are interested in AI image generation but feel uncomfortable using English prompt terminology.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start With a Real Use Case
&lt;/h3&gt;

&lt;p&gt;Instead of showing only technical aspect ratios such as 1:1, 16:9, and 9:16, Mireka connects those formats to real use cases.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Social media post&lt;/li&gt;
&lt;li&gt;YouTube thumbnail&lt;/li&gt;
&lt;li&gt;Smartphone wallpaper&lt;/li&gt;
&lt;li&gt;Product image&lt;/li&gt;
&lt;li&gt;Article cover&lt;/li&gt;
&lt;li&gt;Vertical short-form content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ratio still matters, but the purpose is easier to understand than the number.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compare Different Models
&lt;/h3&gt;

&lt;p&gt;Users can try similar prompts with different image models and compare the results.&lt;/p&gt;

&lt;p&gt;This makes it easier to see which models are better suited for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Photorealistic images&lt;/li&gt;
&lt;li&gt;Illustrations&lt;/li&gt;
&lt;li&gt;Product photography&lt;/li&gt;
&lt;li&gt;Text inside images&lt;/li&gt;
&lt;li&gt;Character design&lt;/li&gt;
&lt;li&gt;Image editing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Model comparison is useful because marketing pages often describe every model as powerful, but the actual results can vary significantly depending on the task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Edit Images With Natural Language
&lt;/h3&gt;

&lt;p&gt;Mireka is also intended to support workflows beyond initial image generation.&lt;/p&gt;

&lt;p&gt;Users should be able to make requests such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remove an unwanted object&lt;/li&gt;
&lt;li&gt;Replace the background&lt;/li&gt;
&lt;li&gt;Add a new element&lt;/li&gt;
&lt;li&gt;Change the lighting&lt;/li&gt;
&lt;li&gt;Adjust the colors&lt;/li&gt;
&lt;li&gt;Expand the image&lt;/li&gt;
&lt;li&gt;Modify part of the composition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My long-term goal is to reduce the need to move between multiple generation and editing tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create From Examples
&lt;/h3&gt;

&lt;p&gt;Writing a prompt from an empty text box can be difficult.&lt;/p&gt;

&lt;p&gt;Mireka includes examples that users can select and modify.&lt;/p&gt;

&lt;p&gt;An example can provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A starting prompt&lt;/li&gt;
&lt;li&gt;A recommended image ratio&lt;/li&gt;
&lt;li&gt;A suitable model&lt;/li&gt;
&lt;li&gt;A specific use case&lt;/li&gt;
&lt;li&gt;A visual direction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of learning prompt engineering before creating anything, users can begin with an existing example and gradually customize it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Localization Is More Than Translation
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of building Mireka has been learning that multilingual development is not mainly a translation problem.&lt;/p&gt;

&lt;p&gt;Translation is only one layer.&lt;/p&gt;

&lt;p&gt;A real multilingual product also needs localization at the level of intent.&lt;/p&gt;

&lt;p&gt;For example, a landing page created for English-speaking users may focus on concepts such as personal branding, LinkedIn content, or Etsy product images.&lt;/p&gt;

&lt;p&gt;A Japanese landing page may need different examples, terminology, visual references, and content platforms.&lt;/p&gt;

&lt;p&gt;Even seemingly simple UI labels can become difficult.&lt;/p&gt;

&lt;p&gt;A word may be grammatically correct but still feel unnatural in a SaaS interface.&lt;/p&gt;

&lt;p&gt;Pricing pages are another example.&lt;/p&gt;

&lt;p&gt;The best way to explain monthly credits, annual billing, one-time credit packs, and generation limits may differ between markets.&lt;/p&gt;

&lt;p&gt;This means I cannot simply build the Japanese version and later run every string through a translation system.&lt;/p&gt;

&lt;p&gt;For each language, I will need to reconsider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search intent&lt;/li&gt;
&lt;li&gt;Landing page structure&lt;/li&gt;
&lt;li&gt;Example prompts&lt;/li&gt;
&lt;li&gt;Product use cases&lt;/li&gt;
&lt;li&gt;SEO keywords&lt;/li&gt;
&lt;li&gt;Interface terminology&lt;/li&gt;
&lt;li&gt;Pricing presentation&lt;/li&gt;
&lt;li&gt;User expectations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Current Technology Stack
&lt;/h2&gt;

&lt;p&gt;Mireka is built with a modern TypeScript-based stack.&lt;/p&gt;

&lt;p&gt;The main technologies include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;Supabase&lt;/li&gt;
&lt;li&gt;Drizzle ORM&lt;/li&gt;
&lt;li&gt;Stripe&lt;/li&gt;
&lt;li&gt;Cloudflare&lt;/li&gt;
&lt;li&gt;Multiple external AI model APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using external AI providers makes it possible to support different models, but it also introduces additional engineering challenges.&lt;/p&gt;

&lt;p&gt;Each provider may have different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request formats&lt;/li&gt;
&lt;li&gt;Image size rules&lt;/li&gt;
&lt;li&gt;Processing times&lt;/li&gt;
&lt;li&gt;Credit costs&lt;/li&gt;
&lt;li&gt;Error responses&lt;/li&gt;
&lt;li&gt;Moderation rules&lt;/li&gt;
&lt;li&gt;Output formats&lt;/li&gt;
&lt;li&gt;Callback systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A large part of the work is not simply calling an image generation API.&lt;/p&gt;

&lt;p&gt;It is building a consistent user experience on top of several inconsistent systems.&lt;/p&gt;

&lt;p&gt;The user should not need to understand how every provider works internally.&lt;/p&gt;

&lt;p&gt;They should only need to choose what they want to create.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building in Public
&lt;/h2&gt;

&lt;p&gt;I am still deciding what to share as part of the build-in-public process.&lt;/p&gt;

&lt;p&gt;Some topics I plan to write about include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How I choose which AI models to integrate&lt;/li&gt;
&lt;li&gt;How I design a multi-model credit system&lt;/li&gt;
&lt;li&gt;How I approach Japanese SEO&lt;/li&gt;
&lt;li&gt;Mistakes in the first homepage design&lt;/li&gt;
&lt;li&gt;How I organize prompt examples&lt;/li&gt;
&lt;li&gt;How I localize product copy&lt;/li&gt;
&lt;li&gt;What users actually generate&lt;/li&gt;
&lt;li&gt;Which features people ignore&lt;/li&gt;
&lt;li&gt;Pricing experiments&lt;/li&gt;
&lt;li&gt;Expanding from Japanese to English&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also want to share failures, not only successful launches and revenue screenshots.&lt;/p&gt;

&lt;p&gt;A large percentage of product development is changing things that looked correct when they were first built.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;For now, my main priority is improving the Japanese version.&lt;/p&gt;

&lt;p&gt;I want to make the first-time experience clearer, add more practical use cases, improve the example gallery, and make model selection easier to understand.&lt;/p&gt;

&lt;p&gt;After that, I plan to launch an English version.&lt;/p&gt;

&lt;p&gt;Other languages may follow, but I do not want to release many poorly localized versions at the same time.&lt;/p&gt;

&lt;p&gt;The multilingual plan will probably look like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Improve the Japanese product experience&lt;/li&gt;
&lt;li&gt;Identify workflows that work across markets&lt;/li&gt;
&lt;li&gt;Build the English version&lt;/li&gt;
&lt;li&gt;Adapt examples and landing pages for English-speaking users&lt;/li&gt;
&lt;li&gt;Expand into additional languages gradually&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The English version will not simply be a translated copy of the Japanese website.&lt;/p&gt;

&lt;p&gt;It should reflect the platforms, search behavior, creative needs, and terminology of English-speaking users.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Would Appreciate Your Feedback
&lt;/h2&gt;

&lt;p&gt;Mireka is still an early-stage product, so feedback is especially valuable right now.&lt;/p&gt;

&lt;p&gt;I would love to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the product’s purpose clear when you first open the website?&lt;/li&gt;
&lt;li&gt;Does the image generation workflow feel easy to understand?&lt;/li&gt;
&lt;li&gt;Is choosing between different AI models confusing?&lt;/li&gt;
&lt;li&gt;Which image generation or editing features would you expect?&lt;/li&gt;
&lt;li&gt;Which models would you like to see supported?&lt;/li&gt;
&lt;li&gt;What would make you choose a multi-model platform instead of using each provider separately?&lt;/li&gt;
&lt;li&gt;What parts of the website feel unclear or unnecessary?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can try the current Japanese version here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mireka.jp/" rel="noopener noreferrer"&gt;Mireka.jp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will continue sharing the development process, design decisions, mistakes, and lessons as the product evolves.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nanobanana</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>How I Turned a Single LinkedIn Headshot Into a 6-Second Personal Branding Intro Video With AI</title>
      <dc:creator>jacksam</dc:creator>
      <pubDate>Tue, 16 Jun 2026 04:02:58 +0000</pubDate>
      <link>https://dev.to/jacksam/how-i-turned-a-single-linkedin-headshot-into-a-6-second-personal-branding-intro-video-with-ai-ebl</link>
      <guid>https://dev.to/jacksam/how-i-turned-a-single-linkedin-headshot-into-a-6-second-personal-branding-intro-video-with-ai-ebl</guid>
      <description>&lt;p&gt;Most people update their LinkedIn profile photo and stop there.&lt;/p&gt;

&lt;p&gt;I did the same for years.&lt;/p&gt;

&lt;p&gt;Then I started wondering:&lt;/p&gt;

&lt;p&gt;What if the same photo could become a short personal branding video?&lt;/p&gt;

&lt;p&gt;Not a talking avatar.&lt;/p&gt;

&lt;p&gt;Not a fake AI spokesperson.&lt;/p&gt;

&lt;p&gt;Just a subtle motion clip that feels like a real camera shot.&lt;/p&gt;

&lt;p&gt;So I tried an experiment.&lt;/p&gt;

&lt;p&gt;I took a single LinkedIn headshot and turned it into a 6-second intro video using an AI photo-to-video workflow.&lt;/p&gt;

&lt;p&gt;Here is exactly what I learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Starting Point
&lt;/h2&gt;

&lt;p&gt;I used a simple professional headshot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Neutral background&lt;/li&gt;
&lt;li&gt;Looking slightly off camera&lt;/li&gt;
&lt;li&gt;Good lighting&lt;/li&gt;
&lt;li&gt;High resolution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The image was originally created for LinkedIn, but it also appeared on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;personal website&lt;/li&gt;
&lt;li&gt;conference speaker page&lt;/li&gt;
&lt;li&gt;GitHub profile&lt;/li&gt;
&lt;li&gt;newsletter author profile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of creating a new video from scratch, I wanted to reuse the image I already had.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Most AI Animations Look Weird
&lt;/h2&gt;

&lt;p&gt;The first few attempts looked terrible.&lt;/p&gt;

&lt;p&gt;My prompts were things like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;make this person move naturally&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The results were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exaggerated head movement&lt;/li&gt;
&lt;li&gt;unnatural facial expressions&lt;/li&gt;
&lt;li&gt;strange eye motion&lt;/li&gt;
&lt;li&gt;distracting camera movement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The problem wasn't the model.&lt;/p&gt;

&lt;p&gt;The problem was the instruction.&lt;/p&gt;

&lt;p&gt;I realized that good photo-to-video generation is mostly about motion design.&lt;/p&gt;

&lt;p&gt;The photo already contains the composition.&lt;/p&gt;

&lt;p&gt;The AI only needs to create believable movement.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Prompt Structure That Worked
&lt;/h2&gt;

&lt;p&gt;Instead of describing the person, I started describing the shot.&lt;/p&gt;

&lt;p&gt;My final prompt looked something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Subtle natural blinking, slight breathing motion, gentle movement in hair, slow cinematic camera push in, professional lighting preserved, realistic facial details, no exaggerated expression changes, natural motion only.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This immediately produced better results.&lt;/p&gt;

&lt;p&gt;The biggest improvement came from limiting movement instead of adding movement.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Types of Motion
&lt;/h2&gt;

&lt;p&gt;I found that every successful result contained three motion layers.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Subject Motion
&lt;/h3&gt;

&lt;p&gt;Very small movement.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;blinking&lt;/li&gt;
&lt;li&gt;breathing&lt;/li&gt;
&lt;li&gt;slight posture adjustment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anything larger started to look artificial.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Environmental Motion
&lt;/h3&gt;

&lt;p&gt;Tiny background activity creates realism.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;moving light&lt;/li&gt;
&lt;li&gt;drifting particles&lt;/li&gt;
&lt;li&gt;subtle depth changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even minimal environmental motion makes a static image feel alive.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Camera Motion
&lt;/h3&gt;

&lt;p&gt;This was the most important layer.&lt;/p&gt;

&lt;p&gt;A slow push-in instantly made the clip feel like real footage.&lt;/p&gt;

&lt;p&gt;Without camera movement, the animation still felt like a photo.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Final Result
&lt;/h2&gt;

&lt;p&gt;The finished video was only six seconds long.&lt;/p&gt;

&lt;p&gt;Nothing dramatic happened.&lt;/p&gt;

&lt;p&gt;The person didn't talk.&lt;/p&gt;

&lt;p&gt;There was no voiceover.&lt;/p&gt;

&lt;p&gt;The camera slowly moved forward.&lt;/p&gt;

&lt;p&gt;The subject blinked once.&lt;/p&gt;

&lt;p&gt;The lighting shifted slightly.&lt;/p&gt;

&lt;p&gt;That was enough.&lt;/p&gt;

&lt;p&gt;The result felt more like a cinematic introduction than an AI animation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where This Works Surprisingly Well
&lt;/h2&gt;

&lt;p&gt;I now use short photo-to-video clips in several places:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn profile content&lt;/li&gt;
&lt;li&gt;speaker introductions&lt;/li&gt;
&lt;li&gt;portfolio websites&lt;/li&gt;
&lt;li&gt;conference landing pages&lt;/li&gt;
&lt;li&gt;personal brand reels&lt;/li&gt;
&lt;li&gt;newsletter promotions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Video naturally attracts more attention than static images, which is one reason personal branding experts often recommend incorporating video into online profiles and content.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Would Do Differently
&lt;/h2&gt;

&lt;p&gt;If I repeated the experiment, I would spend more time preparing the original image.&lt;/p&gt;

&lt;p&gt;The quality of the source photo matters more than most people think.&lt;/p&gt;

&lt;p&gt;A strong composition produces significantly better motion results.&lt;/p&gt;

&lt;p&gt;That's also why many experienced AI creators focus on building a good image before trying to animate it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Simple Workflow Anyone Can Follow
&lt;/h2&gt;

&lt;p&gt;My workflow is now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create or choose a strong photo.&lt;/li&gt;
&lt;li&gt;Define subject motion.&lt;/li&gt;
&lt;li&gt;Define environmental motion.&lt;/li&gt;
&lt;li&gt;Define camera motion.&lt;/li&gt;
&lt;li&gt;Add preservation instructions.&lt;/li&gt;
&lt;li&gt;Generate multiple versions.&lt;/li&gt;
&lt;li&gt;Keep the most natural result.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're new to AI video creation, I found this guide on creating intentional photo-to-video prompts particularly useful:&lt;/p&gt;

&lt;p&gt;Photo to Video AI Workflow:&lt;br&gt;
&lt;a href="https://phototovideoai.co/blog/how-to-turn-photos-into-ai-videos" rel="noopener noreferrer"&gt;https://phototovideoai.co/blog/how-to-turn-photos-into-ai-videos&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It explains how to think about motion before generating the video.&lt;/p&gt;

&lt;p&gt;For generating the actual animation, I used:&lt;br&gt;
&lt;a href="https://phototovideoai.co/" rel="noopener noreferrer"&gt;https://phototovideoai.co/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyhgow1ukdalbsjg4c9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flyhgow1ukdalbsjg4c9f.png" alt=" " width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It allows you to turn a still image into a short AI-generated video using motion prompts and camera movement instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The interesting part wasn't the technology.&lt;/p&gt;

&lt;p&gt;It was realizing that a single photo can become a reusable video asset.&lt;/p&gt;

&lt;p&gt;Most of us already have profile photos sitting in folders, on LinkedIn, or on our websites.&lt;/p&gt;

&lt;p&gt;Adding subtle motion can make those images feel much more alive without requiring a camera, microphone, or video editing workflow.&lt;/p&gt;

&lt;p&gt;Sometimes a six-second clip is all you need.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Built a Multi-Model AI Image &amp; Video Platform — Here's What I Learned</title>
      <dc:creator>jacksam</dc:creator>
      <pubDate>Sun, 03 May 2026 13:01:49 +0000</pubDate>
      <link>https://dev.to/jacksam/i-built-a-multi-model-ai-image-video-platform-heres-what-i-learned-5d0j</link>
      <guid>https://dev.to/jacksam/i-built-a-multi-model-ai-image-video-platform-heres-what-i-learned-5d0j</guid>
      <description>&lt;p&gt;A few months ago I started building &lt;a href="https://bananai.io/" rel="noopener noreferrer"&gt;Bananai&lt;/a&gt; — a platform that&lt;br&gt;
lets you generate images, edit photos, and create AI videos all in one place without&lt;br&gt;
switching between five different tools and five different billing dashboards.&lt;/p&gt;

&lt;p&gt;Here's what I actually learned integrating 10+ models end-to-end as an indie dev.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;My problem was embarrassingly mundane: I needed to test GPT Image 2 against Nano Banana&lt;br&gt;
Pro for an e-commerce client's product shots. I had &lt;strong&gt;four browser tabs open&lt;/strong&gt;, four&lt;br&gt;
different logins, four different credit top-ups, and I was copy-pasting the same prompt&lt;br&gt;
over and over.&lt;/p&gt;

&lt;p&gt;The obvious solution was to wrap them in a unified UI. What I thought would take a&lt;br&gt;
weekend ended up being a real product — because model integration is the easy part.&lt;br&gt;
Everything else is the hard part.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. Picking the right model for the task is not obvious
&lt;/h2&gt;

&lt;p&gt;The first mistake I made was treating "best model = best output for every use case." That's&lt;br&gt;
wrong. Here's how I actually think about it now:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Model choice&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fast social content iteration&lt;/td&gt;
&lt;td&gt;Nano Banana 2&lt;/td&gt;
&lt;td&gt;2–5s per image, good enough quality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client deliverables / 4K output&lt;/td&gt;
&lt;td&gt;Nano Banana Pro&lt;/td&gt;
&lt;td&gt;Max quality, character consistency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text in images (logos, UI mocks)&lt;/td&gt;
&lt;td&gt;GPT Image 2&lt;/td&gt;
&lt;td&gt;Best text rendering accuracy by far&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Animate a still product photo&lt;/td&gt;
&lt;td&gt;Seedance / Veo&lt;/td&gt;
&lt;td&gt;Different motion styles, test both&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Background removal + style transfer&lt;/td&gt;
&lt;td&gt;Nano Banana (editing mode)&lt;/td&gt;
&lt;td&gt;Natural language edit instructions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The practical takeaway: &lt;strong&gt;expose model selection to the user early.&lt;/strong&gt; Users figure out&lt;br&gt;
their own preferences faster than any default you set. I wasted a month pre-selecting&lt;br&gt;
defaults before realizing users just want the picker.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. The cost structure is wilder than you'd expect
&lt;/h2&gt;

&lt;p&gt;Before building this I assumed model pricing was roughly proportional to quality. It's not.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPT Image 2&lt;/strong&gt; — ~$0.006/image at standard quality. Shockingly cheap for what it outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nano Banana 2&lt;/strong&gt; — fast and economical, great for high-volume generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video models&lt;/strong&gt; — anywhere from 10x to 50x more expensive than image per output second.
Budget for this separately. Video is a different product category economically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The thing that trips up most builders: &lt;strong&gt;you need to model your credit burn rate for&lt;br&gt;
different user behavior patterns, not averages.&lt;/strong&gt; A power user generating 4K video clips&lt;br&gt;
will burn through credits 30x faster than someone doing quick image edits. If you price&lt;br&gt;
on averages, power users kill your margin.&lt;/p&gt;

&lt;p&gt;My approach: track generation cost per user session, flag sessions above the 95th&lt;br&gt;
percentile, and cap or up-sell those users. Works better than blanket rate limits.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Async generation UX is harder than sync
&lt;/h2&gt;

&lt;p&gt;Most image models are fast enough to feel synchronous (~3–5 seconds). But video generation&lt;br&gt;
can take 20–60 seconds depending on model and duration. That's a different UX contract.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What didn't work:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spinner with no feedback → users thought it crashed and refreshed&lt;/li&gt;
&lt;li&gt;Showing "estimated time" → estimates were wrong enough to frustrate people more than no
estimate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What actually worked:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progress bar that moves in two phases: "queued → processing" with distinct visual states&lt;/li&gt;
&lt;li&gt;Showing a low-res preview/thumbnail as soon as it's available while full resolution
renders&lt;/li&gt;
&lt;li&gt;Email/notification when a long video finishes (reduces page-staring behavior)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For image generation, the UX expectation is basically instant. Anything over 8 seconds&lt;br&gt;
feels broken to users, even if technically the model is just slow. Cache aggressively,&lt;br&gt;
pre-warm where possible.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Prompt UX is underrated
&lt;/h2&gt;

&lt;p&gt;Most AI image tools show you a blank text box. That's terrible for conversion and&lt;br&gt;
terrible for retention — new users don't know what to type and leave.&lt;/p&gt;

&lt;p&gt;What I added instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;promptSuggestions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🎨 Product Hero Shot&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🖼️ Remove Background&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🎬 Cinematic Scene&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;✨ Style Transfer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These aren't just UI sugar. Each one loads a &lt;strong&gt;pre-filled prompt template with the&lt;br&gt;
right model pre-selected and the right settings pre-configured.&lt;/strong&gt; Click "Product Hero&lt;br&gt;
Shot" and you get an image-to-image flow with the right aspect ratio for e-commerce, not&lt;br&gt;
a blank canvas.&lt;/p&gt;

&lt;p&gt;Conversion from landing → first generation went up significantly after this. Users who&lt;br&gt;
generate at least one image on their first visit retain at 3x the rate of those who&lt;br&gt;
don't.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Multi-model output comparison is the killer feature nobody talks about
&lt;/h2&gt;

&lt;p&gt;The most popular session pattern I see in analytics: user generates with one model, then&lt;br&gt;
immediately tries the same prompt with another model to compare. This is the workflow&lt;br&gt;
professional designers actually use — they're not loyal to a model, they want to see options.&lt;/p&gt;

&lt;p&gt;Building side-by-side comparison mode is on the roadmap. If you're building a similar&lt;br&gt;
tool: &lt;strong&gt;this is worth prioritizing early.&lt;/strong&gt; It's also the stickiest feature because it&lt;br&gt;
locks users into your platform (they can't compare across separate tools with one click).&lt;/p&gt;




&lt;h2&gt;
  
  
  What's live now
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bananai.io/" rel="noopener noreferrer"&gt;Bananai&lt;/a&gt; currently has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Image generation&lt;/strong&gt;: Nano Banana 2 &amp;amp; Pro, GPT Image 2, Grok Imagine, Midjourney,
Seedream, Wan 2.7&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image editing&lt;/strong&gt;: background removal, style transfer, inpainting, upscaling — all
via natural language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video generation&lt;/strong&gt;: Veo 3.1, Seedance 2.0, Wan 2.7 Video, Grok Imagine Video&lt;/li&gt;
&lt;li&gt;Free credits on sign-up, daily check-in credits, no credit card required to start&lt;/li&gt;
&lt;li&gt;GPT Image 2 at &lt;strong&gt;$0.006/image&lt;/strong&gt; — cheapest I've found anywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building something with AI image generation or just want to test models&lt;br&gt;
without juggling multiple accounts, &lt;a href="https://bananai.io/" rel="noopener noreferrer"&gt;give it a try&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with one model, nail the UX, then add models.&lt;/strong&gt; I added too many too fast and
spread the QA effort too thin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instrument cost tracking from day one.&lt;/strong&gt; I retrofitted it and lost two weeks of data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't underestimate video.&lt;/strong&gt; It looks like "image but animated" but it's actually
a completely different infrastructure, moderation, and pricing problem.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Happy to answer questions about any of this — model integration, credit system design,&lt;br&gt;
or the UX decisions. Drop them in the comments.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Next.js, deployed on Vercel, with Cloudflare for CDN/image resizing.&lt;br&gt;
Backend is a monolith I'm slowly ashamed of.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
