Skip to content

Sabbir Mohammad Sami web developer

ResumeDownload Resume

All notes

(AI)17 min read

Free AI Image Generation APIs in 2026: How to Get a Key and What Each Free Tier Allows

Only a few image-generation APIs are free to call from your own code in 2026. Cloudflare Workers AI gives 10,000 neurons a day — about 57 FLUX.1 [schnell] images. A free Hugging Face account gets five GPU minutes a day on ZeroGPU Spaces. Pollinations, Puter.js and Stability AI cover the rest. Gemini’s image API has no free tier.

Cover: “Free AI image tools” in heavy capitals beside a contact sheet of six line-drawn frames, one of them marked “$0”Cover: “Free AI image tools” in heavy capitals beside a contact sheet of six line-drawn frames, one of them marked “$0”

( Before you start )

Which image APIs are actually free?

APIFree allowanceWhat you needBest for
Cloudflare Workers AI10,000 neurons a day — about 57 FLUX.1 [schnell] imagesAccount ID + API tokenA real app’s backend
Hugging Face Spaces5 GPU minutes a day with a free account, 2 without oneNothing; a token raises the quotaScripts and prototypes
PollinationsOne-time Pollen from dashboard quests; FLUX.1 [schnell] costs 0.002 PollenAPI keyQuick experiments
Puter.jsFree for you — each visitor pays from their own Puter accountNothingBrowser-only apps
Stability AI25 credits once — 8 Stable Image Core imagesAPI keyTrying Stability’s models

Checked on 20 October 2026 against each provider’s own pricing and documentation, and every free route here was called from code that day — the Cloudflare figures are measured on a free account. Free tiers change often; each section links to the page to check again.

Not free, whatever you read elsewhere: the Gemini API lists no free tier for any image model, Together AI’s image models are all paid, and Hugging Face’s Inference Providers include no monthly credits for free accounts. Details in Not free, despite the claims.

How to choose

  • Building a site or app that generates images for visitors? Cloudflare Workers AI. It has the most dependable daily allowance, a stable REST API and published rate limits (720 requests a minute for image models).
  • Running a script on your own machine? A Hugging Face Space through gradio_client. No account needed to start.
  • A static site with no server at all? Puter.js — no key to hide, because each visitor signs in and pays for their own images.
  • Selling the images or using them for a client? FLUX.1 [schnell] is released under Apache-2.0, which allows commercial use. Check the model card for any other model you pick.

Whichever you choose, the prompt matters more than the API. How to write AI image prompts walks through a formula that works with all of them.

Set up a .env file first

Every key below goes in one file at the root of your project, never in the code itself. Create .env, one line per key, no quotes and no spaces around =:

Text
CF_ACCOUNT_ID=your-account-id
CF_API_TOKEN=your-cloudflare-token
HF_TOKEN=hf_...
POLLINATIONS_KEY=sk_...
STABILITY_API_KEY=sk-...

Keep it out of git before anything else, so it can never be pushed by accident:

Bash
echo ".env" >> .gitignore
git status   # .env must not appear in the list
  • In the terminal (for the curl examples): set -a; source .env; set +a loads every key into the current shell.
  • In Node 20 or later: node --env-file=.env script.mjs — no package needed.
  • In Next.js: keys in .env are read on the server automatically. Never prefix them with NEXT_PUBLIC_, which would send them to the browser.

If a key leaks — pasted in a chat, pushed to GitHub, shown in a screenshot — replace it at once: Cloudflare under My Profile → API Tokens (Roll or delete), Hugging Face under Access Tokens → Manage, Pollinations and Stability by deleting the key on their dashboards and making a new one.

( Get a key and make your first image )

Cloudflare Workers AI

Every Cloudflare account, including the free plan, gets 10,000 neurons a day, reset at 00:00 UTC. Each response reports what it used: a 1024 × 1024 FLUX.1 [schnell] image at the default 4 steps came to 172.8 neurons in my test — about 57 images a day. (The bill is 4.8 neurons per 512 × 512 tile plus 9.6 per tile per step, so a 1024 × 1024 image is 4 tiles.) On the free plan, requests over the limit fail until the reset — you are never billed.

Get the key

  1. Sign up at dash.cloudflare.com and verify your email. The free plan is enough.
  2. In the dashboard, open AI → Workers AI and select Use REST API.
  3. Select Create a Workers AI API Token. A form opens with most fields already filled — check them against the table below.
  4. Select Continue to summary, then Create Token, and copy the token straight away. Cloudflare shows it only once.
  5. Back on the Workers AI page, under Get Account ID, copy the Account ID.
  6. Put both in your .env as CF_ACCOUNT_ID and CF_API_TOKEN (see Set up a .env file first).
