<?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: Preciousky</title>
    <description>The latest articles on DEV Community by Preciousky (@preciousky_45d956626d31c3).</description>
    <link>https://dev.to/preciousky_45d956626d31c3</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%2F1767735%2F89ab1c62-8367-4062-b1a5-bb2b0bfe503d.jpg</url>
      <title>DEV Community: Preciousky</title>
      <link>https://dev.to/preciousky_45d956626d31c3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/preciousky_45d956626d31c3"/>
    <language>en</language>
    <item>
      <title>Google's Play Billing v8 deadline and Apple's 7-day subscription rule — two IAP gotchas costing real rejections</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Tue, 22 Sep 2026 05:23:27 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/googles-play-billing-v8-deadline-and-apples-7-day-subscription-rule-two-iap-gotchas-costing-25d0</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/googles-play-billing-v8-deadline-and-apples-7-day-subscription-rule-two-iap-gotchas-costing-25d0</guid>
      <description>&lt;p&gt;If you added Google Play Billing or Apple StoreKit to your app a year or two ago, there are two rules worth re-checking today — one has a hard deadline that already passed, the other is easy to miss entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Android: Google now requires Play Billing Library v8 for every update
&lt;/h2&gt;

&lt;p&gt;Since &lt;strong&gt;31 August 2026&lt;/strong&gt;, Google requires every new app &lt;em&gt;and every update to an existing app&lt;/em&gt; to use Play Billing Library version 8 or later (&lt;a href="https://developer.android.com/google/play/billing/deprecation-faq" rel="noopener noreferrer"&gt;source&lt;/a&gt;). This isn't limited to apps that are adding a new in-app purchase — any update at all gets bounced if the app is still wired to an older Billing Library version. A one-time extension to 1 November 2026 is available on request, but after that there's no more slack.&lt;/p&gt;

&lt;p&gt;If your app has had Play Billing sitting untouched since v4/v5/v6, your &lt;em&gt;next&lt;/em&gt; routine update — a bug fix, a UI tweak, anything — fails review unless the library is upgraded first.&lt;/p&gt;

&lt;p&gt;We integrate Google Play Billing, or upgrade an existing integration to v8+, for a fixed ₹7,999 in 5-7 working days: &lt;a href="https://zoopcoder.com/services/in-app-purchase-integration.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/services/in-app-purchase-integration.php&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  iOS: subscriptions have a 7-day floor, and purchased credits can never expire
&lt;/h2&gt;

&lt;p&gt;Two things people miss in Apple's App Store Review Guidelines when wiring up StoreKit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Guideline 3.1.2(a)&lt;/strong&gt; — an auto-renewable subscription must last &lt;strong&gt;at least seven days&lt;/strong&gt; and work across all of a user's devices. A one-day or one-hour "pass" cannot be sold as a subscription; it has to be a consumable purchase instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guideline 3.1.1&lt;/strong&gt; — any credits or in-game currency sold via in-app purchase &lt;strong&gt;may not expire&lt;/strong&gt;. If you're building a coin or credits economy, design for that from day one; retrofitting non-expiry later usually means a data migration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both are straight from developer.apple.com/app-store/review/guidelines — easy to miss because they read as review rules, not technical requirements, but App Review enforces them at submission.&lt;/p&gt;

&lt;p&gt;We do the iOS side too — StoreKit 2, server-side receipt verification (not just on-device, since a jailbroken client can fake a local check), and the Restore Purchases flow Apple's review specifically checks for — fixed ₹7,999, 5-7 working days: &lt;a href="https://zoopcoder.com/services/ios-in-app-purchase-integration.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/services/ios-in-app-purchase-integration.php&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Disclosure: I work at ZoopCoder, an Indian dev studio — sharing this because both the deadline and the guideline text cost real teams real rejections this year, not just as a pitch.&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>programming</category>
      <category>appstore</category>
    </item>
    <item>
      <title>Cloudflare's "Flexible" SSL trap, and the real DNS wait time for a hosting migration</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Mon, 21 Sep 2026 22:23:29 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/cloudflares-flexible-ssl-trap-and-the-real-dns-wait-time-for-a-hosting-migration-2gk6</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/cloudflares-flexible-ssl-trap-and-the-real-dns-wait-time-for-a-hosting-migration-2gk6</guid>
      <description>&lt;p&gt;Two mistakes come up constantly when small businesses move hosts or put Cloudflare in front of a WordPress site. Both are documented, both are avoidable, and neither gets explained clearly enough in the usual how-to posts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cloudflare redirect loop nobody expects
&lt;/h2&gt;

&lt;p&gt;If your web server already redirects HTTP to HTTPS (most do, by default, on any half-decent host), and you set Cloudflare's SSL/TLS mode to "Flexible", you get an infinite redirect loop. Cloudflare's own docs say it plainly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If your origin forces HTTPS by automatically redirecting HTTP requests to HTTPS, do not use Flexible mode. Because Cloudflare connects to your origin over HTTP, this creates a redirect loop that makes your site inaccessible."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: &lt;a href="https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/flexible/" rel="noopener noreferrer"&gt;developers.cloudflare.com/ssl/origin-configuration/ssl-modes/flexible&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fix is one dropdown: switch to &lt;strong&gt;Full&lt;/strong&gt; or &lt;strong&gt;Full (strict)&lt;/strong&gt; mode so Cloudflare validates against your origin's real certificate instead of connecting over plain HTTP. It's the single most common reason a DIY Cloudflare setup takes a working site down within minutes of flipping the nameservers — &lt;code&gt;ERR_TOO_MANY_REDIRECTS&lt;/code&gt; in the browser, no obvious cause in the Cloudflare dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  How fast does a DNS change actually happen?
&lt;/h2&gt;

&lt;p&gt;Worth knowing precisely, since "up to 48 hours" gets thrown around vaguely everywhere: Cloudflare's proxied (orange-cloud) DNS records carry a &lt;strong&gt;fixed TTL of 300 seconds&lt;/strong&gt; that you cannot lower. Plain DNS-only (grey-cloud) records can go as low as &lt;strong&gt;60 seconds&lt;/strong&gt; on any paid plan, 30 seconds on Enterprise.&lt;/p&gt;

&lt;p&gt;The catch: a low TTL only controls how long &lt;em&gt;compliant&lt;/em&gt; resolvers cache a record. Some ISP-level resolvers ignore the TTL you set and hold onto the old address for up to 24-48 hours regardless. That's why a careful migration or Cloudflare cutover is planned around that worst case — test on a temporary address first, switch DNS last — rather than promising an instant cutover.&lt;/p&gt;

&lt;p&gt;If the domain name itself is changing too (not just the host), that's a different problem entirely: Google's Change of Address tool in Search Console needs 301 redirects held live for at least 180 days before Google stops crediting the old domain. After that window, Google treats the old site as unrelated.&lt;/p&gt;




&lt;p&gt;Disclosure: I work with &lt;a href="https://zoopcoder.com" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, where we run this exact process for clients — &lt;a href="https://zoopcoder.com/services/cloudflare-setup.php" rel="noopener noreferrer"&gt;Cloudflare setup&lt;/a&gt; for a fixed ₹1,499, and &lt;a href="https://zoopcoder.com/services/website-migration.php" rel="noopener noreferrer"&gt;website migration to new hosting&lt;/a&gt; for a fixed ₹1,999, usually 1-2 working days. Sharing the underlying facts here in case they save someone else a redirect-loop debugging session.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>PWA cost in India, and the Play Store ASO myth that wastes founders' money</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Mon, 21 Sep 2026 01:20:45 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/pwa-cost-in-india-and-the-play-store-aso-myth-that-wastes-founders-money-3711</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/pwa-cost-in-india-and-the-play-store-aso-myth-that-wastes-founders-money-3711</guid>
      <description>&lt;p&gt;Two founder questions I keep getting asked lately, so here are the honest, sourced answers instead of the usual agency folklore.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What does it actually cost to turn a website into an installable PWA?
&lt;/h2&gt;

&lt;p&gt;A Progressive Web App needs exactly three things: HTTPS, a web app manifest, and a service worker. With those in place, Chrome on Android offers "Install app" and the site opens full-screen from the home screen — no Play Store account, no review, no store fee.&lt;/p&gt;

