[{"data":1,"prerenderedAt":1263},["ShallowReactive",2],{"/blog/firebase-cloud-functions-min-instances-cost-2026/":3,"/blog/firebase-cloud-functions-min-instances-cost-2026/-related":452,"/blog/firebase-cloud-functions-min-instances-cost-2026/-resources":1245},{"id":4,"title":5,"author":6,"body":10,"category":432,"createdAt":433,"description":434,"extension":435,"location":436,"meta":437,"navigation":443,"ogImage":444,"path":445,"readingTime":446,"seo":447,"stem":448,"tags":449,"updatedAt":433,"url":450,"__hash__":451},"blog/blog/firebase-cloud-functions-min-instances-cost-2026.md","Firebase Cloud Functions Min Instances: What They Cost (2026)",{"name":7,"social":8},"Simon Dziak",{"twitter":9},"@SzymonDziak",{"type":11,"value":12,"toc":415},"minimark",[13,26,40,45,55,64,68,71,87,98,102,119,122,186,193,196,200,203,224,227,231,237,266,270,279,299,303,325,328,332,340,346,350,355,358,362,383,387,397,401,404,408,411],[14,15,16,25],"p",{},[17,18,19,20,24],"strong",{},"Setting ",[21,22,23],"code",{},"minInstances"," on a Firebase function removes most cold starts, and you pay for that warm instance whether or not anyone calls the function."," That is a fair trade on a login or checkout call. It is a poor one on a nightly job or a webhook, and it is easy to forget which functions have it.",[14,27,28,29,34,35,39],{},"This post covers what the setting does, how to list every function that uses it, how to estimate the monthly cost from Google's own pricing page, and how to cut it without making your app feel slower. If you want someone else to do the whole bill, App369 offers a fixed-price ",[30,31,33],"a",{"href":32},"/fixed-price/firebase-cost-audit/","Firebase Cost-Cut Audit",". For the wider method, see ",[30,36,38],{"href":37},"/blog/how-to-cut-your-firebase-bill-2026/","How to Cut Your Firebase Bill",".",[41,42,44],"h2",{"id":43},"what-min-instances-actually-do","What min instances actually do",[14,46,47,48,54],{},"2nd gen Cloud Functions run on Cloud Run, so each function is its own Cloud Run service. Firebase's ",[30,49,53],{"href":50,"rel":51},"https://firebase.google.com/docs/functions/manage-functions",[52],"nofollow","function management docs"," describe the setting as a minimum number of container instances kept warm and ready to serve requests. The docs also note that instances above that minimum can still cold start when traffic spikes, so it lowers cold starts rather than eliminating them.",[14,56,57,58,63],{},"The billing part is stated plainly in both places. Firebase's docs say a minimum number of instances kept running incurs billing costs at idle rates. Cloud Run's ",[30,59,62],{"href":60,"rel":61},"https://cloud.google.com/run/docs/configuring/min-instances",[52],"minimum instances page"," says instances kept running with the minimum instances feature do incur billing costs.",[41,65,67],{"id":66},"what-idle-rate-means","What \"idle rate\" means",[14,69,70],{},"Cloud Run has two billing modes, and which one a service uses changes the math:",[72,73,74,81],"ul",{},[75,76,77,80],"li",{},[17,78,79],{},"Request-based billing:"," CPU is charged while a request is being processed, and you are billed at a lower rate when instances are idle and waiting for requests. With min instances at 0, idle time is not billed.",[75,82,83,86],{},[17,84,85],{},"Instance-based billing:"," you are billed the default rate for the entire instance lifecycle, idle or not.",[14,88,89,90,93,94,97],{},"So a warm instance is cheaper under request-based billing than under instance-based billing, but it is never free. A function with ",[21,91,92],{},"minInstances: 1"," costs something every hour of the month. A function with ",[21,95,96],{},"minInstances: 5"," costs roughly five times that.",[41,99,101],{"id":100},"find-which-functions-set-it","Find which functions set it",[14,103,104,105,107,108,111,112,115,116,118],{},"Start in code. Search your functions source for ",[21,106,23],{}," (Node.js) or ",[21,109,110],{},"min_instances"," (Python), and for ",[21,113,114],{},"setGlobalOptions",", which sets defaults for every function in a codebase. A single global ",[21,117,23],{}," can quietly apply to dozens of functions you never looked at.",[14,120,121],{},"Then check what is actually deployed. Each function is a Cloud Run service, and the minimum is stored as an annotation:",[123,124,129],"pre",{"className":125,"code":126,"language":127,"meta":128,"style":128},"language-bash shiki shiki-themes github-light github-dark","gcloud run services list --format=json \\\n| jq -r '.[] | [.metadata.name, (.spec.template.metadata.annotations[\"autoscaling.knative.dev/minScale\"] // \"0\")] | @tsv' \\\n| awk '$2 > 0'\n","bash","",[21,130,131,157,175],{"__ignoreMap":128},[132,133,136,140,144,147,150,154],"span",{"class":134,"line":135},"line",1,[132,137,139],{"class":138},"sScJk","gcloud",[132,141,143],{"class":142},"sZZnC"," run",[132,145,146],{"class":142}," services",[132,148,149],{"class":142}," list",[132,151,153],{"class":152},"sj4cs"," --format=json",[132,155,156],{"class":152}," \\\n",[132,158,160,164,167,170,173],{"class":134,"line":159},2,[132,161,163],{"class":162},"szBVR","|",[132,165,166],{"class":138}," jq",[132,168,169],{"class":152}," -r",[132,171,172],{"class":142}," '.[] | [.metadata.name, (.spec.template.metadata.annotations[\"autoscaling.knative.dev/minScale\"] // \"0\")] | @tsv'",[132,174,156],{"class":152},[132,176,178,180,183],{"class":134,"line":177},3,[132,179,163],{"class":162},[132,181,182],{"class":138}," awk",[132,184,185],{"class":142}," '$2 > 0'\n",[14,187,188,189,192],{},"To inspect one service, run ",[21,190,191],{},"gcloud run services describe SERVICE --region REGION",". The Cloud Console shows the same value on the service's Scaling settings. If code and deployed state disagree, the next deploy wins, so trust your source code and fix it there.",[14,194,195],{},"Also look at the Firebase CLI output when you deploy: the docs say it provides a cost estimate at deployment time for functions with reserved minimum instances.",[41,197,199],{"id":198},"estimate-the-monthly-cost-yourself","Estimate the monthly cost yourself",[14,201,202],{},"I am not going to quote a per-second price here, because Cloud Run prices vary by region and tier and change. The method is what matters:",[204,205,206,215,218,221],"ol",{},[75,207,208,209,214],{},"Open the ",[30,210,213],{"href":211,"rel":212},"https://cloud.google.com/run/pricing",[52],"Cloud Run pricing page"," and pick your region and billing mode.",[75,216,217],{},"Note the idle (or instance-based) price per vCPU-second and per GiB-second, plus any free tier.",[75,219,220],{},"For each service, take its configured CPU and memory, multiply by the number of minimum instances and by the seconds in a month (about 2.6 million).",[75,222,223],{},"Add vCPU cost and memory cost, subtract free-tier allowances that apply, and you have the list-price cost of keeping that service warm.",[14,225,226],{},"Do this in a spreadsheet with one row per service. For actual spend rather than estimates, turn on Cloud Billing export to BigQuery and compare. Estimates are list prices; your bill can differ because of discounts, committed use and free tiers. Firebase's docs give one worked example for a small 1st gen function, so use the live pricing page for anything you rely on.",[41,228,230],{"id":229},"cut-it-without-hurting-users","Cut it without hurting users",[14,232,233,234],{},"Ask one question per function: ",[17,235,236],{},"is a person waiting on this response?",[72,238,239,245,251,257],{},[75,240,241,244],{},[17,242,243],{},"Keep it"," on latency-critical callables such as sign-in, checkout or a screen's first load, if you have seen cold-start delay there.",[75,246,247,250],{},[17,248,249],{},"Remove it"," from scheduled jobs, Firestore triggers, webhooks that the sender retries, and anything running in the background. Nobody notices a cold start there.",[75,252,253,256],{},[17,254,255],{},"Production only."," Staging and development projects rarely need warm instances. Read the value from an environment parameter so staging gets 0.",[75,258,259,262,263,265],{},[17,260,261],{},"Lower the number."," ",[21,264,96],{}," is rarely needed. Check how many instances are actually busy at peak in Cloud Monitoring before choosing.",[41,267,269],{"id":268},"reduce-cold-starts-instead-of-paying-to-hide-them","Reduce cold starts instead of paying to hide them",[14,271,272,273,278],{},"Google's ",[30,274,277],{"href":275,"rel":276},"https://firebase.google.com/docs/functions/tips",[52],"function tips"," list cheaper fixes:",[72,280,281,287,293],{},[75,282,283,286],{},[17,284,285],{},"Load fewer dependencies."," The docs say module load time adds to invocation latency during a cold start, so remove libraries the function does not use.",[75,288,289,292],{},[17,290,291],{},"Lazy initialization."," Create heavy clients only when a function needs them, not at the top of a file shared by all functions.",[75,294,295,298],{},[17,296,297],{},"Concurrency on 2nd gen."," The default is 80 requests per instance and you can set 1 to 1000, which lets an instance absorb spikes without a new cold start. The docs note concurrency needs at least 1 full CPU, and your code must be safe for parallel requests.",[41,300,302],{"id":301},"roll-back-safely","Roll back safely",[204,304,305,308,311,314],{},[75,306,307],{},"Change one group of functions at a time, starting with background work.",[75,309,310],{},"Change the value in code and deploy, so the setting is not overwritten later.",[75,312,313],{},"Watch p95 latency and error rate for a few days for the changed functions.",[75,315,316,317,320,321,324],{},"If a function got slower, set the old value back and redeploy. In an emergency, ",[21,318,319],{},"gcloud run services update SERVICE --min MIN-VALUE"," changes it immediately, and the docs say ",[21,322,323],{},"default"," clears the setting. Update your code afterwards so the two match.",[14,326,327],{},"Write the old value in your commit message so reverting is one line.",[41,329,331],{"id":330},"when-to-get-help","When to get help",[14,333,334,335,339],{},"To put a number on your own setup, enter each function's min instances, vCPU and memory in the free ",[30,336,338],{"href":337},"/tools/min-instances-cost-calculator/","min instances cost calculator",". It uses Google's published us-central1 list prices.",[14,341,342,343,345],{},"If your bill has more than min instances in it, the work is pricing every service and ranking changes by dollars and risk. App369's ",[30,344,33],{"href":32}," is $750 fixed price, delivered 5 business days after read-only access. You get a report with the monthly bill by service and savings ranked by dollars a month, user-visible risk and rollback, a CSV, and the exact gcloud and firebase commands. You apply the changes yourself. No savings are promised. Simon builds and runs Workspace369, a production Flutter and Firebase SaaS, and uses the same method on it.",[41,347,349],{"id":348},"frequently-asked-questions","Frequently Asked Questions",[351,352,354],"h3",{"id":353},"do-firebase-min-instances-cost-money-when-idle","Do Firebase min instances cost money when idle?",[14,356,357],{},"Yes. Firebase says a minimum number of instances kept running incurs billing costs at idle rates, and Cloud Run says the same about its minimum instances feature. The idle rate can be lower than the active rate under request-based billing.",[351,359,361],{"id":360},"how-do-i-find-which-cloud-functions-have-min-instances","How do I find which Cloud Functions have min instances?",[14,363,364,365,367,368,370,371,374,375,378,379,382],{},"Search your code for ",[21,366,23],{}," and ",[21,369,114],{},", then list deployed Cloud Run services and read the ",[21,372,373],{},"autoscaling.knative.dev/minScale"," annotation with ",[21,376,377],{},"gcloud run services list"," or ",[21,380,381],{},"gcloud run services describe",". The Cloud Console's Scaling tab shows it too.",[351,384,386],{"id":385},"how-do-i-turn-off-min-instances-on-a-firebase-function","How do I turn off min instances on a Firebase function?",[14,388,389,390,392,393,396],{},"Remove or set ",[21,391,23],{}," to 0 in the function options and redeploy. For an immediate change on the Cloud Run service, use ",[21,394,395],{},"gcloud run services update SERVICE --min default"," or set the value to 0. Keep the code in sync.",[351,398,400],{"id":399},"how-much-does-one-min-instance-cost-per-month","How much does one min instance cost per month?",[14,402,403],{},"It depends on region, CPU, memory and billing mode. Take the vCPU and GiB-second prices from the Cloud Run pricing page, multiply by the service's configuration and the seconds in a month, then subtract any free tier.",[351,405,407],{"id":406},"do-i-need-min-instances-to-avoid-cold-starts","Do I need min instances to avoid cold starts?",[14,409,410],{},"Not always. Lazy imports, fewer dependencies and 2nd gen concurrency reduce cold-start impact. Use min instances only where a user waits and cold-start delay is actually visible.",[412,413,414],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":128,"searchDepth":159,"depth":159,"links":416},[417,418,419,420,421,422,423,424,425],{"id":43,"depth":159,"text":44},{"id":66,"depth":159,"text":67},{"id":100,"depth":159,"text":101},{"id":198,"depth":159,"text":199},{"id":229,"depth":159,"text":230},{"id":268,"depth":159,"text":269},{"id":301,"depth":159,"text":302},{"id":330,"depth":159,"text":331},{"id":348,"depth":159,"text":349,"children":426},[427,428,429,430,431],{"id":353,"depth":177,"text":354},{"id":360,"depth":177,"text":361},{"id":385,"depth":177,"text":386},{"id":399,"depth":177,"text":400},{"id":406,"depth":177,"text":407},"AI & Technology","2026-10-12T18:00:00.000Z","Firebase Cloud Functions min instances are billed even when idle. How to find them, estimate what each costs, keep them where users wait, and roll back safely.","md","Boynton Beach, FL",{"readingTimeStats":438},{"text":439,"minutes":440,"time":441,"words":442},"7 min read",6.26,375600,1252,true,null,"/blog/firebase-cloud-functions-min-instances-cost-2026","7 min",{"title":5,"description":434},"blog/firebase-cloud-functions-min-instances-cost-2026","firebase cloud functions min instances, firebase functions cost, cloud functions cold start, cloud run min instances, firebase pricing, minInstances","https://app369.com/blog/firebase-cloud-functions-min-instances-cost-2026/","L2UF45mg0PGjHW_6Kf9WQZFTqUwjkUY4cz5iq2OdAVQ",[453,781],{"id":454,"title":455,"author":456,"body":458,"category":432,"createdAt":766,"description":767,"extension":435,"location":436,"meta":768,"navigation":443,"ogImage":444,"path":774,"readingTime":775,"seo":776,"stem":777,"tags":778,"updatedAt":766,"url":779,"__hash__":780},"blog/blog/business-application-modernization-guide-2026.md","Business Application Modernization for Small Businesses (2026)",{"name":7,"social":457},{"twitter":9},{"type":11,"value":459,"toc":758},[460,466,470,473,505,508,512,521,609,612,616,619,636,642,645,671,675,678,704,712,716,736,740],[14,461,462,465],{},[17,463,464],{},"Application modernization means updating software your business already depends on so it is cheaper to run, safer, and easier to change, without throwing away what works."," Most guides on the topic are written for large enterprises with mainframes and hundred-person IT teams. This one is for smaller companies: a custom app built a few years ago, an internal tool on an old framework, or a mobile app nobody wants to touch anymore.",[41,467,469],{"id":468},"signs-your-app-needs-modernizing","Signs your app needs modernizing",[14,471,472],{},"You don't modernize because the code is old. You modernize because the age is starting to cost you. Common signs:",[72,474,475,481,487,493,499],{},[75,476,477,480],{},[17,478,479],{},"Updates are risky."," Small changes break unrelated parts, so every release needs days of manual testing, or releases simply stop.",[75,482,483,486],{},[17,484,485],{},"The platform is moving on without you."," The framework, language version or hosting is out of support, so security patches have stopped. App stores also raise their minimum requirements over time, and an app that can't be rebuilt with current tools eventually can't ship updates.",[75,488,489,492],{},[17,490,491],{},"Only one person understands it."," If the original developer leaves, nobody can safely change it.",[75,494,495,498],{},[17,496,497],{},"It doesn't fit how you work now."," Staff work around the app with spreadsheets, copy data between systems by hand, or can't use it on a phone.",[75,500,501,504],{},[17,502,503],{},"Hosting or licence costs keep rising"," for a system that isn't doing more than it used to.",[14,506,507],{},"One sign alone is not a reason to rebuild. Two or three together usually are a reason to plan.",[41,509,511],{"id":510},"the-options-from-lightest-to-heaviest","The options, from lightest to heaviest",[14,513,514,515,520],{},"Modernization is a range of choices, not a single project. A common way to describe them, adapted from the \"R\" models cloud providers use (",[30,516,519],{"href":517,"rel":518},"https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/migration-strategies.html",[52],"AWS: migration strategies","):",[522,523,524,540],"table",{},[525,526,527],"thead",{},[528,529,530,534,537],"tr",{},[531,532,533],"th",{},"Option",[531,535,536],{},"What changes",[531,538,539],{},"When it fits",[541,542,543,557,570,583,596],"tbody",{},[528,544,545,551,554],{},[546,547,548],"td",{},[17,549,550],{},"Rehost",[546,552,553],{},"The same app moves to new hosting, for example from an old server to a managed cloud service.",[546,555,556],{},"The code is fine; the server is the problem.",[528,558,559,564,567],{},[546,560,561],{},[17,562,563],{},"Replatform",[546,565,566],{},"Small changes to use managed services: a managed database, managed auth, file storage.",[546,568,569],{},"You want less server upkeep without touching features.",[528,571,572,577,580],{},[546,573,574],{},[17,575,576],{},"Refactor",[546,578,579],{},"The code is restructured and upgraded in place: framework upgrades, tests added, modules split.",[546,581,582],{},"The app's design is sound, but the code has decayed.",[528,584,585,590,593],{},[546,586,587],{},[17,588,589],{},"Rebuild",[546,591,592],{},"A new app replaces the old one, usually feature by feature.",[546,594,595],{},"The design no longer fits the business, or the stack is a dead end.",[528,597,598,603,606],{},[546,599,600],{},[17,601,602],{},"Replace",[546,604,605],{},"An off-the-shelf product replaces the custom app.",[546,607,608],{},"What the app does is no longer unique to your business.",[14,610,611],{},"The honest answer is often a mix: rehost now to stop the bleeding, refactor the parts that still fit, and rebuild only the parts that don't. Replacing with an off-the-shelf product is worth a serious look before any rebuild, because a custom app you don't need is the most expensive kind.",[41,613,615],{"id":614},"how-to-modernize-without-stopping-the-business","How to modernize without stopping the business",[14,617,618],{},"The biggest risk in modernization is the \"big bang\" rewrite: a year of building a new system while the old one freezes, then a risky switch-over. Two habits avoid most of that risk.",[14,620,621,624,625,629,630,635],{},[17,622,623],{},"Replace it in slices."," The usual pattern is often called the ",[626,627,628],"em",{},"strangler fig",": put the new system alongside the old one and move one feature at a time, routing users to the new version as each piece is ready, until nothing is left in the old system (",[30,631,634],{"href":632,"rel":633},"https://martinfowler.com/bliki/StranglerFigApplication.html",[52],"Martin Fowler: Strangler Fig Application","). Each slice ships on its own, so value arrives early and a problem only affects one slice.",[14,637,638,641],{},[17,639,640],{},"Treat the data as the real project."," Screens are easy to rebuild; years of customer records, orders and history are not. Map the old data model before writing new code, plan how records move (once, or synced during the transition), and test the migration on a copy of real data, not samples.",[14,643,644],{},"A few more habits that pay off:",[72,646,647,653,659,665],{},[75,648,649,652],{},[17,650,651],{},"Write down what the old app actually does,"," including the odd rules nobody remembers until they break.",[75,654,655,658],{},[17,656,657],{},"Add tests around the old behavior first,"," so you can prove the new version matches.",[75,660,661,664],{},[17,662,663],{},"Keep both systems running"," until the new one has handled real use for a while.",[75,666,667,670],{},[17,668,669],{},"Change the business process only when you mean to."," A modernization that also changes how people work needs training time and buy-in, so plan for both.",[41,672,674],{"id":673},"what-a-modernized-stack-often-looks-like-for-a-small-business","What a modernized stack often looks like for a small business",[14,676,677],{},"There is no single right stack, but for a typical small-business app a modern setup tends to share these traits:",[72,679,680,686,692,698],{},[75,681,682,685],{},[17,683,684],{},"Managed services instead of servers you patch yourself:"," for example Firebase or Google Cloud for authentication, the database, file storage and server functions.",[75,687,688,691],{},[17,689,690],{},"One codebase for mobile and web where it makes sense."," Flutter, for instance, builds iOS, Android and web apps from one Dart codebase, which cuts the number of apps to maintain.",[75,693,694,697],{},[17,695,696],{},"Automated tests and a repeatable deploy,"," so updates stop being events.",[75,699,700,703],{},[17,701,702],{},"Integrations through APIs"," (payments, email, calendars, accounting) instead of manual exports.",[14,705,706,707,711],{},"This is the stack we use for our own product, ",[30,708,710],{"href":709},"/case-studies/workspace369/","Workspace369",", and the case study explains the trade-offs we made, including splitting a large backend into smaller, separately deployed parts.",[41,713,715],{"id":714},"a-short-checklist-before-you-start","A short checklist before you start",[204,717,718,721,724,727,730,733],{},[75,719,720],{},"List what the app does today and who uses each part.",[75,722,723],{},"Decide what must not change (data, integrations, URLs, compliance needs).",[75,725,726],{},"Choose an option per part: rehost, replatform, refactor, rebuild or replace.",[75,728,729],{},"Pick the first slice: small, valuable and low-risk.",[75,731,732],{},"Plan the data migration and test it on a copy of real data.",[75,734,735],{},"Set a date to switch off the old system, and keep it once the new one has proven itself.",[41,737,739],{"id":738},"getting-help","Getting help",[14,741,742,743,747,748,752,753,757],{},"App369 helps small and mid-size businesses in Palm Beach County and beyond modernize apps they already rely on: upgrades, rebuilds in Flutter, and moving backends to managed cloud services. For ongoing upkeep after the work, see ",[30,744,746],{"href":745},"/service/ongoing-maintenance/","software maintenance and support",". For a rough budget, try the ",[30,749,751],{"href":750},"/tools/app-cost-calculator/","app cost calculator",", or ",[30,754,756],{"href":755},"/contact/","send us your brief"," and we'll reply by email, usually within one business day.",{"title":128,"searchDepth":159,"depth":159,"links":759},[760,761,762,763,764,765],{"id":468,"depth":159,"text":469},{"id":510,"depth":159,"text":511},{"id":614,"depth":159,"text":615},{"id":673,"depth":159,"text":674},{"id":714,"depth":159,"text":715},{"id":738,"depth":159,"text":739},"2026-10-12T19:00:00.000Z","Business application modernization for small and mid-size companies: how to tell an app needs it, the options from rehosting to a full rebuild, and how to modernize without stopping the business.",{"readingTimeStats":769},{"text":770,"minutes":771,"time":772,"words":773},"5 min read",4.59,275400,918,"/blog/business-application-modernization-guide-2026","8 min",{"title":455,"description":767},"blog/business-application-modernization-guide-2026","business application modernization, application modernization, legacy app modernization, app rebuild, refactor vs rebuild, software modernization","https://app369.com/blog/business-application-modernization-guide-2026/","KbwefmOfD_7L9xAKnESgFEWwa42dJhu7cQQdFs5BxH8",{"id":782,"title":783,"author":784,"body":786,"category":432,"createdAt":433,"description":1232,"extension":435,"location":436,"meta":1233,"navigation":443,"ogImage":444,"path":1239,"readingTime":446,"seo":1240,"stem":1241,"tags":1242,"updatedAt":433,"url":1243,"__hash__":1244},"blog/blog/apps-built-with-flutter-examples-2026.md","Apps Built with Flutter: Real Examples by Industry (2026)",{"name":7,"social":785},{"twitter":9},{"type":11,"value":787,"toc":1221},[788,800,803,807,867,870,874,926,929,933,992,996,1038,1042,1094,1098,1157,1161,1167,1171,1202,1206],[14,789,790,793,794,799],{},[17,791,792],{},"Flutter is behind apps from Google, BMW, Toyota, Nubank, Headspace, eBay and MGM Resorts, along with many smaller products."," Below are real examples grouped by industry. Every one is taken from the official ",[30,795,798],{"href":796,"rel":797},"https://flutter.dev/showcase",[52],"Flutter showcase",", and each name links to the company's own case study there, so you can read what they built and why.",[14,801,802],{},"We are a Flutter agency, so we have an obvious interest here. That's why this list sticks to examples you can check yourself instead of our own claims.",[41,804,806],{"id":805},"finance-and-payments","Finance and payments",[72,808,809,820,830,840,850],{},[75,810,811,819],{},[17,812,813,818],{},[30,814,817],{"href":815,"rel":816},"https://flutter.dev/showcase/google-pay",[52],"Google Pay",":"," Google's payments app, which the showcase describes as \"going global\" with Flutter.",[75,821,822,829],{},[17,823,824,818],{},[30,825,828],{"href":826,"rel":827},"https://flutter.dev/showcase/nubank",[52],"Nubank"," the Brazilian digital bank, scaling its mobile app with Flutter.",[75,831,832,839],{},[17,833,834,818],{},[30,835,838],{"href":836,"rel":837},"https://flutter.dev/showcase/sofi",[52],"SoFi"," a finance \"superapp\" experience built with Flutter.",[75,841,842,849],{},[17,843,844,818],{},[30,845,848],{"href":846,"rel":847},"https://flutter.dev/showcase/betterment",[52],"Betterment"," the investing app, scaling its development team on Flutter.",[75,851,852,367,859,866],{},[17,853,854],{},[30,855,858],{"href":856,"rel":857},"https://flutter.dev/showcase/virgin-money",[52],"Virgin Money",[17,860,861,818],{},[30,862,865],{"href":863,"rel":864},"https://flutter.dev/showcase/credit-agricole",[52],"Crédit Agricole"," banks that unified their app development on Flutter.",[14,868,869],{},"Finance apps are a good stress test: they need security reviews, accessibility and the same behavior on iOS and Android. That is the kind of work a single shared codebase makes easier to keep consistent.",[41,871,873],{"id":872},"automotive-and-devices","Automotive and devices",[72,875,876,886,896,906,916],{},[75,877,878,885],{},[17,879,880,818],{},[30,881,884],{"href":882,"rel":883},"https://flutter.dev/showcase/bmw",[52],"BMW"," which the showcase describes as scaling customer-centric product development at BMW Group with Flutter.",[75,887,888,895],{},[17,889,890,818],{},[30,891,894],{"href":892,"rel":893},"https://flutter.dev/showcase/toyota",[52],"Toyota"," infotainment systems in Toyota vehicles.",[75,897,898,905],{},[17,899,900,818],{},[30,901,904],{"href":902,"rel":903},"https://flutter.dev/showcase/lucid-motors",[52],"Lucid Motors"," a small team shipping a multiplatform app from one codebase.",[75,907,908,915],{},[17,909,910,818],{},[30,911,914],{"href":912,"rel":913},"https://flutter.dev/showcase/lg-electronics",[52],"LG Electronics"," building parts of its next-generation webOS.",[75,917,918,925],{},[17,919,920,818],{},[30,921,924],{"href":922,"rel":923},"https://flutter.dev/showcase/whirlpool",[52],"Whirlpool"," connected-appliance apps.",[14,927,928],{},"These show Flutter outside phones too: car screens, TVs and embedded devices.",[41,930,932],{"id":931},"retail-food-and-marketplaces","Retail, food and marketplaces",[72,934,935,945,955,972,982],{},[75,936,937,944],{},[17,938,939,818],{},[30,940,943],{"href":941,"rel":942},"https://flutter.dev/showcase/ebay",[52],"eBay"," eBay engineering teams building with Flutter.",[75,946,947,954],{},[17,948,949,818],{},[30,950,953],{"href":951,"rel":952},"https://flutter.dev/showcase/alibaba-group",[52],"Alibaba Group"," scaling China's largest second-hand marketplace with Flutter.",[75,956,957,367,964,971],{},[17,958,959],{},[30,960,963],{"href":961,"rel":962},"https://flutter.dev/showcase/wolt",[52],"Wolt",[17,965,966,818],{},[30,967,970],{"href":968,"rel":969},"https://flutter.dev/showcase/talabat",[52],"talabat"," food and grocery delivery apps.",[75,973,974,981],{},[17,975,976,818],{},[30,977,980],{"href":978,"rel":979},"https://flutter.dev/showcase/caribou-coffee",[52],"Caribou Coffee"," migrated its ordering app to a single Flutter codebase.",[75,983,984,991],{},[17,985,986,818],{},[30,987,990],{"href":988,"rel":989},"https://flutter.dev/showcase/kijiji1",[52],"Kijiji"," the Canadian classifieds marketplace.",[41,993,995],{"id":994},"health-fitness-and-wellbeing","Health, fitness and wellbeing",[72,997,998,1008,1018,1028],{},[75,999,1000,1007],{},[17,1001,1002,818],{},[30,1003,1006],{"href":1004,"rel":1005},"https://flutter.dev/showcase/headspace",[52],"Headspace"," the meditation and mental health app.",[75,1009,1010,1017],{},[17,1011,1012,818],{},[30,1013,1016],{"href":1014,"rel":1015},"https://flutter.dev/showcase/tonal",[52],"Tonal"," the connected strength-training system, using Flutter for feature parity across platforms.",[75,1019,1020,1027],{},[17,1021,1022,818],{},[30,1023,1026],{"href":1024,"rel":1025},"https://flutter.dev/showcase/cz-zorgverzekeringen",[52],"CZ Zorgverzekeringen"," a Dutch health insurer's member app.",[75,1029,1030,1037],{},[17,1031,1032,818],{},[30,1033,1036],{"href":1034,"rel":1035},"https://flutter.dev/showcase/us-department-of-veterans-affairs",[52],"US Department of Veterans Affairs"," STAIR, an app that helps veterans adjust to civilian life.",[41,1039,1041],{"id":1040},"travel-entertainment-and-hospitality","Travel, entertainment and hospitality",[72,1043,1044,1054,1064,1074,1084],{},[75,1045,1046,1053],{},[17,1047,1048,818],{},[30,1049,1052],{"href":1050,"rel":1051},"https://flutter.dev/showcase/mgm-resorts",[52],"MGM Resorts"," the guest app for MGM's resorts.",[75,1055,1056,1063],{},[17,1057,1058,818],{},[30,1059,1062],{"href":1060,"rel":1061},"https://flutter.dev/showcase/universal-studios",[52],"Universal Studios"," theme park guest experiences.",[75,1065,1066,1073],{},[17,1067,1068,818],{},[30,1069,1072],{"href":1070,"rel":1071},"https://flutter.dev/showcase/sncf-connect",[52],"SNCF Connect"," France's rail booking app.",[75,1075,1076,1083],{},[17,1077,1078,818],{},[30,1079,1082],{"href":1080,"rel":1081},"https://flutter.dev/showcase/hamilton",[52],"Hamilton"," the official app for the musical.",[75,1085,1086,1093],{},[17,1087,1088,818],{},[30,1089,1092],{"href":1090,"rel":1091},"https://flutter.dev/showcase/pubg-mobile",[52],"PUBG MOBILE"," which the showcase describes as connecting players with Flutter.",[41,1095,1097],{"id":1096},"productivity-education-and-software","Productivity, education and software",[72,1099,1100,1110,1120,1130,1147],{},[75,1101,1102,1109],{},[17,1103,1104,818],{},[30,1105,1108],{"href":1106,"rel":1107},"https://flutter.dev/showcase/notebooklm",[52],"NotebookLM"," Google's AI research and note-taking app.",[75,1111,1112,1119],{},[17,1113,1114,818],{},[30,1115,1118],{"href":1116,"rel":1117},"https://flutter.dev/showcase/google-classroom",[52],"Google Classroom"," listed in the showcase among Google's own Flutter apps.",[75,1121,1122,1129],{},[17,1123,1124,818],{},[30,1125,1128],{"href":1126,"rel":1127},"https://flutter.dev/showcase/zoho-tables",[52],"Zoho Tables"," a spreadsheet-database hybrid.",[75,1131,1132,367,1139,1146],{},[17,1133,1134],{},[30,1135,1138],{"href":1136,"rel":1137},"https://flutter.dev/showcase/superlist",[52],"Superlist",[17,1140,1141,818],{},[30,1142,1145],{"href":1143,"rel":1144},"https://flutter.dev/showcase/rows",[52],"Rows"," a task manager and a spreadsheet tool built for desktop, web and mobile.",[75,1148,1149,1156],{},[17,1150,1151,818],{},[30,1152,1155],{"href":1153,"rel":1154},"https://flutter.dev/showcase/rive",[52],"Rive"," an animation tool rewritten entirely in Flutter.",[41,1158,1160],{"id":1159},"our-own-example-workspace369","Our own example: Workspace369",[14,1162,1163,1164,1166],{},"App369's own product, ",[30,1165,710],{"href":709},", is a Flutter app for freelancers and small service businesses: CRM, proposals, invoicing, scheduling and a shared inbox. One Flutter codebase serves both the iOS app and the web app. The case study covers the architecture and what we learned building it.",[41,1168,1170],{"id":1169},"what-these-examples-tell-you","What these examples tell you",[72,1172,1173,1179,1185,1191],{},[75,1174,1175,1178],{},[17,1176,1177],{},"Flutter is not just for prototypes."," Banks, carmakers and large consumer apps run it in production.",[75,1180,1181,1184],{},[17,1182,1183],{},"The common reason is one codebase."," Most of these case studies come back to the same point: shipping the same features to iOS, Android and often the web without maintaining separate apps.",[75,1186,1187,1190],{},[17,1188,1189],{},"It reaches beyond phones."," Car infotainment, TVs, desktop tools and the web all appear above.",[75,1192,1193,1196,1197,1201],{},[17,1194,1195],{},"It is not the right tool for everything."," Apps built around platform extensions like widgets, watch apps or brand-new OS features can still be simpler to build natively. See ",[30,1198,1200],{"href":1199},"/blog/flutter-vs-native-app-development-2026/","Flutter vs native"," for how to decide.",[41,1203,1205],{"id":1204},"planning-a-flutter-app","Planning a Flutter app?",[14,1207,1208,1209,1213,1214,1216,1217,39],{},"App369 builds Flutter apps for startups and small businesses from Boynton Beach, Florida. See ",[30,1210,1212],{"href":1211},"/service/flutter-development/","Flutter app development",", get a ballpark with the ",[30,1215,751],{"href":750},", or compare ",[30,1218,1220],{"href":1219},"/compare/flutter-vs-react-native/","Flutter vs React Native",{"title":128,"searchDepth":159,"depth":159,"links":1222},[1223,1224,1225,1226,1227,1228,1229,1230,1231],{"id":805,"depth":159,"text":806},{"id":872,"depth":159,"text":873},{"id":931,"depth":159,"text":932},{"id":994,"depth":159,"text":995},{"id":1040,"depth":159,"text":1041},{"id":1096,"depth":159,"text":1097},{"id":1159,"depth":159,"text":1160},{"id":1169,"depth":159,"text":1170},{"id":1204,"depth":159,"text":1205},"Real apps built with Flutter in 2026, grouped by industry: Google Pay, BMW, Toyota, Nubank, Headspace, eBay, MGM Resorts and more, each linked to its case study on flutter.dev.",{"readingTimeStats":1234},{"text":1235,"minutes":1236,"time":1237,"words":1238},"3 min read",2.805,168300,561,"/blog/apps-built-with-flutter-examples-2026",{"title":783,"description":1232},"blog/apps-built-with-flutter-examples-2026","apps built with flutter, flutter app examples, flutter apps, companies using flutter, flutter showcase, flutter app development","https://app369.com/blog/apps-built-with-flutter-examples-2026/","AU1--kJ_S65saMe5bArn7py-kDABmlXLw23e5Ap4Am4",[1246,1248,1252,1256,1260],{"keyword":5,"url":450,"title":5,"relevance":1247},52,{"keyword":1249,"url":1250,"title":1249,"relevance":1251},"How to Cut Your Firebase Bill: A Line-by-Line Cost Audit (2026)","https://app369.com/blog/how-to-cut-your-firebase-bill-2026/",13,{"keyword":1253,"url":1254,"title":1253,"relevance":1255},"Firebase Security Rules: The Complete Guide for App Developers (2026)","https://app369.com/blog/firebase-security-guide-2026/",8,{"keyword":1257,"url":1258,"title":1257,"relevance":1259},"How to Test Firebase Security Rules with the Emulator (2026)","https://app369.com/blog/how-to-test-firebase-security-rules-2026/",7,{"keyword":1261,"url":1262,"title":1261,"relevance":1259},"How to Debug a Flutter and Firebase Bug: Find the Root Cause (2026)","https://app369.com/blog/how-to-debug-a-flutter-firebase-bug-2026/",1791849342396]