Field in the formWhat to put
Token nameAnything. One token per project is easiest to manage — portfolio-image-api, for example.
Permissions, row 1Account → Workers AI → Read. If the last box shows 0, that is an empty value: click the arrows and pick Read.
Permissions, row 2Account → Workers AI → Edit. Usually already set.
Account ResourcesInclude → your own account (shown as “<your email>’s Account”).
Client IP Address FilteringLeave empty. Later, on a server with a fixed IP, you can lock the token to it.
TTLLeave empty for a token that does not expire, or set an end date for a test token.

Cloudflare’s docs require both Workers AI Read and Workers AI Edit; with only one, calls to the models fail.

Check the key works

Bash
curl -s https://api.cloudflare.com/client/v4/user/tokens/verify \
  -H "Authorization: Bearer $CF_API_TOKEN"
# {"result":{"id":"…","status":"active"},"success":true,"errors":[],
#  "messages":[{"code":10000,"message":"This API Token is valid and active"}]}

Use the /user/tokens/verify address. The token this form makes is a user token, so /accounts/<id>/tokens/verify answers Invalid API Token for it — even though it works for Workers AI.

Make an image

Bash
curl -s https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/ai/run/@cf/black-forest-labs/flux-1-schnell \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -d '{ "prompt": "a red apple on a white table, soft daylight", "steps": 4 }' \
  | jq -r .result.image | base64 --decode > apple.jpg

The response is JSON with the image as a base64 JPEG in result.image. The same call from Node 20 or later, with no packages:

JavaScript
// cf-image.mjs — run with: node --env-file=.env cf-image.mjs "a red apple on a white table"
import { writeFileSync } from 'node:fs';

const prompt = process.argv[2] ?? 'a red apple on a white table';
const url = `https://api.cloudflare.com/client/v4/accounts/${process.env.CF_ACCOUNT_ID}/ai/run/@cf/black-forest-labs/flux-1-schnell`;