&lt;p&gt;At ZoopCoder we ship this as a fixed-price add-on for an existing website: &lt;strong&gt;₹3,999, 2-4 working days&lt;/strong&gt;. It is not the same product as converting a website into a real Play Store app (that's a separate ₹4,999 service) — a PWA never shows up in Play Store search, it only installs from the browser.&lt;/p&gt;

&lt;p&gt;One underrated fact for iPhone owners worried about "will my PWA lose its data if I don't open it for a while": Apple's WebKit engine normally wipes all script-writable storage (localStorage, IndexedDB, service worker caches) for any site you haven't interacted with in 7 days — that's Intelligent Tracking Prevention (ITP), in Safari since 13.1. But WebKit explicitly documents an exemption for installed apps:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The first-party domain of home screen web applications is exempt from ITP's 7-day cap on all script-writeable storage."&lt;br&gt;
— &lt;a href="https://webkit.org/tracking-prevention/" rel="noopener noreferrer"&gt;webkit.org/tracking-prevention&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So a PWA installed on an iPhone home screen keeps its offline data even after weeks of not being opened — a bookmarked Safari tab would not.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Play Store ASO myth that wastes money: stuffing keywords into your listing does not help
&lt;/h2&gt;

&lt;p&gt;This one costs founders real money because it's intuitive and wrong. Google's own Play Console guidance on unnecessary keywords in store listing text is blunt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It will not impact ranking and provides a bad user experience."&lt;br&gt;
— &lt;a href="https://support.google.com/googleplay/android-developer/answer/9866151" rel="noopener noreferrer"&gt;support.google.com/googleplay/android-developer/answer/9866151&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And on what actually drives ranking, Google states plainly that apps are ranked on "a combination of ratings, reviews, downloads, and other factors" that are "a proprietary part of the Google search algorithm" — &lt;a href="https://support.google.com/googleplay/android-developer/answer/4448378" rel="noopener noreferrer"&gt;support.google.com/googleplay/android-developer/answer/4448378&lt;/a&gt;. A rewritten title and description move &lt;em&gt;relevance&lt;/em&gt;, not the whole outcome. Nobody — including us — can honestly promise a rank position.&lt;/p&gt;

&lt;p&gt;What actually works: a title within Play's 30-character limit that says what the app does (not just the brand name), a short description within 80 characters, and a full description written for humans first, keywords second. Google's policy also caps repetition — using the same keyword more than 5 times across your metadata reads as spam, not optimization.&lt;/p&gt;

&lt;p&gt;We do this as a fixed &lt;strong&gt;₹2,499&lt;/strong&gt; listing rewrite with keyword research included, 3-4 working days — no rank guarantee, because nobody can honestly give you one.&lt;/p&gt;




&lt;p&gt;Disclosure: I work at &lt;a href="https://zoopcoder.com" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, an Indian dev shop. These are our real, currently-listed prices, not hypotheticals. Service pages if useful: &lt;a href="https://zoopcoder.com/services/pwa-conversion.php" rel="noopener noreferrer"&gt;PWA conversion&lt;/a&gt; and &lt;a href="https://zoopcoder.com/services/app-store-optimization-aso.php" rel="noopener noreferrer"&gt;Play Store ASO&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>googleplay</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Google Play vs Apple Developer Accounts in India: Real Costs, the D-U-N-S Trap, and When You Can't Choose Personal</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Thu, 17 Sep 2026 05:23:24 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/google-play-vs-apple-developer-accounts-in-india-real-costs-the-d-u-n-s-trap-and-when-you-cant-56mb</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/google-play-vs-apple-developer-accounts-in-india-real-costs-the-d-u-n-s-trap-and-when-you-cant-56mb</guid>
      <description>&lt;p&gt;Setting up your own developer account is the very first step before you can publish anything on Google Play or the Apple App Store, and most guides skip the parts that actually cost people days: the account &lt;em&gt;type&lt;/em&gt; you are allowed to choose, and how long identity verification really takes.&lt;/p&gt;

&lt;p&gt;Disclosure: I work with ZoopCoder, an Indian dev studio that offers these as fixed-price setup services — Play Console at ₹999, Apple Developer at ₹1,999. Everything below is sourced straight from Google's and Apple's own developer documentation, linked inline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What each one actually costs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Play&lt;/strong&gt;: a one-time US$25 registration fee, ever. Google's own &lt;a href="https://support.google.com/googleplay/android-developer/answer/6112435" rel="noopener noreferrer"&gt;account creation guide&lt;/a&gt; confirms it is a single payment, not a subscription.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple&lt;/strong&gt;: US$99 &lt;em&gt;every year&lt;/em&gt;, and it does not lapse quietly — when the membership expires, your apps come off the App Store. &lt;a href="https://developer.apple.com/support/enrollment/" rel="noopener noreferrer"&gt;Apple confirms the fee is recurring here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The account-type trap nobody mentions
&lt;/h2&gt;

&lt;p&gt;Both stores let you pick Personal/Individual or Organisation — but Google's documentation says the choice is not actually optional for everyone. Straight from Google's &lt;a href="https://support.google.com/googleplay/android-developer/answer/13634885" rel="noopener noreferrer"&gt;account-type page&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You should choose an organization account if you provide any of the following services: Financial products and services, including but not limited to banking, loans, stock trading, investment funds, cryptocurrency software wallets, and cryptocurrency exchanges... Health apps... Apps approved to use the VpnService class... Government apps"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So if you are building a lending app, a health app, a VPN, or anything government-facing, Google requires the Organisation account type regardless of team size — Personal is not an option for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The D-U-N-S number timeline that blows up launch dates
&lt;/h2&gt;

&lt;p&gt;An Organisation account (either store) needs a D-U-N-S number from Dun &amp;amp; Bradstreet. It is free, but Google's own &lt;a href="https://support.google.com/googleplay/android-developer/answer/13628312" rel="noopener noreferrer"&gt;setup requirements page&lt;/a&gt; says plainly: "This process can take up to 30 days, so you should plan ahead." People assume it is instant because the number itself is free — it is not, and if your org does not already have one, that is a month added to your timeline before you can even start creating the account.&lt;/p&gt;

&lt;h2&gt;
  
  
  What breaks accounts after they are already live
&lt;/h2&gt;

&lt;p&gt;One thing almost nobody warns you about: your payments profile (legal name + address) has to keep matching your D-U-N-S record exactly. If it drifts — say your company's registered address changes — Google shows a "your organization name or address is no longer verified" banner and restricts the account, which removes your apps from Google Play, until the mismatch is fixed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick reference
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Google Play&lt;/th&gt;
&lt;th&gt;Apple App Store&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fee&lt;/td&gt;
&lt;td&gt;US$25 one-time&lt;/td&gt;
&lt;td&gt;US$99/year, recurring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Org account requires&lt;/td&gt;
&lt;td&gt;D-U-N-S number (up to 30 days to get)&lt;/td&gt;
&lt;td&gt;D-U-N-S number&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal account extra step&lt;/td&gt;
&lt;td&gt;12 testers, 14-day closed test (accounts opened after 13 Nov 2023)&lt;/td&gt;
&lt;td&gt;none&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consequence of lapse&lt;/td&gt;
&lt;td&gt;none — one-time fee&lt;/td&gt;
&lt;td&gt;apps pulled from the App Store&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you would rather have someone walk you through the forms instead of hitting these gotchas cold: ZoopCoder does the Google Play side for a fixed ₹999 (&lt;a href="https://zoopcoder.com/services/play-console-developer-account-setup.php" rel="noopener noreferrer"&gt;Play Console Developer Account Setup&lt;/a&gt;) and the Apple side for a fixed ₹1,999 (&lt;a href="https://zoopcoder.com/services/apple-developer-account-setup.php" rel="noopener noreferrer"&gt;Apple Developer Account Setup&lt;/a&gt;) — both done on a screen share, D-U-N-S filing included where needed.&lt;/p&gt;

</description>
      <category>googleplay</category>
      <category>appstore</category>
      <category>mobile</category>
      <category>startup</category>
    </item>
    <item>
      <title>Website to Android App in 2026: Two Play Store Rules That Silently Reject Free Converter Output</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Tue, 15 Sep 2026 22:23:14 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/website-to-android-app-in-2026-two-play-store-rules-that-silently-reject-free-converter-output-3lap</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/website-to-android-app-in-2026-two-play-store-rules-that-silently-reject-free-converter-output-3lap</guid>
      <description>&lt;p&gt;Free website-to-app converters export something. Whether Google Play will accept it is a different question. Disclosure up front: I work with ZoopCoder, an Indian shop that builds and submits these apps for a fixed fee, so I have a commercial interest in this answer — but the two rules below are Google's own, not ours, and are worth knowing before you spend a rupee anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 1: Play has not accepted a plain APK for a new app since August 2021
&lt;/h2&gt;

&lt;p&gt;Google Play requires new apps to be submitted as a signed &lt;strong&gt;Android App Bundle (.aab)&lt;/strong&gt;, not a raw APK. This has been true since August 2021, so it isn't new — but a lot of free "website to app" converter tools still hand you a bare &lt;code&gt;.apk&lt;/code&gt; file, because building an AAB means the tool has to manage a proper signing keystore for you, which is more than a wrapper script usually does.&lt;/p&gt;

&lt;p&gt;If your converter's output is a &lt;code&gt;.apk&lt;/code&gt; and not a &lt;code&gt;.aab&lt;/code&gt;, you cannot upload it as a new app. Full stop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule 2: every app must target API level 36 (Android 16) — enforced from 31 August 2026
&lt;/h2&gt;

&lt;p&gt;Since 31 August 2026, Google requires new apps and app updates to target API level 36 (Android 16) to be submitted to Play at all. A converter built even a year ago, targeting an older API level, produces a bundle Play will now reject outright — not "flag for review," reject at upload.&lt;/p&gt;

&lt;p&gt;There was a one-off extension available (to 1 November 2026) for developers who filed for more time through Play Console, but it does not renew, and a brand-new project has no reason to ask for it — it should just target 36 from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means practically
&lt;/h2&gt;

&lt;p&gt;If you already have a website and want it on Google Play, the wrapper approach (website content shown inside a native Android shell, with an icon, splash screen, offline handling, and native link handling for things like WhatsApp/phone/maps links) is still the fastest, cheapest route to an app — usually far cheaper than a full native rebuild. But the deliverable has to actually be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;signed .aab&lt;/strong&gt;, not an .apk&lt;/li&gt;
&lt;li&gt;targeting &lt;strong&gt;API 36&lt;/strong&gt;, not whatever the tool defaulted to a year ago&lt;/li&gt;
&lt;li&gt;built with an &lt;strong&gt;upload keystore you're handed&lt;/strong&gt;, not one locked inside someone else's tool, because you need it for every future update&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that is exotic to build correctly — it's just two checkboxes a lot of free tools skip because their business model is "generate once," not "keep apps updatable and compliant."&lt;/p&gt;

&lt;p&gt;For reference, I do this at fixed prices: wrapping an existing website into a Play-ready Android app (signed AAB, API 36, keystore handed over) is ₹4,999, and the separate Play Console submission — store listing, content rating, Data safety form, and actually sending it for review — is ₹1,999 on top of Google's own one-time US$25 developer fee. Details: &lt;a href="https://zoopcoder.com/services/website-to-android-app.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/services/website-to-android-app.php&lt;/a&gt; and &lt;a href="https://zoopcoder.com/services/play-store-app-publishing.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/services/play-store-app-publishing.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Either way — DIY, a free tool, or paying someone — check the AAB format and the API level before you assume the app is ready. Those two checks catch almost every "why was my upload rejected" surprise before it happens.&lt;/p&gt;

</description>
      <category>android</category>
      <category>googleplay</category>
      <category>mobile</category>
      <category>webdev</category>
    </item>
    <item>
      <title>WooCommerce vs Shopify for an Indian store: what actually shows up on the bill</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Tue, 15 Sep 2026 09:27:07 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/woocommerce-vs-shopify-for-an-indian-store-what-actually-shows-up-on-the-bill-2og6</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/woocommerce-vs-shopify-for-an-indian-store-what-actually-shows-up-on-the-bill-2og6</guid>
      <description>&lt;p&gt;Every Shopify-vs-WooCommerce cost comparison you will find is written for a merchant in the United States. If you are selling from India, one of the biggest line items in that comparison does not exist for you and another one does not exist for them. Here is what is actually on the bill, with the numbers each company publishes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The software itself
&lt;/h2&gt;

&lt;p&gt;WooCommerce is free. Not freemium-with-a-catch — its makers state it plainly on their own pricing page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;WooCommerce is the &lt;strong&gt;free, open-source ecommerce platform&lt;/strong&gt; for WordPress. Build a custom online store and only pay for the added features you use — no platform fees, no revenue share.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Their own cost breakdown lists the core platform as "Free, with no monthly subscription", hosting at "$25 – $350/month for most stores", and paid extensions at "$29 – $299/year per extension". In their comparison table the monthly platform fee line is "$0 platform fee" and the revenue-share line is "None".&lt;/p&gt;

&lt;p&gt;Shopify is a subscription. On the India price list (shopify.com/in/pricing), the monthly/yearly rates are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Pay monthly&lt;/th&gt;
&lt;th&gt;Pay yearly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;₹1,994/mo&lt;/td&gt;
&lt;td&gt;₹1,499/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grow&lt;/td&gt;
&lt;td&gt;₹7,447/mo&lt;/td&gt;
&lt;td&gt;₹5,599/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Advanced&lt;/td&gt;
&lt;td&gt;₹30,164/mo&lt;/td&gt;
&lt;td&gt;₹22,680/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plus&lt;/td&gt;
&lt;td&gt;from ₹1,75,000/mo&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Shopify's own FAQ confirms "There are no setup fees on any of our plans." One gotcha if you go check: the page shows the &lt;em&gt;yearly&lt;/em&gt; rate by default on the plan cards, so if you read only the big number you will quote yourself a price you are not paying unless you commit for a year.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fee Indian sellers usually discover after the first payout
&lt;/h2&gt;

&lt;p&gt;Shopify Payments — Shopify's in-house card processor, the one that makes the "no transaction fee" claim work — &lt;strong&gt;does not operate in India&lt;/strong&gt;. India is not on Shopify's own list of supported countries for Shopify Payments (the list runs to about 40 countries: Australia, Austria, Belgium, … the UK and the US; India is not among them).&lt;/p&gt;

&lt;p&gt;That has a direct consequence. Every Indian Shopify store has to take payments through a third-party gateway — Razorpay, PayU, Cashfree — and Shopify's own FAQ says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Third-party transaction fees may apply when you use a third-party payment provider (instead of Shopify Payments). The rate depends on your plan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So an Indian merchant pays the gateway's percentage &lt;strong&gt;and&lt;/strong&gt; Shopify's third-party transaction fee on top, on every order. A merchant in a Shopify Payments country pays one of those, not two. Worth noting honestly: Shopify no longer publishes the actual third-party percentages on the India pricing page — the comparison-table row is gone and the FAQ string in the page source is an unresolved template. So plan for the fee to exist; get the current rate from Shopify before you commit, not from a blog (including this one).&lt;/p&gt;

&lt;h2&gt;
  
  
  The gateway, which you pay either way
&lt;/h2&gt;

&lt;p&gt;Razorpay's published headline on its pricing page is &lt;strong&gt;2% platform fee&lt;/strong&gt; on domestic payments, currently with a 0%-for-the-first-90-days promotion, and 2.15% + GST specifically for credit card on UPI. This one is not a Shopify-vs-WooCommerce difference — you pay it on both. It just makes the Shopify stack a fee on a fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what repeats every month?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;WooCommerce:&lt;/strong&gt; hosting + gateway percentage. That's it. No licence, no plan, no cut of sales. What you are really buying with the missing monthly fee is a maintenance obligation — somebody has to keep WordPress, the theme and the plugins patched, and if that somebody is not you, it is a bill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shopify:&lt;/strong&gt; plan + gateway percentage + Shopify's third-party transaction fee. In exchange, hosting, updates and security are not your problem at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  The crossover
&lt;/h2&gt;

&lt;p&gt;The honest version is that neither is "cheaper" in the abstract — it depends entirely on your sales volume, because one cost is fixed and the other is a percentage.&lt;/p&gt;

&lt;p&gt;Below roughly ₹13 lakh a year in online sales, Shopify tends to win: ₹1,994/month is ₹23,928 a year and the transaction percentage on small volume is small, while a maintained WooCommerce store costs roughly the same in upkeep whether you sell ₹2 lakh or ₹20 lakh. Above that, the percentage keeps climbing and the maintenance bill doesn't.&lt;/p&gt;

&lt;p&gt;And below about ₹2 lakh a year in expected online sales, the honest answer is neither — sell on Instagram and WhatsApp with a payment link and build the store when there is volume to justify it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;WooCommerce pricing — &lt;a href="https://woocommerce.com/pricing/" rel="noopener noreferrer"&gt;https://woocommerce.com/pricing/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Shopify India pricing — &lt;a href="https://www.shopify.com/in/pricing" rel="noopener noreferrer"&gt;https://www.shopify.com/in/pricing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Shopify Payments requirements / supported countries — &lt;a href="https://help.shopify.com/en/manual/payments/shopify-payments/shopify-payments-requirements" rel="noopener noreferrer"&gt;https://help.shopify.com/en/manual/payments/shopify-payments/shopify-payments-requirements&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Razorpay pricing — &lt;a href="https://razorpay.com/pricing/" rel="noopener noreferrer"&gt;https://razorpay.com/pricing/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I write for &lt;a href="https://zoopcoder.com" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, an Indian development studio that builds on both platforms and is paid either way — though not equally, so read the recommendation with that in mind. For reference, our fixed prices are &lt;a href="https://zoopcoder.com/services/woocommerce-store.php" rel="noopener noreferrer"&gt;₹19,999 for a WooCommerce store&lt;/a&gt; with 30 products and Razorpay, and ₹14,999 for a Shopify setup; the platform fees above are billed to you by Shopify/Razorpay, never by us. The full crossover arithmetic at four revenue levels is in &lt;a href="https://zoopcoder.com/guides/ecommerce-website-cost-india.php" rel="noopener noreferrer"&gt;our e-commerce cost guide&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>woocommerce</category>
      <category>shopify</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why your Google Play app gets rejected again after you fixed it — two rules from Google's own docs</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Tue, 15 Sep 2026 09:25:59 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/why-your-google-play-app-gets-rejected-again-after-you-fixed-it-two-rules-from-googles-own-docs-225e</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/why-your-google-play-app-gets-rejected-again-after-you-fixed-it-two-rules-from-googles-own-docs-225e</guid>
      <description>&lt;p&gt;If you have shipped an Android app, you have probably lived this: Google rejects an update, you fix exactly the thing the notice named, you resubmit, and it comes back rejected again. Same policy, same wording, no new information. Most people conclude the review is arbitrary or that a human never looked at it.&lt;/p&gt;

&lt;p&gt;It usually isn't arbitrary. There are two rules sitting in Google's own Play Console documentation that almost nobody reads, and between them they explain most repeat rejections.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. You are not supposed to be waiting for a reply
&lt;/h2&gt;

&lt;p&gt;A lot of developers send the appeal/contact form and then sit there for a week waiting for a human to write back before touching anything. Google's own instructions on preparing an app for review say the opposite, in plain words:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your update is rejected or your app is removed, please follow the instructions below to &lt;strong&gt;resubmit&lt;/strong&gt; your app for review. You can complete these steps without contacting or waiting for a reply from the policy support team.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So the loop is: read the enforcement message, fix the cause, push the corrected release, hit &lt;strong&gt;Send for review&lt;/strong&gt; on the Publishing overview page. No ticket, no reply, no queue. If you are waiting on an email you are just burning days.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The corrected build has to land on every track — and the bad one has to be deactivated
&lt;/h2&gt;

&lt;p&gt;This is the one that causes the "I fixed it and it got rejected again" loop, and it is the single most expensive thing I see people miss.&lt;/p&gt;

&lt;p&gt;When you resubmit after a policy violation, Google does not only look at production. From the resubmission instructions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make the appropriate changes to your app and update all release types in addition to your production release (for example, the open, closed, and internal test track releases).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and then, flagged as Important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you fail to deactivate the non-compliant app bundle(s), your attempt to resubmit your app will fail, and live versions of your app bundle(s) may be removed from Google Play.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Read that second sentence twice. Leaving the violating bundle alive on an internal test track you forgot about in March does not just risk a rejection — Google says it can take your live production app down with it.&lt;/p&gt;

&lt;p&gt;The practical checklist is therefore:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload the corrected bundle to &lt;strong&gt;production, open, closed and internal&lt;/strong&gt; — every track that has a release.&lt;/li&gt;
&lt;li&gt;Deactivate the non-compliant bundles on each of those tracks. If the offending release is still a draft, discard it.&lt;/li&gt;
&lt;li&gt;Make sure the non-compliant version shows under "Not included" in the new release.&lt;/li&gt;
&lt;li&gt;Roll the release to 100%, then send for review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most people do step 1 for production only and stop.&lt;/p&gt;

&lt;h2&gt;
  
  
  The causes worth checking before you resubmit
&lt;/h2&gt;

&lt;p&gt;In my experience the actual root cause is nearly always one of six things, and the enforcement message names the policy but not the line:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What broke&lt;/th&gt;
&lt;th&gt;What it looks like in the notice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Data safety answers don't match the app's real behaviour&lt;/td&gt;
&lt;td&gt;Data safety / User data policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy policy missing, 404s, or is a Google Doc that needs sign-in&lt;/td&gt;
&lt;td&gt;User data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sensitive permission with no approved declaration (SMS, call log, background location, all-files access)&lt;/td&gt;
&lt;td&gt;Permissions / sensitive data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The reviewer could not get past your login screen&lt;/td&gt;
&lt;td&gt;App access instructions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screenshots, title or description overselling or misdescribing the app&lt;/td&gt;
&lt;td&gt;Metadata / deceptive behaviour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build no longer meets the current target API level&lt;/td&gt;
&lt;td&gt;Target API level requirement&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On app access specifically: if any part of the app is behind a login, you have to give working credentials in &lt;strong&gt;App content → App access&lt;/strong&gt;, and you can add up to five sets of instructions. A demo account that expired two months ago reads to a reviewer exactly like a broken app.&lt;/p&gt;

&lt;h2&gt;
  
  
  How long the resubmission actually takes
&lt;/h2&gt;

&lt;p&gt;Usually hours to a couple of days. But Google is explicit that it is not uniform:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For certain developer accounts, we'll take more time to thoroughly review your app to help better protect users. This may result in review times of up to seven days or longer in exceptional cases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nobody — no agency, no consultant, no "Play Store expert" on a freelance site — can shorten that queue. If someone tells you they can, that alone is the tell.&lt;/p&gt;

&lt;h2&gt;
  
  
  One thing that is not a rejection
&lt;/h2&gt;

&lt;p&gt;If your app is sitting in closed testing and you cannot push to production, that is usually not an enforcement action at all. Personal developer accounts created after 13 November 2023 have to run a closed test with &lt;strong&gt;at least 12 testers opted in continuously for 14 days&lt;/strong&gt; before they can even apply for production access. Testers who opt in, test for a few days and drop out do not count, and the 14 days have to be consecutive. It is a waiting requirement, not a violation, and there is nothing to fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prepare your app for review — &lt;a href="https://support.google.com/googleplay/android-developer/answer/9859455" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/9859455&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;My app has been removed from Google Play (resubmission + appeals) — &lt;a href="https://support.google.com/googleplay/android-developer/answer/2477981" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/2477981&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Publish your app (review times) — &lt;a href="https://support.google.com/googleplay/android-developer/answer/9859751" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/9859751&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;App testing requirements for new personal developer accounts — &lt;a href="https://support.google.com/googleplay/android-developer/answer/14151465" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/14151465&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I write for &lt;a href="https://zoopcoder.com" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, an Indian development studio, and we sell a fixed-price &lt;a href="https://zoopcoder.com/services/play-store-app-rejection-fix.php" rel="noopener noreferrer"&gt;Play Store rejection fix at ₹2,999&lt;/a&gt; — diagnosis plus resubmission in 2-4 working days. Everything above is in Google's public documentation and you can do all of it yourself for free; I wrote it up because the two-track rule costs people weeks. We do not guarantee approval and nobody honestly can. If the hold-up is the 14-day tester clock rather than a rejection, &lt;a href="https://zoopcoder.com/guides/how-long-to-build-app-website-india.php" rel="noopener noreferrer"&gt;this piece on how long an app actually takes to go live in India&lt;/a&gt; has the timeline.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googleplay</category>
      <category>android</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>What a Shopify store really costs in India in 2026 — including the fee only Indian sellers pay</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Tue, 15 Sep 2026 05:31:16 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/what-a-shopify-store-really-costs-in-india-in-2026-including-the-fee-only-indian-sellers-pay-32af</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/what-a-shopify-store-really-costs-in-india-in-2026-including-the-fee-only-indian-sellers-pay-32af</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I work at &lt;a href="https://zoopcoder.com/" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, an Indian dev shop, and we sell a paid fixed-price Shopify setup. Every Shopify number below is Shopify's own published India price and is billed by Shopify, not by us — none of it reaches us. The one paid thing we sell is flagged clearly at the end. Verify the rates on Shopify's site before you plan around them; they move.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every "how much does Shopify cost" article you will find is written for a merchant in the US, the UK or Australia. For an Indian seller, all of them are wrong in the same specific way, and it is not the subscription price.&lt;/p&gt;

&lt;p&gt;Here is the actual arithmetic for India as at September 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The subscription (Shopify's own India price list)
&lt;/h2&gt;

&lt;p&gt;From &lt;a href="https://www.shopify.com/in/pricing" rel="noopener noreferrer"&gt;shopify.com/in/pricing&lt;/a&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Pay monthly&lt;/th&gt;
&lt;th&gt;Pay yearly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basic&lt;/td&gt;
&lt;td&gt;₹1,994/mo&lt;/td&gt;
&lt;td&gt;₹1,499/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grow&lt;/td&gt;
&lt;td&gt;₹7,447/mo&lt;/td&gt;
&lt;td&gt;₹5,599/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Advanced&lt;/td&gt;
&lt;td&gt;₹30,164/mo&lt;/td&gt;
&lt;td&gt;₹22,680/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plus&lt;/td&gt;
&lt;td&gt;from ₹1,75,000/mo&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;And, verbatim from the same page's FAQ: &lt;em&gt;"There are no setup fees on any of our plans."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So the headline is ₹1,994 a month, or ₹17,988 a year if you commit annually. That is the number everyone quotes. It is also the number that matters least.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The thing that is different in India: Shopify Payments doesn't operate here
&lt;/h2&gt;

&lt;p&gt;Shopify publishes a &lt;a href="https://help.shopify.com/en/manual/payments/shopify-payments/shopify-payments-requirements" rel="noopener noreferrer"&gt;list of supported countries for Shopify Payments&lt;/a&gt;. As I write this it runs from Australia and Austria through to the UAE, the UK and the US — 40-odd countries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;India is not on it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That has one direct consequence, which Shopify also states plainly in its pricing FAQ:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Third-party transaction fees may apply when you use a third-party payment provider (instead of Shopify Payments). The rate depends on your plan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Put those two facts together and you get the India-specific outcome: every Indian Shopify store &lt;em&gt;must&lt;/em&gt; use a third-party gateway — Razorpay, PayU, Cashfree, PhonePe — which means every Indian Shopify store pays Shopify's third-party transaction fee on &lt;strong&gt;every order&lt;/strong&gt;. There is no configuration that avoids it, because the thing that would avoid it isn't available here.&lt;/p&gt;

&lt;p&gt;A merchant in a supported country can switch that fee off by turning Shopify Payments on. You cannot. That is the asymmetry nobody's cost comparison mentions.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. And then there's GST on the gateway fee
&lt;/h2&gt;

&lt;p&gt;Second India-only line item, and an easy one to under-budget. A standard Razorpay/PayU/Cashfree account is around &lt;strong&gt;2% per transaction&lt;/strong&gt; on domestic cards — and &lt;strong&gt;18% GST is charged on that fee&lt;/strong&gt;, which makes the real rate about &lt;strong&gt;2.36%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;On ₹50,00,000 of annual sales that's ₹1,18,000, not ₹1,00,000. An ₹18,000/year line that appears in exactly zero comparison tables published outside India.&lt;/p&gt;

&lt;p&gt;One more, if you are GST-registered: Shopify bills its subscription from outside India, so the &lt;strong&gt;reverse charge mechanism&lt;/strong&gt; applies — you pay the GST to the government yourself and claim it back. Net zero if you are registered, a real 18% if you are not. Ask your CA, not a blog post, about your own position.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. So what does it actually cost to run?
&lt;/h2&gt;

&lt;p&gt;Stack the three layers for a Basic-plan store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription: &lt;strong&gt;₹1,994/mo&lt;/strong&gt; (₹1,499/mo yearly)&lt;/li&gt;
&lt;li&gt;Shopify's third-party transaction fee: &lt;strong&gt;a percentage of every order&lt;/strong&gt;, unavoidable in India, rate depends on plan&lt;/li&gt;
&lt;li&gt;Gateway + GST: &lt;strong&gt;~2.36% of every order&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first number is fixed. The other two scale with your revenue — and that is the whole decision, because WooCommerce's cost structure is the opposite shape: nothing for the software, everything in hosting and maintenance labour, which stays roughly flat as sales grow.&lt;/p&gt;

&lt;p&gt;Two lines with different slopes cross somewhere. We did that arithmetic at four revenue levels for the Indian market — including where the crossover actually sits and the case for not building a store at all below a certain volume — in &lt;a href="https://zoopcoder.com/guides/ecommerce-website-cost-india.php" rel="noopener noreferrer"&gt;what an e-commerce website costs in India&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The short version of that guide, so you don't have to click:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Under ~₹2 lakh/year in online sales:&lt;/strong&gt; don't build a store. A WhatsApp Business catalogue and a payment link take an afternoon and cost nothing but the transaction fee.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;~₹2 lakh to ~₹13 lakh/year:&lt;/strong&gt; Shopify. The subscription plus its cut is cheaper than paying somebody in India to keep WooCommerce patched, and it is dramatically less work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Above ~₹13 lakh/year:&lt;/strong&gt; the lines cross and WooCommerce starts winning, because Shopify's percentage keeps climbing with your revenue and maintenance labour doesn't.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That recommendation sends most small sellers &lt;em&gt;away&lt;/em&gt; from the larger project, which is the opposite of what an agency blog usually does. It is also just what the maths says.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What setup actually involves
&lt;/h2&gt;

&lt;p&gt;A blank Shopify store does not sell. What it needs before it can take a rupee:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A theme customised enough not to look like a demo (free themes are fine; the licence for a paid one is yours to buy)&lt;/li&gt;
&lt;li&gt;Products with real variants and collections, not a flat list&lt;/li&gt;
&lt;li&gt;A gateway connected and KYC-approved — this is usually the long pole, not the design&lt;/li&gt;
&lt;li&gt;Shipping zones, rates and COD, which in India is still a large share of orders&lt;/li&gt;
&lt;li&gt;GST tax settings&lt;/li&gt;
&lt;li&gt;Refund, privacy, shipping and terms pages — &lt;strong&gt;gateways ask for these during approval&lt;/strong&gt;, and a missing shipping policy is a very common reason an Indian gateway application stalls&lt;/li&gt;
&lt;li&gt;A real end-to-end test order before you announce anything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that is hard. All of it is fiddly, and the gateway approval step has a queue you don't control.&lt;/p&gt;

&lt;p&gt;If you'd rather not, ZoopCoder does it as a fixed price: &lt;strong&gt;&lt;a href="https://zoopcoder.com/services/shopify-store-setup.php" rel="noopener noreferrer"&gt;Shopify store setup — ₹14,999, 7-10 working days&lt;/a&gt;&lt;/strong&gt;, up to 30 products, gateway connected, COD, shipping, GST, domain, policy pages and a live test order before handover. The Shopify plan stays on your own account and your own card — we work as staff on your store and that access can be removed the day we hand over.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one-line summary
&lt;/h2&gt;

&lt;p&gt;Shopify in India is ₹1,994/month &lt;strong&gt;plus a percentage you cannot switch off&lt;/strong&gt;, because Shopify Payments doesn't operate here. Budget the percentage, not the subscription. Below about ₹13 lakh a year in sales, it's still the right platform for most sellers — it's just not as cheap as the international articles make it look.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>ecommerce</category>
      <category>startup</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Google Play's API 36 deadline has passed — what actually breaks when you upgrade</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Tue, 15 Sep 2026 05:29:30 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/google-plays-api-36-deadline-has-passed-what-actually-breaks-when-you-upgrade-1apb</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/google-plays-api-36-deadline-has-passed-what-actually-breaks-when-you-upgrade-1apb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I work at &lt;a href="https://zoopcoder.com/" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, an Indian dev shop, and we sell a paid fixed-price version of this upgrade. Everything below is from Google's own published documentation and is linked so you can check it. There are no fees in this post paid to us except the one clearly marked at the end — treat this as a commercially interested source and verify the dates yourself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you have an Android app in production and you have not shipped an update since August, there is a decent chance Play Console will refuse your next upload with this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your app must target Android 16 (API level 36) or higher.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is not a bug and it is not your build tooling. It is Google Play's annual target API level requirement, and this year's step took effect on &lt;strong&gt;31 August 2026&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here is exactly what the rule says, what it blocks, how much time you have left, and — the part most posts skip — what actually breaks when you raise the number.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule, in Google's words
&lt;/h2&gt;

&lt;p&gt;From &lt;a href="https://developer.android.com/google/play/requirements/target-sdk" rel="noopener noreferrer"&gt;Meet Google Play's target API level requirement&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Starting August 31 2026:&lt;/strong&gt; New apps and app updates must target Android 16 (API level 36) or higher to be submitted to Google Play; except for Wear OS and Android Automotive OS apps, which must target Android 15 (API level 35) or higher, and Android TV and Android XR apps, which must target Android 14 (API level 34) or higher.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Form factor&lt;/th&gt;
&lt;th&gt;Minimum target API level&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Phones / tablets / foldables&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;36&lt;/strong&gt; (Android 16)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wear OS&lt;/td&gt;
&lt;td&gt;35 (Android 15)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android Automotive OS&lt;/td&gt;
&lt;td&gt;35 (Android 15)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android TV&lt;/td&gt;
&lt;td&gt;34 (Android 14)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android XR&lt;/td&gt;
&lt;td&gt;34 (Android 14)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two things people get wrong about this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It applies to updates, not just new apps.&lt;/strong&gt; A five-year-old app with a million installs cannot ship a one-line crash fix until its &lt;code&gt;targetSdk&lt;/code&gt; goes to 36. The block is on the upload itself, in Play Console, before review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;There is a second, softer rule for apps you never touch again.&lt;/strong&gt; Existing apps must target API 35 or higher "to remain available to new users on devices running Android OS higher than your app's target API level." An app left on API 34 doesn't vanish — it just quietly stops being installable by new users on current phones, which looks identical to your install rate dying for no reason.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The documented exception is narrow: "permanently private apps that are restricted to users in a specific organization and intended for internal distribution only."&lt;/p&gt;

&lt;h2&gt;
  
  
  You can buy time, once, until 1 November 2026
&lt;/h2&gt;

&lt;p&gt;Also straight from that page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you need more time to update your app, you'll be able to request an extension to November 1, 2026. You'll be able to access your app's extension forms in Play Console later this year.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the whole reprieve. It is a one-off form inside Play Console, it moves your date to &lt;strong&gt;1 November 2026&lt;/strong&gt;, and it does not renew. If you are reading this and you're blocked, filing that is the first thing to do — then do the work, because the extension is not a plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually breaks (this is the real work)
&lt;/h2&gt;

&lt;p&gt;Bumping &lt;code&gt;targetSdk&lt;/code&gt; from 35 to 36 is one line. Everything after that line is the job. Four changes catch almost everybody, all documented in &lt;a href="https://developer.android.com/about/versions/16/behavior-changes-16" rel="noopener noreferrer"&gt;Behavior changes: Apps targeting Android 16&lt;/a&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The edge-to-edge opt-out is gone
&lt;/h3&gt;

&lt;p&gt;Android 15 enforced edge-to-edge for apps targeting API 35, but you could escape with &lt;code&gt;R.attr#windowOptOutEdgeToEdgeEnforcement = true&lt;/code&gt;. For apps targeting API 36, that attribute is &lt;strong&gt;deprecated and disabled&lt;/strong&gt; on Android 16 devices — you cannot opt out any more.&lt;/p&gt;

&lt;p&gt;Practical effect: your content now draws under the status bar and the navigation bar. Buttons end up under the gesture pill; headers end up under the clock. Nothing crashes, so CI stays green and the bug arrives via a screenshot from a user.&lt;/p&gt;

&lt;p&gt;The fix is to apply window insets properly (&lt;a href="https://developer.android.com/develop/ui/compose/layouts/insets" rel="noopener noreferrer"&gt;Compose&lt;/a&gt; / &lt;a href="https://developer.android.com/develop/ui/views/layout/edge-to-edge" rel="noopener noreferrer"&gt;Views&lt;/a&gt;) rather than to hunt for a new opt-out flag. There isn't one.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Predictive back is on by default — and &lt;code&gt;onBackPressed&lt;/code&gt; is never called
&lt;/h3&gt;

&lt;p&gt;This is the nastiest one, and it is the reason I am writing this post:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For apps targeting Android 16 (API level 36) or higher and running on an Android 16 or higher device, the predictive back system animations (back-to-home, cross-task, and cross-activity) are enabled by default. Additionally, &lt;code&gt;onBackPressed&lt;/code&gt; is not called and &lt;code&gt;KeyEvent.KEYCODE_BACK&lt;/code&gt; is not dispatched anymore.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If your app intercepts the back key at all, that interception silently stops running. The single most common casualty is the &lt;strong&gt;WebView wrapper&lt;/strong&gt; pattern — the classic&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nd"&gt;@Override&lt;/span&gt;
&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;onBackPressed&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;canGoBack&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="n"&gt;webView&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;goBack&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onBackPressed&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;— which is in a very large share of India's small-business apps. After the upgrade, back exits the app instead of going back a page, and it does so from the first screen the user ever presses back on.&lt;/p&gt;

&lt;p&gt;Two options: migrate to the &lt;a href="https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture#update-custom" rel="noopener noreferrer"&gt;supported back navigation APIs&lt;/a&gt;, or set &lt;code&gt;android:enableOnBackInvokedCallback="false"&lt;/code&gt; on &lt;code&gt;&amp;lt;application&amp;gt;&lt;/code&gt; or the specific &lt;code&gt;&amp;lt;activity&amp;gt;&lt;/code&gt; as a &lt;strong&gt;temporary&lt;/strong&gt; opt-out while you migrate. Google's own wording for that flag is "temporarily opt out", and it is worth treating that word as load-bearing.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Orientation and aspect-ratio locks stop being honoured on big screens
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;For apps targeting Android 16 (API level 36), orientation, resizability, and aspect ratio restrictions no longer apply on displays with smallest width &amp;gt;= 600dp. Apps fill the entire display window, regardless of aspect ratio or a user's preferred orientation, and pillarboxing isn't used.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you shipped &lt;code&gt;screenOrientation="portrait"&lt;/code&gt; and assumed it would hold, it won't on a tablet, a foldable's inner screen, or desktop windowing. There is a per-activity manifest opt-out (&lt;code&gt;PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY&lt;/code&gt;) and an application-level one, but the direction of travel is obvious and the escape hatches are explicitly transitional.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;code&gt;elegantTextHeight&lt;/code&gt; is deprecated and ignored — and this one is an India problem
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Android 16 deprecates the &lt;code&gt;elegantTextHeight&lt;/code&gt; attribute, and the attribute will be ignored once your app targets Android 16. The "UI fonts" controlled by these APIs are being discontinued, so you should adapt any layouts to ensure consistent and future proof text rendering in Arabic, Lao, Myanmar, Tamil, Gujarati, Kannada, Malayalam, Odia, Telugu or Thai.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Six of those ten scripts are Indian. If your app ships Tamil, Telugu, Kannada, Malayalam, Odia or Gujarati strings, your line heights move and tightly-packed layouts clip. Nobody in your QA group is going to catch that unless somebody is explicitly told to look at the regional-language build.&lt;/p&gt;

&lt;h2&gt;
  
  
  While you are in there: the 16 KB page size deadline
&lt;/h2&gt;

&lt;p&gt;Different rule, same neighbourhood, and worth doing in the same sitting. From &lt;a href="https://developer.android.com/guide/practices/page-sizes" rel="noopener noreferrer"&gt;Support 16 KB page sizes&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To ensure your app works correctly on the latest versions of Android, all apps targeting Android 15 (API level 35) and higher must support 16 KB memory page sizes on 64-bit devices on Google Play. &lt;strong&gt;Starting February 1, 2027&lt;/strong&gt;, if your app updates don't support 16 KB memory page sizes, you won't be able to release these updates.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The good news, also from that page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your app only uses code written in the Java programming language or in Kotlin, including all libraries or SDKs, then your app already supports 16 KB devices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So this only bites if you (or a dependency — think older video, ML, crypto, PDF or game SDKs) ship native &lt;code&gt;.so&lt;/code&gt; files. Check your AAB's &lt;code&gt;lib/arm64-v8a/&lt;/code&gt; contents before you assume you're clear, because "a library I depend on has NDK code" is a much more common answer than "I wrote NDK code".&lt;/p&gt;

&lt;h2&gt;
  
  
  What this costs
&lt;/h2&gt;

&lt;p&gt;Honest version: if it's a healthy modern project with maintained dependencies, this is a half-day for someone who has done it before, and you should just do it yourself using the links above. Nothing in this post is secret.&lt;/p&gt;

&lt;p&gt;It gets expensive when the project is old: an unmaintained Gradle plugin, an AGP version that won't compile against API 36, a dependency that was abandoned three years ago, a Cordova shell. Then you are not doing a one-line bump, you are doing an archaeology project.&lt;/p&gt;

&lt;p&gt;If you'd rather hand it over, ZoopCoder does this as a fixed-price job: &lt;strong&gt;&lt;a href="https://zoopcoder.com/services/target-sdk-upgrade.php" rel="noopener noreferrer"&gt;target API 36 upgrade — ₹2,999, 2-4 working days&lt;/a&gt;&lt;/strong&gt;, which covers the tooling update, the four behaviour changes above, a 16 KB check on native libraries, and a signed AAB. We quote separately (and say so up front) if the project turns out to need a rewrite rather than an upgrade — that is the honest failure mode of a fixed price on legacy code.&lt;/p&gt;

&lt;p&gt;The wider point, which is worth more than the service: an Android app is not a thing you finish. Google and Apple move their requirements on their own calendar, not yours, and an app nobody touches for two years eventually fails a store requirement without anything about it having "broken". We put a yearly number on that in &lt;a href="https://zoopcoder.com/guides/website-maintenance-cost-india.php" rel="noopener noreferrer"&gt;what website and app maintenance actually costs in India&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do the extension form today if you're blocked. Then do the upgrade before 1 November.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>googleplay</category>
      <category>programming</category>
    </item>
    <item>
      <title>WhatsApp Business Platform pricing in rupees — and the two things that change on 1 October 2026</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Mon, 14 Sep 2026 22:31:50 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/whatsapp-business-platform-pricing-in-rupees-and-the-two-things-that-change-on-1-october-2026-4ko0</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/whatsapp-business-platform-pricing-in-rupees-and-the-two-things-that-change-on-1-october-2026-4ko0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I work on &lt;a href="https://zoopcoder.com" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, a small Indian dev shop that builds WhatsApp chatbots as a paid service. Every per-message rate below is &lt;strong&gt;Meta's&lt;/strong&gt;, taken from Meta's own published rate card, and is billed by Meta directly to your WhatsApp Business account — none of it reaches us. The one paid thing we sell is at the end, clearly marked.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;WhatsApp Business Platform pricing has changed twice in eighteen months and is about to change again in two weeks. Most of the "WhatsApp API pricing India" pages you will find are still describing the 2023 model. Here are the current numbers in rupees, straight off Meta's rate card, plus what actually lands on &lt;strong&gt;1 October 2026&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Source for everything below: &lt;a href="https://developers.facebook.com/docs/whatsapp/pricing" rel="noopener noreferrer"&gt;Meta's pricing documentation&lt;/a&gt;, last updated 10 September 2026, and the INR rate card CSV linked from it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The model, in one paragraph
&lt;/h2&gt;

&lt;p&gt;Until mid-2025 Meta charged per &lt;strong&gt;24-hour conversation&lt;/strong&gt;. Since &lt;strong&gt;1 July 2025&lt;/strong&gt; it charges &lt;strong&gt;per template message delivered&lt;/strong&gt; instead. You are charged when a template message is delivered; the rate depends on the template's &lt;strong&gt;category&lt;/strong&gt; (marketing, utility, authentication) and the &lt;strong&gt;country calling code&lt;/strong&gt; of the person receiving it. Free-form, non-template messages — the ordinary replies a bot or a human sends inside an open 24-hour customer service window — have not been charged since 1 November 2024.&lt;/p&gt;

&lt;p&gt;That last sentence is the one with an expiry date on it. More below.&lt;/p&gt;

&lt;h2&gt;
  
  
  India rates today (effective 1 July 2026)
&lt;/h2&gt;

&lt;p&gt;Per message delivered, in rupees, to an Indian (+91) number:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Template category&lt;/th&gt;
&lt;th&gt;Rate per message&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Marketing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;₹0.8631&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Promotions, offers, re-engagement, cart nudges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Utility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;₹0.1150&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Order confirmations, shipping updates, payment receipts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;₹0.1150&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OTPs and login codes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication-international&lt;/td&gt;
&lt;td&gt;₹2.4971&lt;/td&gt;
&lt;td&gt;Auth messages billed under the international rate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Service&lt;/strong&gt; (free-form reply in an open 24h window)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;not charged&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;…until 30 September 2026. See below&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two things jump out. Marketing is &lt;strong&gt;7.5× the price of utility&lt;/strong&gt; in India, and utility is so cheap — about eleven and a half paise — that order updates are effectively a rounding error. A store sending 2,000 shipping updates a month spends &lt;strong&gt;₹230&lt;/strong&gt;. A store blasting 5,000 marketing templates a month spends &lt;strong&gt;₹4,315&lt;/strong&gt;. Same channel, wildly different economics, and the difference is entirely which category your template is approved under.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes on 1 October 2026
&lt;/h2&gt;

&lt;p&gt;Two changes, both of which make free things cost money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Service messages start being charged.&lt;/strong&gt; Those free-form replies inside an open 24-hour customer service window — everything a chatbot says back to a customer who messaged first — become chargeable at &lt;strong&gt;the same rate as utility and authentication in your market&lt;/strong&gt;. In India that is &lt;strong&gt;₹0.1150 per message&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There is a free tier, and it is per phone number, not per business: &lt;strong&gt;1,000 service messages per business phone number per month&lt;/strong&gt;, free. Meta only charges from the 1,001st service message delivered in a month. The allowance &lt;strong&gt;does not roll over&lt;/strong&gt; — 1,000 in October, 1,000 in November, unused ones vanish. And note Meta's own warning: if you have no payment method on the account, your first 1,000 service messages each month still go out, but the 1,001st is simply &lt;strong&gt;not delivered&lt;/strong&gt;. Add a payment method in Billing Hub before October if your volume is anywhere near the line.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Utility templates sent in reply to a user become chargeable again.&lt;/strong&gt; Since 1 July 2025, a utility template delivered inside an open customer service window was free. From 1 October 2026 it is not.&lt;/p&gt;

&lt;p&gt;India is &lt;strong&gt;not&lt;/strong&gt; in Meta's list of markets whose marketing, utility or authentication rates change on 1 October 2026, so the ₹0.8631 / ₹0.1150 figures above should hold through the switchover. The new cost is the newly-chargeable categories, not a rate rise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What that does to a real bill
&lt;/h2&gt;

&lt;p&gt;Take a small Indian D2C store running a bot on one number. 2,000 people message in each month; the bot answers each with roughly three messages; the store also sends 2,000 shipping updates and one marketing blast to 5,000 opted-in contacts.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line&lt;/th&gt;
&lt;th&gt;Volume&lt;/th&gt;
&lt;th&gt;Until 30 Sep 2026&lt;/th&gt;
&lt;th&gt;From 1 Oct 2026&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bot replies (service messages)&lt;/td&gt;
&lt;td&gt;6,000&lt;/td&gt;
&lt;td&gt;₹0&lt;/td&gt;
&lt;td&gt;(6,000 − 1,000 free) × ₹0.1150 = &lt;strong&gt;₹575&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shipping updates (utility templates)&lt;/td&gt;
&lt;td&gt;2,000&lt;/td&gt;
&lt;td&gt;₹230&lt;/td&gt;
&lt;td&gt;₹230&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing blast&lt;/td&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;₹4,315&lt;/td&gt;
&lt;td&gt;₹4,315&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Monthly total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;₹4,545&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;₹5,120&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So the October change costs this business ₹575 a month. Not existential — but it is the difference between "replies are free" and "replies are metered", and if you are running a high-volume support bot on one number, 50,000 service messages a month goes from ₹0 to about &lt;strong&gt;₹5,635&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three ways to keep the bill down
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Let the customer start the conversation.&lt;/strong&gt; A click-to-chat link, a WhatsApp button on your site, a QR code on the packaging. Replying inside an open window is ₹0.1150 a message and the first 1,000 are free; reaching out cold with a marketing template is ₹0.8631 every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get the template category right.&lt;/strong&gt; An order confirmation approved as &lt;em&gt;marketing&lt;/em&gt; instead of &lt;em&gt;utility&lt;/em&gt; costs you 7.5× for no reason. Write templates so they are unambiguously transactional, and challenge a miscategorisation rather than shrugging at it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch the 1,000-message line per number.&lt;/strong&gt; The free tier is per business phone number. If you genuinely run separate support and sales functions, separate numbers each get their own 1,000 — but do not split numbers purely to farm the allowance; you will pay for it in verification hassle and split chat history.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  One thing worth saying about unofficial tools
&lt;/h2&gt;

&lt;p&gt;There is a whole market of cheap "WhatsApp automation" tools that drive the consumer app rather than the Business Platform. They are cheaper because they are against WhatsApp's terms, and the failure mode is your business number getting banned with the chat history inside it. If WhatsApp is a real sales channel for you, the official API's per-message rupees-and-paise pricing is not the expensive option.&lt;/p&gt;

&lt;h2&gt;
  
  
  The paid option, stated plainly
&lt;/h2&gt;

&lt;p&gt;ZoopCoder builds a chatbot on the official WhatsApp Business Platform — menus, up to 25 FAQ replies, lead capture into a Google Sheet, human handoff, up to 3 templates submitted for Meta approval — for a fixed &lt;strong&gt;₹7,999&lt;/strong&gt;, live in 7–10 working days, no monthly fee from us. It is &lt;a href="https://zoopcoder.com/services/whatsapp-chatbot.php" rel="noopener noreferrer"&gt;here&lt;/a&gt; with the full scope. Meta's per-message charges above are yours and go to Meta; we do not mark them up and we do not resell them.&lt;/p&gt;

&lt;p&gt;If you are costing a whole storefront rather than just the bot, the rest of the recurring lines are itemised in our &lt;a href="https://zoopcoder.com/guides/ecommerce-website-cost-india.php" rel="noopener noreferrer"&gt;e-commerce website cost guide for India&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Rates change quarterly. If you are reading this months from now, check &lt;a href="https://developers.facebook.com/docs/whatsapp/pricing" rel="noopener noreferrer"&gt;Meta's rate card&lt;/a&gt; before quoting these numbers to anyone.&lt;/p&gt;

</description>
      <category>whatsapp</category>
      <category>api</category>
      <category>startup</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What it actually costs to publish an iPhone app on the App Store from India (2026 numbers)</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Mon, 14 Sep 2026 22:30:51 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/what-it-actually-costs-to-publish-an-iphone-app-on-the-app-store-from-india-2026-numbers-1nmi</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/what-it-actually-costs-to-publish-an-iphone-app-on-the-app-store-from-india-2026-numbers-1nmi</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I work on &lt;a href="https://zoopcoder.com" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, a small Indian dev shop that sells App Store submission as a paid fixed-price service. Every &lt;strong&gt;fee&lt;/strong&gt; in this post is money paid to Apple, not to us, and I have linked Apple's own page for each one so you can check it. The single paid thing we sell is flagged at the very end — the rest of the post works fine if you ignore it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every few weeks someone asks me the same question in a slightly different form: &lt;em&gt;"how much does it cost to put an app on the App Store?"&lt;/em&gt; The answers online are either American, or a year out of date, or quietly skip the part that actually costs money. So here are the 2026 numbers, in rupees, with sources.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The fee: US$99 a year, and the word &lt;em&gt;year&lt;/em&gt; is the whole story
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://developer.apple.com/support/enrollment/" rel="noopener noreferrer"&gt;Apple Developer Program&lt;/a&gt; is &lt;strong&gt;99 USD per membership year&lt;/strong&gt;, "in local currency where available" — so Apple bills you in rupees during enrolment. At ₹95.61 to the dollar (14 September 2026) that is &lt;strong&gt;about ₹9,500 a year&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Compare that to Google:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Store&lt;/th&gt;
&lt;th&gt;What you pay&lt;/th&gt;
&lt;th&gt;How often&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Play&lt;/td&gt;
&lt;td&gt;US$25 (about ₹2,400)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Once. Ever.&lt;/strong&gt; One account, every app you ever ship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apple App Store&lt;/td&gt;
&lt;td&gt;US$99 (about ₹9,500)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Every year&lt;/strong&gt;, for as long as you want the apps listed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That difference compounds. Three years on Google Play costs US$25. Three years on the App Store costs US$297.&lt;/p&gt;

&lt;p&gt;And Apple's fee does not lapse quietly. When the membership expires, your apps are &lt;strong&gt;removed from the App Store&lt;/strong&gt;. People who already installed the app keep their copy, but nobody new can download it and you cannot ship an update until you renew. If you are a solo dev with one free app and no revenue, budget that ₹9,500 as a permanent line, not a launch cost.&lt;/p&gt;

&lt;p&gt;(Accredited educational institutions, government entities and qualifying non-profits can apply to Apple for a &lt;a href="https://developer.apple.com/support/fee-waiver/" rel="noopener noreferrer"&gt;fee waiver&lt;/a&gt;. Most people reading this will not qualify.)&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Individual or organization? Decide before you pay, not after
&lt;/h2&gt;

&lt;p&gt;This one costs people days, and it is free to get right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Individual enrolment&lt;/strong&gt; needs your Apple Account with two-factor on, and a card. That is it. But your &lt;strong&gt;own legal name&lt;/strong&gt; is shown as the seller on the App Store listing. For a personal project, fine. For anything you want to look like a company, not fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Organization enrolment&lt;/strong&gt; shows your company name as the seller instead, and Apple &lt;a href="https://developer.apple.com/programs/enroll/" rel="noopener noreferrer"&gt;requires&lt;/a&gt; rather more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;D-U-N-S Number&lt;/strong&gt; for the legal entity (free from Dun &amp;amp; Bradstreet, but requesting one takes days);&lt;/li&gt;
&lt;li&gt;a legal entity that can contract with Apple — Apple explicitly does &lt;strong&gt;not&lt;/strong&gt; accept DBAs, trade names or branches;&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;work email on your organization's own domain&lt;/strong&gt; — a Gmail address will not do;&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;publicly working company website&lt;/strong&gt; on that same domain. A domain-registrar parking page or a link to your Instagram gets rejected;&lt;/li&gt;
&lt;li&gt;and the person enrolling must actually have authority to bind the company.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are an Indian private limited or LLP and do not yet have a D-U-N-S number, start that request first and do everything else while it processes. Switching from individual to organization later is a support ticket, not a checkbox.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Review takes a day. Rework takes a fortnight.
&lt;/h2&gt;

&lt;p&gt;Apple's own number on the &lt;a href="https://developer.apple.com/app-store/review/" rel="noopener noreferrer"&gt;App Review page&lt;/a&gt;: &lt;strong&gt;"On average, 90% of submissions are reviewed in less than 24 hours."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is genuinely fast — faster than Google Play's typical turnaround right now. The reason iOS launches feel slow is the other Apple statistic on that same page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"On average, over 40% of unresolved issues are related to guideline 2.1: App Completeness"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Guideline 2.1 is not a design judgement or a policy grey area. It is the boring stuff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the app &lt;strong&gt;crashed&lt;/strong&gt; on the reviewer's device;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;placeholder content&lt;/strong&gt; — lorem ipsum, a stock avatar, an empty tab — still in the build you submitted;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;incomplete information&lt;/strong&gt;: no demo account, so the reviewer hit your login screen and could not get past it;&lt;/li&gt;
&lt;li&gt;broken links (a privacy policy URL that 404s will do it);&lt;/li&gt;
&lt;li&gt;a screenshot showing an Android device, or UI that is not in the build.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of those is checkable in twenty minutes before you submit. Each one you miss costs a full review cycle, and cycles are where the two weeks go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The demo account is the single highest-value thing you can add.&lt;/strong&gt; If your app has any sign-in at all, put a working username and password in the App Review notes, make sure the account has realistic data in it, and keep it alive until the app is approved. Reviewers do not sign up.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Guideline 4.2, and why website wrappers die on iOS
&lt;/h2&gt;

&lt;p&gt;If your plan is "wrap our website in a WebView and ship it", read &lt;a href="https://developer.apple.com/app-store/review/guidelines/#minimum-functionality" rel="noopener noreferrer"&gt;guideline 4.2&lt;/a&gt; first. Apple says it plainly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Websites served in an iOS app, web content that is not formatted for iOS, and limited web interactions do not make a quality app."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Android will usually take that app. iOS will usually not. If you want the same web content on the App Store, it needs real native behaviour on top — push notifications, offline handling, native navigation, device features that a browser tab cannot offer. Plan that as build work, not as a conversion step.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The whole first-year bill, in rupees
&lt;/h2&gt;

&lt;p&gt;For an Indian founder shipping one iPhone app, with a build that already exists:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Who charges it&lt;/th&gt;
&lt;th&gt;Amount&lt;/th&gt;
&lt;th&gt;How often&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Apple Developer Program&lt;/td&gt;
&lt;td&gt;Apple&lt;/td&gt;
&lt;td&gt;US$99 (~₹9,500)&lt;/td&gt;
&lt;td&gt;Every year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D-U-N-S number (org accounts)&lt;/td&gt;
&lt;td&gt;Dun &amp;amp; Bradstreet&lt;/td&gt;
&lt;td&gt;₹0&lt;/td&gt;
&lt;td&gt;Once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apple commission on in-app sales&lt;/td&gt;
&lt;td&gt;Apple&lt;/td&gt;
&lt;td&gt;15% under US$1M/yr revenue&lt;/td&gt;
&lt;td&gt;Per sale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App Store submission, if you do it yourself&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;₹0 and a day or two of your time&lt;/td&gt;
&lt;td&gt;Per app&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Year one: &lt;strong&gt;about ₹9,500&lt;/strong&gt; plus your time. Year two onwards: about ₹9,500. There is no per-app charge and no submission fee — the recurring membership is the entire Apple bill until you start selling inside the app.&lt;/p&gt;

&lt;p&gt;FX used throughout: ₹95.61 to the US dollar, 14 September 2026. Apple charges the rupee price shown at enrolment, which will not track the spot rate exactly.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. When it is not worth it
&lt;/h2&gt;

&lt;p&gt;Be honest with yourself about the ₹9,500 a year. If you are shipping a free app with no revenue model, no update plan and no users waiting for it, an iOS build is a subscription you will resent in month fourteen. Ship Android first — US$25, once, forever — see whether anyone wants the thing, and buy the Apple membership when there is a reason to.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. The paid option, stated plainly
&lt;/h2&gt;

&lt;p&gt;If you would rather not learn App Store Connect: ZoopCoder does the whole submission — app record, listing, App Privacy labels, age rating, export compliance, build upload, review notes and demo login — for a fixed &lt;strong&gt;₹4,999&lt;/strong&gt;, sent to Apple review in 2–3 working days. That is &lt;a href="https://zoopcoder.com/services/app-store-ios-app-publishing.php" rel="noopener noreferrer"&gt;the service page&lt;/a&gt;, price and scope on it. The ₹4,999 is on top of Apple's US$99, not instead of it, and nobody outside Apple can promise you approval — treat anyone who does as a red flag.&lt;/p&gt;

&lt;p&gt;If you are still costing the build itself, we keep an itemised breakdown at &lt;a href="https://zoopcoder.com/guides/mobile-app-development-cost-in-india.php" rel="noopener noreferrer"&gt;mobile app development cost in India&lt;/a&gt;, including the yearly fees both stores charge.&lt;/p&gt;

&lt;p&gt;Corrections welcome — if Apple changes a number, tell me and I will fix the post.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>startup</category>
      <category>mobile</category>
      <category>appstore</category>
    </item>
    <item>
      <title>What it actually costs to publish an Android app on Google Play from India (2026 numbers)</title>
      <dc:creator>Preciousky</dc:creator>
      <pubDate>Mon, 14 Sep 2026 20:01:32 +0000</pubDate>
      <link>https://dev.to/preciousky_45d956626d31c3/what-it-actually-costs-to-publish-an-android-app-on-google-play-from-india-2026-numbers-abk</link>
      <guid>https://dev.to/preciousky_45d956626d31c3/what-it-actually-costs-to-publish-an-android-app-on-google-play-from-india-2026-numbers-abk</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I work at &lt;a href="https://zoopcoder.com/" rel="noopener noreferrer"&gt;ZoopCoder&lt;/a&gt;, an Indian development shop that sells a paid Play Store submission service. That price is at the bottom. Everything above it is the same thing I would tell you for free, and every &lt;em&gt;fee&lt;/em&gt; in this post is paid to Google or Apple, not to us.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Someone asks "how much does it cost to publish an app on the Play Store" roughly every day. They get told "$25", they pay the $25, and then three weeks later they are still not live because of a rule nobody mentioned. Here are the real numbers as of September 2026, from doing this repeatedly for Indian clients.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The fee is US$25, once, and that is genuinely all of it
&lt;/h2&gt;

&lt;p&gt;A Google Play developer account costs a &lt;strong&gt;one-time US$25 registration fee&lt;/strong&gt; — about &lt;strong&gt;₹2,400&lt;/strong&gt; on an Indian card at today's rate, plus whatever forex markup your bank adds. There is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;no annual renewal&lt;/strong&gt; — you pay once and the account is yours;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;no per-app charge&lt;/strong&gt; — one account can hold as many apps as you want;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;no charge to push updates&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the single biggest difference from Apple, which charges &lt;strong&gt;US$99 every year&lt;/strong&gt; and delists your app if you stop paying. If you are choosing which platform to ship first on a tight budget, that asymmetry matters more than any development cost.&lt;/p&gt;

&lt;p&gt;The one thing Google does take is a &lt;strong&gt;service fee of 15–30% on in-app purchases and subscriptions&lt;/strong&gt; — 15% on the first US$1M of yearly earnings for most developers. If your app takes money for physical goods or services delivered outside the app, that fee does not apply.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The cost that is not money: the 14-day, 12-tester clock
&lt;/h2&gt;

&lt;p&gt;This is the one that ruins launch dates.&lt;/p&gt;

&lt;p&gt;If your developer account was registered as a &lt;strong&gt;personal account&lt;/strong&gt; after &lt;strong&gt;13 November 2023&lt;/strong&gt;, Google will not give you production access until you have run a &lt;strong&gt;closed test with at least 12 testers who stay opted in continuously for 14 days&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Read that carefully, because each clause bites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;12 testers&lt;/strong&gt; — real Google accounts that actually opt in. Not 12 email addresses you own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;14 continuous days&lt;/strong&gt; — the clock starts when the test starts, not when you apply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If testers drop below the threshold&lt;/strong&gt;, the clock effectively restarts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Organisation accounts&lt;/strong&gt; (a registered company, D-U-N-S verified) are exempt from this entirely. If you are a registered company and you have a choice, register the developer account as the organisation on day one, not at the end of the project. It is free and it saves you two to three weeks.&lt;/p&gt;

&lt;p&gt;Nobody can shorten this for you. Any service that offers to "provide testers" is offering you a policy violation — Google treats fake tester accounts as exactly that.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. You cannot upload an APK, and you cannot target an old SDK
&lt;/h2&gt;

&lt;p&gt;Two hard technical gates that catch people using app builders and free converters:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Since&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Android App Bundle (.aab)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;August 2021 for new apps&lt;/td&gt;
&lt;td&gt;A plain &lt;code&gt;.apk&lt;/code&gt; will be rejected at upload.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Target API 36 (Android 16)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Current Play requirement&lt;/td&gt;
&lt;td&gt;Building against an older &lt;code&gt;targetSdk&lt;/code&gt; blocks the upload, not just new features.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you exported your app from a free "website to app" tool, check both of these &lt;em&gt;before&lt;/em&gt; you pay for anything else. A large share of those tools still emit an APK built against an older target API, and some do not let you supply your own signing key — which means you could never publish an update under your own account even if the first upload succeeded.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The five declarations that actually cause first rejections
&lt;/h2&gt;

&lt;p&gt;The upload is the easy part. First submissions get bounced on paperwork far more often than on code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data safety form that does not match reality.&lt;/strong&gt; You declare what the app collects and shares. If your app pulls the advertising ID or device identifiers through an SDK you forgot about, and the form says it collects nothing, that is a mismatch and a rejection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing or unreachable privacy policy URL.&lt;/strong&gt; It must be a live, public URL, on your own domain, reachable without a login.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrong target-audience answer.&lt;/strong&gt; Answering "children" pulls in a whole extra set of Families policy requirements. Answering it carelessly is a policy problem, not a form problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App access credentials the reviewer cannot use.&lt;/strong&gt; If any part of the app is behind a login, you must give a working demo account. Expired or 2FA-protected demo logins are a very common bounce.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content rating questionnaire (IARC) answered inconsistently&lt;/strong&gt; with what the app actually does.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these need a developer to fix. All of them need someone to actually read the app's behaviour instead of clicking through the form.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. A realistic end-to-end budget (Indian solo founder, app already built)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Line item&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Paid to&lt;/th&gt;
&lt;th&gt;Frequency&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Google Play developer account&lt;/td&gt;
&lt;td&gt;US$25 (≈ ₹2,400)&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Once, forever&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy policy page&lt;/td&gt;
&lt;td&gt;₹0 if you write it yourself&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Store listing copy + screenshots&lt;/td&gt;
&lt;td&gt;₹0–₹5,000&lt;/td&gt;
&lt;td&gt;Designer, or yourself&lt;/td&gt;
&lt;td&gt;Once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Console submission work&lt;/td&gt;
&lt;td&gt;₹0 if you do it yourself&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Per app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Apple, if you also want iOS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$99 (≈ ₹9,500)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Apple&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Every year&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So: an Android-only launch for an app that already exists can genuinely cost you &lt;strong&gt;one payment of about ₹2,400&lt;/strong&gt; and a fortnight of waiting. That is the honest answer, and it is why I think "how much does it cost to publish an app" is usually the wrong question — the expensive parts are the app and the fourteen days, not the fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Where we fit, since I said I'd be upfront
&lt;/h2&gt;

&lt;p&gt;If you would rather not spend an evening inside Play Console:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ZoopCoder submits an app to Google Play for a fixed ₹1,999&lt;/strong&gt; — store listing, IARC content rating, Data safety form, target audience, app access declarations, the release itself, and the first round of Google's review feedback. Typically sent for review within 1–2 working days of getting the files. Details and scope: &lt;a href="https://zoopcoder.com/services/play-store-app-publishing.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/services/play-store-app-publishing.php&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;If what you are publishing is &lt;strong&gt;an existing website&lt;/strong&gt;, we build it into a signed, Play-ready AAB targeting API 36 for a fixed &lt;strong&gt;₹4,999&lt;/strong&gt;: &lt;a href="https://zoopcoder.com/services/website-to-android-app.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/services/website-to-android-app.php&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The US$25 is still yours to pay to Google, the app is published under &lt;strong&gt;your&lt;/strong&gt; account, and nobody — us included — can guarantee that Google approves it. Anyone who tells you otherwise is selling you something they do not control.&lt;/p&gt;

&lt;p&gt;If the part you are actually worried about is the calendar rather than the console, we wrote up where the tester window fits into a real Android launch plan here: &lt;a href="https://zoopcoder.com/guides/how-long-to-build-app-website-india.php" rel="noopener noreferrer"&gt;https://zoopcoder.com/guides/how-long-to-build-app-website-india.php&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Numbers checked September 2026. If Google has changed a threshold since, the Play Console policy pages win over this post — tell me in the comments and I will correct it.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>android</category>
      <category>mobile</category>
    </item>
  </channel>
</rss>