const res = await fetch(url, {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.CF_API_TOKEN}` },
  body: JSON.stringify({ prompt, steps: 4 }),
});
const data = await res.json();
if (!data.success) throw new Error(JSON.stringify(data.errors));

writeFileSync('image.jpg', Buffer.from(data.result.image, 'base64'));
  • steps goes up to 8. Each extra step costs another 38.4 neurons at 1024 × 1024: 8 steps measured 326.4 neurons, about 30 images a day. Smaller images cost less — 512 × 512 is a single tile.
  • @cf/black-forest-labs/flux-2-klein-4b is the newer FLUX.2 option. It takes multipart form data rather than JSON (curl -F prompt=… -F width=1024 -F height=1024), and its response does not report neurons, so check the usage graph before relying on it. Check its model card for the licence too.
  • The Leonardo models (phoenix-1.0, lucid-origin) cost over 500 neurons per tile, so only a handful fit in the free allowance.
  • Not every model runs on the free plan. Some answer Model … is not available on the Workers Free plan (error 5035); FLUX.1 [schnell] and FLUX.2 klein do run on it.

If it fails

What you seeWhyFix
Model … is not available on the Workers Free plan (code 5035)The model is paid-onlyUse FLUX.1 [schnell], or move to Workers Paid
prompt is required (code 3030) from flux-2-klein-4bThat model takes form data, not JSONSend -F prompt=… instead of -d '{…}'
An authentication errorWrong token, wrong account ID, or a permission missingRun the verify call above; check both Read and Edit rows
Errors after a day of useThe 10,000 neurons are used upWait until 00:00 UTC; nothing is billed

Source: Workers AI pricing and FLUX.1-schnell on Workers AI.

Hugging Face Spaces (ZeroGPU)

Many public demos on Hugging Face run on ZeroGPU, shared GPUs with a daily quota: 2 minutes without an account, 5 minutes with a free one, reset 24 hours after your first use. Black Forest Labs’ own FLUX.1-schnell Space can be called like an API. In my test a 1024 × 1024 image took about 4 seconds end to end, so five minutes is in the region of 75–100 images — fewer when the queue is busy.

Get a token (optional, raises 2 to 5 minutes)

  1. Create a free account at huggingface.co/join and verify your email.
  2. Open Settings → Access Tokens and select New token (or Create new token).
  3. Fill the form as below, create the token and copy it.
  4. Put it in your .env as HF_TOKEN.
Field in the formWhat to put
Token typeRead. It is all that calling a Space needs. Never Write for this — a leaked write token can change your repositories.
Token nameWhat it is for, such as image-script. Hugging Face recommends one token per app or machine, so you can cancel one without breaking the others.

For a production app, Hugging Face recommends a Fine-grained token instead, limited to exactly what the app needs.

Check the key works

Bash
curl -s https://huggingface.co/api/whoami-v2 -H "Authorization: Bearer $HF_TOKEN"
# a JSON description of your account, starting with your user name

A missing or wrong token answers {"error":"Invalid username or password."}.

Make an image

Bash
pip install gradio_client
Text
# hf_image.py — run with: python hf_image.py
import os, shutil
from gradio_client import Client

client = Client("black-forest-labs/FLUX.1-schnell", token=os.environ.get("HF_TOKEN"))
path, seed = client.predict(
    prompt="a red apple on a white table, soft daylight",
    seed=0,
    randomize_seed=True,
    width=1024,
    height=1024,
    num_inference_steps=4,
    api_name="/infer",
)
shutil.copy(path, "apple.webp")  # the Space returns a WebP in a temp folder
print("seed", seed)

Without Python, it is two plain HTTP calls: one queues the job and returns an event_id, the second waits for the result and returns a URL to the image.

Bash
SPACE=https://black-forest-labs-flux-1-schnell.hf.space/gradio_api/call/infer
ID=$(curl -s -X POST $SPACE -H 'Content-Type: application/json' \
  -d '{"data": ["a red apple on a white table", 0, true, 1024, 1024, 4]}' | jq -r .event_id)
curl -s -N $SPACE/$ID   # ends with "event: complete" and the image URL

If it fails

What you seeWhyFix
Invalid username or password.Token missing or mistypedCopy it again from Access Tokens; check HF_TOKEN is loaded
An error about your GPU quotaThe day’s ZeroGPU minutes are usedWait — the quota refills 24 hours after your first use that day
A long wait before the imageThe Space’s queue is busyRetry later, or duplicate the Space into your account
An error about the inputsThe Space’s author changed its formOpen …hf.space/gradio_api/info to see the current inputs

A Space is a demo, not a service with an uptime promise: its author can change the inputs or take it down. For something you rely on, duplicate it into your own account — free accounts in good standing (verified email, older than 30 days) can host two ZeroGPU Spaces. Source: ZeroGPU documentation.

Pollinations

Pollinations puts dozens of image models behind one simple URL. Its current endpoint, gen.pollinations.ai, needs an API key: in my test on 20 October 2026 it served two images without one, then answered 401 — A valid API key is required. Usage is paid in Pollen. The hourly free refill ended in July 2026; free Pollen now comes from one-time quests in the dashboard. FLUX.1 [schnell] costs 0.002 Pollen an image, and Pollen sells at about $1 each — so even after the quests run out it is roughly $0.002 an image.

Get the key

  1. Go to enter.pollinations.ai and sign in with GitHub.
  2. Complete the quests on the dashboard and claim their Pollen — claiming is only possible there.
  3. Under Keys, create a secret key (sk_…) with the settings below and copy it.
  4. Put it in your .env as POLLINATIONS_KEY. A secret key belongs on a server only — never in a browser, an app or a repository.
Key settingWhat to choose
NameWhat it is for, such as image-script.
Model permissionsOnly what you use: the image category, or just black-forest-labs/flux.1-schnell.
BudgetA small Pollen cap, such as 1 — at 0.002 Pollen an image that is still 500 images.
ExpiryA few days for a test key; longer for one a server keeps using.
Spend only Quest PollenOn. The key then stops when the free Pollen runs out instead of spending a paid balance.

Check the key works

Bash
curl -s https://gen.pollinations.ai/account/key -H "Authorization: Bearer $POLLINATIONS_KEY"      # valid? type, permissions
curl -s https://gen.pollinations.ai/account/balance -H "Authorization: Bearer $POLLINATIONS_KEY"  # Pollen left

Make an image

Bash
curl -o apple.jpg -H "Authorization: Bearer $POLLINATIONS_KEY" \
  "https://gen.pollinations.ai/image/a%20red%20apple%20on%20a%20white%20table?model=black-forest-labs%2Fflux.1-schnell&width=1024&height=1024"

If it fails

What you seeWhyFix
401 A valid API key is required or Authentication requiredNo key sent, or the key is wrongSend Authorization: Bearer $POLLINATIONS_KEY; check it with /account/key
402 Payment requiredThe account or the key’s budget is out of PollenCheck /account/balance; claim more quests or raise the key’s budget
429 or 503Too many requests, or the model is busyWait for the number of seconds in the Retry-After header

The response is the image itself, not JSON. GET https://gen.pollinations.ai/image/models lists every model with its price and a paid_only flag — only models marked false can be paid with Quest Pollen. The old keyless endpoint, image.pollinations.ai/prompt/…, still answers, but in my test it returned the Sana model with a “pollinations.ai” logo in the corner — fine for a placeholder, not for a product. Source: Pollinations API docs.

Puter.js

Puter.js works the other way round: there is no key and no bill for you, because each visitor signs in with their own Puter account and their usage is charged to it (Puter calls this “user-pays”). That makes it the one option here that is safe to call straight from a static page. The cost is that every visitor sees a Puter sign-in, and Puter publishes no number for how much a free Puter account can generate.

Text
<script src="https://js.puter.com/v2/"></script>
<script>
  puter.ai
    .txt2img('a red apple on a white table, soft daylight', { model: 'black-forest-labs/flux-schnell' })
    .then((img) => document.body.appendChild(img));
</script>

There is no key to create: add the script tag and call it. The first time a visitor triggers it, Puter asks them to sign in or create a free Puter account; after that their images are charged to that account. txt2img resolves to an <img> element. The model list includes FLUX, Imagen 4, Gemini and GPT image models; leave model out for the default. Source: Puter.js image generation.

Stability AI

A new account gets 25 free credits, once. A credit is $0.01; Stable Image Core costs 3 credits an image, so the free credits make 8 images (or 10 with SD 3.5 Flash at 2.5 credits). Enough to judge the models, not to run anything.

Get the key

  1. Create an account at platform.stability.ai and sign in.
  2. Open your account page and find API Keys. A key (sk-…) is already there — there is no form to fill. Copy it.
  3. Put it in your .env as STABILITY_API_KEY.

Check the key works

Bash
curl -s https://api.stability.ai/v1/user/balance -H "Authorization: Bearer $STABILITY_API_KEY"
# {"credits": …} — 25 on a new account

Without the header it answers missing authorization header. Check the balance before a batch: each Stable Image Core image takes 3 credits, and the free 25 do not come back.

Make an image

Bash
curl -f -sS https://api.stability.ai/v2beta/stable-image/generate/core \
  -H "Authorization: Bearer $STABILITY_API_KEY" \
  -H "Accept: image/*" \
  -F prompt="a red apple on a white table, soft daylight" \
  -F output_format=webp \
  -o apple.webp

The request is multipart form data, not JSON. Source: Stability AI pricing.

( Going further )

Keep the key on the server

Any key in front-end code can be copied from the browser and spent by someone else. Put the call in a server route and let the page talk to that. In Next.js, a route handler for Cloudflare:

TypeScript
// app/api/image/route.ts — the token never leaves the server
export async function POST(request: Request) {
  const { prompt } = await request.json();
  if (typeof prompt !== 'string' || !prompt.trim() || prompt.length > 500) {
    return new Response('Bad prompt', { status: 400 });
  }

  const res = await fetch(
    `https://api.cloudflare.com/client/v4/accounts/${process.env.CF_ACCOUNT_ID}/ai/run/@cf/black-forest-labs/flux-1-schnell`,
    {
      method: 'POST',
      headers: { Authorization: `Bearer ${process.env.CF_API_TOKEN}` },
      body: JSON.stringify({ prompt, steps: 4 }),
    },
  );
  const data = await res.json();
  if (!data.success) return new Response('Generation failed', { status: 502 });

  return new Response(Buffer.from(data.result.image, 'base64'), {
    headers: { 'Content-Type': 'image/jpeg' },
  });
}

The page then calls fetch('/api/image', { method: 'POST', body: JSON.stringify({ prompt }) }) and shows the result with URL.createObjectURL(await res.blob()). On a public site, add a per-visitor rate limit too — otherwise one visitor can use up the whole day’s allowance.

Not free, despite the claims

  • Gemini API. Every image model shows “Not available” in the free-tier column. The cheapest, Nano Banana 2 Lite, is about $0.034 per 1K image. Making images in the Gemini app or AI Studio is a different product from the API. Source: Gemini API pricing.
  • Together AI. No free image model is listed any more; FLUX.2 [dev] starts at $0.0154 an image. Source: Together pricing.
  • Hugging Face Inference Providers. Free accounts get no monthly credits; PRO accounts get $2 a month. This is separate from the ZeroGPU Spaces above. Source: Inference Providers pricing.
  • NVIDIA build.nvidia.com. It hands out a free trial key and hosts FLUX.1 [schnell], but publishes no quota, and developers reported days-long outages of its FLUX endpoints in October 2026. Fine for an experiment; do not build on it.

For no limits at all, run FLUX.1 [schnell] yourself with ComfyUI on a machine with a capable GPU — the model is free to download from Hugging Face.

( Questions )

Free image generation API FAQ

Is there a free image generation API with no limits?
Not a hosted one. The most dependable free allowance is Cloudflare Workers AI’s 10,000 neurons a day, about 57 FLUX.1 [schnell] images at 1024 × 1024. With no limit at all, you run the model on your own GPU.
Does the Gemini API have a free tier for images?
No. Google’s pricing page lists no free tier for any Gemini image model; the cheapest costs about $0.034 per image. The free Gemini app is a different product from the API.
Can I use the images commercially?
FLUX.1 [schnell] is released under Apache-2.0, which allows commercial use, so images from it on Cloudflare or Hugging Face are fine. For any other model, read its model card and the service’s terms.
Can I call these APIs from the browser?
Not with a secret key — anyone can copy it from the page. Call the API from a server route instead, or use Puter.js, which is built for the browser because each visitor pays for their own images.
What happens when the free quota runs out?
Cloudflare’s free plan returns errors until 00:00 UTC. Hugging Face refills 24 hours after your first use. A Pollinations key limited to Quest Pollen simply stops. None of them charges you unless you add paid credit.
Topic
AI
Published
Reading
17 min · 3,101 words
Sections
11
Tags
  • AI image generation
  • Free APIs
  • FLUX
  • Cloudflare Workers AI
  • Hugging Face
  • Pollinations

Experience

( 03 roles — 2+ years )

Full-stack developer in Dhaka, Bangladesh. Building for clients in Germany and Bangladesh since 2022.

  1. (01)

    August 2025 — Present

    Full-Stack Developer

    Susko GmbH · Full Time · Remote

    • Developed and enhanced an AI-powered SaaS and social media automation platform — AI content, image and video generation, automated scheduling and publishing, multi-account and content-team management, Meta, Instagram and Google integrations, WhatsApp-based content generation and scheduling, admin controls and subscription management.
    • Built a full-stack Padel court management and automation system that connects physical court hardware to a real-time web dashboard — court and player management, game control and live scores over WebSocket — and worked on the sensor electronics, PCB design, footprint verification, Gerber validation and JLCPCB manufacturing.
    • Built and maintained automation workflows with n8n, webhooks, APIs and external service integrations that take manual steps out of business processes.
    • Delivered 40+ production websites and full-stack applications for German clients across industries in React, Next.js and TypeScript — shop management, review management and automation, fundraising platforms, menu management, QR code generation and other custom business tools.
    • Optimized backend performance across production applications — database queries, API paths, data processing and Redis-based workflows — for faster, more responsive apps.

    Next.js · React · TypeScript · Node.js · Python · Prisma · Redis · WebSocket · n8n · OpenAI

  2. (02)

    March 2024 — May 2025

    Software Developer

    Bangladesh Associate of IT Solutions · Full Time · On-site

    • Developed a full-stack inventory management system tracking products, sales, payments, returns, waste products, customer ledgers and SMS notifications, in React, TypeScript, Express and MySQL.
    • Scaled an accounting management platform from a single-client application into a multi-user system, with financial dashboards, journal entries, transaction management, reporting and data visualization.
    • Deployed and maintained web applications on cPanel and VPS servers — production deployments, domain configuration, server setup and troubleshooting.
    • Delivered websites for schools, madrasas and other organizations, turning client requirements into responsive, production-ready web applications.
    • Developed and redesigned production and company portfolio websites in React, Next.js and TypeScript, with a focus on responsive design and user experience.

    React · Next.js · TypeScript · Express · MySQL · Tailwind CSS · cPanel · VPS

  3. (03)

    November 2023 — April 2024

    Full-Stack Developer

    Diginie IT · Internship · Remote

    • Completed a remote internship as a full-stack developer, building and maintaining client web applications in Next.js, TypeScript and Tailwind CSS.
    • Turned designs into responsive pages that held together on every screen size, and kept existing client sites running.

    Next.js · TypeScript · Tailwind CSS · GitHub

About

( Dhaka, Bangladesh )

Sabbir Mohammad Sami — full-stack web & app developer at Susko GmbH, building for the web since 2022.

Sabbir Mohammad Sami, smiling and looking off to the side, seated on a white block in a black sweater — black-and-white studio portrait

I’m a full-stack developer from Dhaka who cares about the part people actually touch — unusual layouts, careful CSS, motion that means something — and about the code underneath being just as clean.

( Story )

I grew up in Dhaka and studied arts and humanities at Kabi Nazrul Government College. Alongside my studies I joined a web development course, and that is where the real growth started — surprise. Alongside work, I am now in my third year of Honours in Economics at National University.

My first website was a tourism site about the place I most wanted to visit. I built it in class 10.

Today I build AI products, automation and client platforms at Susko GmbH, after two years of shipping inventory, accounting and client sites at BAITS. What I am after has not changed: interfaces that look good and back-ends that run smoothly, from the same pair of hands.

Honest, down to earth, and fond of hard work. My inbox is always open — for a project, or just to say hi.

  1. ( Education )

    1. Kabi Nazrul Government College

      • Arts and humanities
      • Dhaka, Bangladesh
    2. National University, Bangladesh

      Session 2023–2024 · Now

      • Honours in Economics — 3rd year
      • Department of Economics
  2. ( Co-curricular )

    —

    Bangladesh National Cadet Corps (BNCC)

    • 1 No Battalion, Ramna Regiment
    • Rank: Cadet Corporal
  3. ( Languages )

    Bangla, English, Hindi

    • Bangla — native
    • English — comfortable
    • Hindi — fluent

( Skills )

Expertise
React · Next.js · JavaScript · TypeScript · MongoDB · Bootstrap · Tailwind CSS · shadcn/ui · GitHub · Figma
Comfortable
Flutter · Dart · MySQL · Mongoose · Express · TanStack Query · Firebase · React Router · Photoshop
Familiar
Zod · Framer Motion · GSAP · JWT · Axios · CORS · Stripe · Vercel

( Questions )

Who is Sabbir Mohammad Sami?

Sabbir Mohammad Sami (S M Sami) is a full-stack web and app developer from Dhaka, Bangladesh. Since August 2025 Sami has worked as a Full-Stack Developer at Susko GmbH in Germany, after building inventory and accounting platforms at Bangladesh Associate of IT Solutions (BAITS). Sami has been building for the web since 2022.

What does Sabbir Mohammad Sami build?

Sami builds websites, web apps, mobile apps and AI products end to end: company and restaurant websites, booking and management platforms, an AI social media platform (Kocial), an AI review manager (ReviewSync) and a Flutter money app (Sompi). That includes 40+ production websites for clients in Germany and Bangladesh.

Which technologies does Sami work with?

Sami works across the MERN stack — MongoDB, Express, React and Node.js — and with Next.js, TypeScript, Tailwind CSS, MySQL, PostgreSQL, Prisma and Redis. Mobile apps are built in Flutter and Dart. AI features use the OpenAI API, n8n automations and webhooks, and motion uses GSAP.

Does Sami build mobile apps with Flutter?

Yes. Sami builds cross-platform apps in Flutter and Dart. Sompi, Sami’s own money tracker, runs on Android, iOS, the web and the desktop from one Flutter codebase, with Riverpod for state and an encrypted SQLite store, so every account and transaction stays on the device.

Does Sami build AI products?

Yes. At Susko GmbH Sami builds AI SaaS: Kocial writes captions, generates images and publishes to Facebook and Instagram for agencies, and ReviewSync answers Google reviews in a business’s own voice. Sami also builds n8n workflows that connect AI models to business tools.

How can I hire Sami as a web or app developer in Dhaka?

Email smsami.dev@gmail.com or use the contact form on this site with a short note about the project. Sami works with clients in Dhaka, across Bangladesh and abroad — remotely for companies in Germany — and replies in English or Bangla.

( Contact )

Contact

( Available for projects )

Based in Dhaka, Bangladesh (GMT+6). Happy to talk in English, Bangla or Hindi.

Let’s work together.

Have an exciting project you need help with? Send me an email, give me a call, or write below — a project, a question, or just to say hi.

( Write to me )

* Required