<?xml version="1.0" encoding="UTF-8"?>
<!--
  RSS feed for the English blog. Generated from en/blog/ — do not edit by hand.
  Date format: RFC-822.
-->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Demir Taşdemir — Blog</title>
    <link>https://demirtasdemir.com/en/blog/</link>
    <description>Field notes on mobile app development, backend work and technical SEO.</description>
    <language>en-US</language>
    <lastBuildDate>Sat, 15 Aug 2026 09:00:00 +0000</lastBuildDate>
    <atom:link href="https://demirtasdemir.com/en/blog/rss.xml" rel="self" type="application/rss+xml"/>

  <item>
    <title>Putting the Model on the Phone, Not in the Cloud</title>
    <link>https://demirtasdemir.com/en/blog/cihaz-ustunde-yapay-zeka.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/cihaz-ustunde-yapay-zeka.html</guid>
    <description>Putting the model in the cloud is the easy path. In most of the R&amp;D work I designed I chose to run it on the phone instead; this post covers what that decision bought me and what it cost.</description>
    <pubDate>Sat, 15 Aug 2026 09:00:00 +0000</pubDate>
    <category>R&amp;D</category>
  </item>

  <item>
    <title>The Two Days I Lost to the Turkish "i"</title>
    <link>https://demirtasdemir.com/en/blog/turkce-i-harfi-hatasi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/turkce-i-harfi-hatasi.html</guid>
    <description>The app crashed for some users only. The cause was not the device but its language setting — and it came down to a single letter.</description>
    <pubDate>Fri, 14 Aug 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>The Hard Part Isn't the Model, It's the Data</title>
    <link>https://demirtasdemir.com/en/blog/veri-seti-olmadan-model.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/veri-seti-olmadan-model.html</guid>
    <description>Choosing the model was the easy part. The hard part was the gap between the clean lab photo in the open dataset and the picture a farmer takes in a hurry, in the shade.</description>
    <pubDate>Thu, 13 Aug 2026 09:00:00 +0000</pubDate>
    <category>R&amp;D</category>
  </item>

  <item>
    <title>Publishing on Google Play: 7 Ways It Differs from the App Store</title>
    <link>https://demirtasdemir.com/en/blog/google-play-yayin-deneyimleri.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/google-play-yayin-deneyimleri.html</guid>
    <description>I released my first apps on the Play Store and moved to iOS a year later. Staged rollouts, test channels, Data Safety and the target API requirement — the real differences between the two app stores.</description>
    <pubDate>Wed, 12 Aug 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>The App That Has to Work Without Internet</title>
    <link>https://demirtasdemir.com/en/blog/cevrimdisi-oncelikli-mimari.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/cevrimdisi-oncelikli-mimari.html</guid>
    <description>The moment an app is most useful is often the moment the internet is not working. The decisions and the trade-offs of offline-first architecture, seen through the design of Sağlam and the QR verification in Vakti Geçmeden.</description>
    <pubDate>Tue, 11 Aug 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>How I Read a Crash Report</title>
    <link>https://demirtasdemir.com/en/blog/cokme-raporu-okumak.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/cokme-raporu-okumak.html</guid>
    <description>Users don't report an app that crashes, they delete it. From symbolication to prioritization, my routine for tracking crashes after a release.</description>
    <pubDate>Sun, 09 Aug 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>"First to Find It Wins" Is Really a Race Condition Problem</title>
    <link>https://demirtasdemir.com/en/blog/tek-kazanan-garantisi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/tek-kazanan-garantisi.html</guid>
    <description>A one-sentence product rule — first to find it wins — turns into a race condition problem on the backend. Here is how I built the single-winner guarantee in Mysterious Treasure.</description>
    <pubDate>Sat, 08 Aug 2026 09:00:00 +0000</pubDate>
    <category>Backend</category>
  </item>

  <item>
    <title>Nobody Wants to Go First: The Escrow Flow</title>
    <link>https://demirtasdemir.com/en/blog/emanet-akisi-durum-makinesi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/emanet-akisi-durum-makinesi.html</guid>
    <description>The buyer will not send the money first and the seller will not hand over the ticket first. In 2.El Bilet I broke that deadlock not with a single button but with an escrow flow built from states that wait on each other.</description>
    <pubDate>Thu, 06 Aug 2026 09:00:00 +0000</pubDate>
    <category>Product</category>
  </item>

  <item>
    <title>7 Lessons from Shipping Apps to the App Store</title>
    <link>https://demirtasdemir.com/en/blog/app-store-yayin-rehberi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/app-store-yayin-rehberi.html</guid>
    <description>I moved to Swift in 2021 and have worked in the Apple ecosystem ever since. This post is an honest account of the rejections I collected along the way and the things I wish I had known for my first app.</description>
    <pubDate>Wed, 05 Aug 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Moving to Flutter After Writing Native in Three Languages</title>
    <link>https://demirtasdemir.com/en/blog/yerelden-fluttera-gecis.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/yerelden-fluttera-gecis.html</guid>
    <description>I stopped writing the same product twice. What a single codebase gained me, what I gave up in return, and how my native experience paid off once I started writing Flutter.</description>
    <pubDate>Tue, 04 Aug 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Good Enough Instead of Optimal</title>
    <link>https://demirtasdemir.com/en/blog/np-zor-problem-sezgisel.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/np-zor-problem-sezgisel.html</guid>
    <description>The vehicle routing problem is NP-hard: as the number of stops grows, an exact solution becomes impossible in practice. While designing RotaAkıl I saw that the gap between "optimal" and "good enough" is really a product decision.</description>
    <pubDate>Sun, 02 Aug 2026 09:00:00 +0000</pubDate>
    <category>R&amp;D</category>
  </item>

  <item>
    <title>Why Does the Firestore Bill Blow Up?</title>
    <link>https://demirtasdemir.com/en/blog/firestore-maliyet-kontrolu.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/firestore-maliyet-kontrolu.html</guid>
    <description>The bill tracks the number of reads, not the size of your data. Five patterns that inflate the cost: reads with no cache, listeners left open, N+1 queries, lists without pagination, and fetching everything just to count it.</description>
    <pubDate>Sat, 01 Aug 2026 09:00:00 +0000</pubDate>
    <category>Backend</category>
  </item>

  <item>
    <title>Swift Through the Eyes of Someone Coming from Java</title>
    <link>https://demirtasdemir.com/en/blog/swift-ogrenirken.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/swift-ogrenirken.html</guid>
    <description>I moved from Java to Swift in 2021, and what I wrote in those first weeks was really Java in Swift syntax. Through my own mistakes I go over where each old reflex misfired: optionals, value types, dispatch behavior in protocol extensions, ARC and closure capture lists.</description>
    <pubDate>Thu, 30 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>Building for the World, Not Just for Turkey</title>
    <link>https://demirtasdemir.com/en/blog/global-pazara-uygulama.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/global-pazara-uygulama.html</guid>
    <description>Localization is not translation. What has to change when you go global — from text length to currency, from regional pricing to the hour you send notifications.</description>
    <pubDate>Tue, 28 Jul 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Android with Java: Lessons Left Over from My First App</title>
    <link>https://demirtasdemir.com/en/blog/java-android-temelleri.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/java-android-temelleri.html</guid>
    <description>Writing my first Android app in Java in 2020, I fell into every trap one by one — from losing all the data when the screen rotated to memory leaks. In this post I go through the lifecycle, context leaks, the habits left over from the AsyncTask era and null checking, all through my own mistakes.</description>
    <pubDate>Mon, 27 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>Bringing Kotlin into a Java Project</title>
    <link>https://demirtasdemir.com/en/blog/kotlin-java-yaninda.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/kotlin-java-yaninda.html</guid>
    <description>I added Kotlin later to the Android projects I had written in Java in 2020. Instead of converting everything at once, I moved file by file. This post covers why platform types punch a hole in null safety, the spot that blows up at runtime when you use data classes with Firestore, how extension functions took the place of my Utils classes, and how I wrapped Firebase calls while moving from AsyncTask to coroutines — including the Java calls that broke and the @Jvm* annotations that fixed them.</description>
    <pubDate>Fri, 24 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>The Part of Push Notifications Nobody Tells You About</title>
    <link>https://demirtasdemir.com/en/blog/push-bildirim-gercekleri.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/push-bildirim-gercekleri.html</guid>
    <description>Why does a token die silently, when should you ask for permission, how do you get from a notification to the right screen? The real work starts after the setup.</description>
    <pubDate>Wed, 22 Jul 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Hardware with Python: Raspberry Pi and Arduino Notes</title>
    <link>https://demirtasdemir.com/en/blog/python-donanim.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/python-donanim.html</guid>
    <description>A year after learning Python I built an earthquake early-warning prototype with a Raspberry Pi and an Arduino. Instead of the flat line I expected on screen, I got a jittering cloud of numbers. What that project taught me about GPIO, serial lines, sampling, filtering and power.</description>
    <pubDate>Mon, 20 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>What Does It Mean When a User Says "Add This Feature"?</title>
    <link>https://demirtasdemir.com/en/blog/kullanici-ne-ister.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/kullanici-ne-ister.html</guid>
    <description>A user hands you a solution; what they are really describing is the problem they ran into. The questions I use to turn a request back into a problem, and how I prioritize from there.</description>
    <pubDate>Sun, 19 Jul 2026 09:00:00 +0000</pubDate>
    <category>Product</category>
  </item>

  <item>
    <title>Firebase or Supabase? Choosing a Backend for a Mobile App</title>
    <link>https://demirtasdemir.com/en/blog/firebase-mi-supabase-mi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/firebase-mi-supabase-mi.html</guid>
    <description>
            I have used both on real projects. Where each one shines, where each one hurts,
            and the 5 questions to ask yourself before you choose.
          </description>
    <pubDate>Sat, 18 Jul 2026 09:00:00 +0000</pubDate>
    <category>Backend</category>
  </item>

  <item>
    <title>First Month in Flutter: Getting Used to the Widget Tree</title>
    <link>https://demirtasdemir.com/en/blog/flutter-ilk-ay.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/flutter-ilk-ay.html</guid>
    <description>After six years of writing native apps in Swift, Java and Kotlin, I moved to Flutter. The hard part was not the syntax but the way you build the interface: immutable widgets, a build method that runs over and over, the scope setState covers, and where BuildContext sits in the tree. I go through what confused me in the first month and the mistakes I made, one by one.</description>
    <pubDate>Thu, 16 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>Cutting Scope: What Unshipped Features Taught Me</title>
    <link>https://demirtasdemir.com/en/blog/kapsami-daraltmak.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/kapsami-daraltmak.html</guid>
    <description>The most expensive part of a product is the features that get built and never used. The method I have followed since I started seeing scope cutting as a skill rather than a loss.</description>
    <pubDate>Wed, 15 Jul 2026 09:00:00 +0000</pubDate>
    <category>Product</category>
  </item>

  <item>
    <title>JavaScript Without a Framework: What Building This Site Taught Me</title>
    <link>https://demirtasdemir.com/en/blog/javascript-dom-temelleri.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/javascript-dom-temelleri.html</guid>
    <description>There is not a single JavaScript library on this site. Applying the theme before the first paint, IntersectionObserver, event delegation, and the scroll bug I found in my own code.</description>
    <pubDate>Mon, 13 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>Building an App That Works Offline, and Resolving Conflicts</title>
    <link>https://demirtasdemir.com/en/blog/cevrimdisi-senkronizasyon.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/cevrimdisi-senkronizasyon.html</guid>
    <description>Keeping the data locally is the easy part. The hard part is deciding which side wins when both of them change the same record.</description>
    <pubDate>Sun, 12 Jul 2026 09:00:00 +0000</pubDate>
    <category>Backend</category>
  </item>

  <item>
    <title>Never Trust the Client: The Foundation of Mobile App Security</title>
    <link>https://demirtasdemir.com/en/blog/istemciye-asla-guvenme.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/istemciye-asla-guvenme.html</guid>
    <description>A mobile app is a program that runs on the user's device and can be picked apart. Only one rule follows from that: nothing coming from the client can be taken as true. Here is what that rule means in practice.</description>
    <pubDate>Sat, 11 Jul 2026 09:00:00 +0000</pubDate>
    <category>Backend</category>
  </item>

  <item>
    <title>Modern CSS: Grid, Variables and Dark Mode</title>
    <link>https://demirtasdemir.com/en/blog/html-css-modern.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/html-css-modern.html</guid>
    <description>The theme system I built while writing this site in plain CSS, the grid overflows I fixed and the contrast corrections I made. No libraries, just real code.</description>
    <pubDate>Thu, 09 Jul 2026 09:00:00 +0000</pubDate>
    <category>Software</category>
  </item>

  <item>
    <title>Core Web Vitals: How Speed Became an SEO Problem</title>
    <link>https://demirtasdemir.com/en/blog/seo-site-hizi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/seo-site-hizi.html</guid>
    <description>Core Web Vitals really asks three simple questions: when did the page appear, did it stay in place after it appeared, and did it respond when it was touched. The typical mistakes that break these three metrics, and the concrete fixes I applied on the sites I delivered.</description>
    <pubDate>Mon, 06 Jul 2026 09:00:00 +0000</pubDate>
    <category>SEO &amp; Marketing</category>
  </item>

  <item>
    <title>Ads, Subscription or One-Time Purchase? Revenue Models for Apps</title>
    <link>https://demirtasdemir.com/en/blog/mobil-uygulama-gelir-modelleri.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/mobil-uygulama-gelir-modelleri.html</guid>
    <description>The wrong revenue model loses users faster than a bad interface. A comparison of the three models, the ad formats, and three places you should never put an interstitial.</description>
    <pubDate>Sun, 05 Jul 2026 09:00:00 +0000</pubDate>
    <category>Product</category>
  </item>

  <item>
    <title>Data Modeling in NoSQL: Forget the Table, Think About the Screen</title>
    <link>https://demirtasdemir.com/en/blog/nosql-veri-modelleme.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/nosql-veri-modelleme.html</guid>
    <description>In a relational database you normalize the data; in a document database you model the screen. The modeling approach I settled on after paying the price for understanding that difference too late.</description>
    <pubDate>Thu, 02 Jul 2026 09:00:00 +0000</pubDate>
    <category>Backend</category>
  </item>

  <item>
    <title>The Technical SEO Checklist I Run Before Launching a New Site</title>
    <link>https://demirtasdemir.com/en/blog/teknik-seo-kontrol-listesi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/teknik-seo-kontrol-listesi.html</guid>
    <description>
            I run the same list on every site I deliver. Steps to handle before you write any content —
            most take 10 minutes, but skipping them can leave you invisible for months.
          </description>
    <pubDate>Tue, 30 Jun 2026 09:00:00 +0000</pubDate>
    <category>SEO &amp; Marketing</category>
  </item>

  <item>
    <title>Teaching Yourself Software: What Actually Worked Over Seven Years</title>
    <link>https://demirtasdemir.com/en/blog/kendi-kendine-ogrenmek.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/kendi-kendine-ogrenmek.html</guid>
    <description>I have been teaching myself since 2018. The three habits that worked, the two methods that never did, and the order I follow when learning a new language.</description>
    <pubDate>Sat, 27 Jun 2026 09:00:00 +0000</pubDate>
    <category>Career</category>
  </item>

  <item>
    <title>Why App Size Matters and How to Shrink It</title>
    <link>https://demirtasdemir.com/en/blog/uygulama-boyutu-kucultme.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/uygulama-boyutu-kucultme.html</guid>
    <description>Size has a direct effect on your download and update rates. Concrete steps on App Bundle, R8, vector assets and content downloaded on demand.</description>
    <pubDate>Fri, 26 Jun 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Brand Voice: A Hundred Ways to Say the Same Thing</title>
    <link>https://demirtasdemir.com/en/blog/sosyal-medya-marka-sesi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/sosyal-medya-marka-sesi.html</guid>
    <description>A brand voice is not made by a slogan but by the small decisions taken every day. How I put the tone down in writing while running social media for two brands, the platform differences, the recurring formats and the content calendar.</description>
    <pubDate>Wed, 24 Jun 2026 09:00:00 +0000</pubDate>
    <category>Social Media</category>
  </item>

  <item>
    <title>The First 60 Seconds: What Keeps a User in the App</title>
    <link>https://demirtasdemir.com/en/blog/uygulama-ici-kullanici-deneyimi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/uygulama-ici-kullanici-deneyimi.html</guid>
    <description>When should you ask for permissions, does sign-up have to be mandatory, what should an empty screen say? Eight concrete steps to keep a freshly downloaded app from being deleted on day one.</description>
    <pubDate>Mon, 22 Jun 2026 09:00:00 +0000</pubDate>
    <category>Product</category>
  </item>

  <item>
    <title>Shipping a Product as a Student: What I Learned at 18</title>
    <link>https://demirtasdemir.com/en/blog/ogrenciyken-uretmek.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/ogrenciyken-uretmek.html</guid>
    <description>I published my first app at 18 and then pulled it myself — I knew how to build it, but not how to run it. The real constraints of shipping a product while still at school, and the lessons I took from that period.</description>
    <pubDate>Thu, 18 Jun 2026 09:00:00 +0000</pubDate>
    <category>Career</category>
  </item>

  <item>
    <title>The First 60 Seconds: What I Changed in the Onboarding Screens</title>
    <link>https://demirtasdemir.com/en/blog/onboarding-tasarimi.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/onboarding-tasarimi.html</guid>
    <description>The one minute a user spends the first time they open the app decides more than everything that comes after it. The decisions I made while building the onboarding flow, and the ones I dropped.</description>
    <pubDate>Tue, 16 Jun 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>From 2018 to 2026: From Python to 10+ Published Apps</title>
    <link>https://demirtasdemir.com/en/blog/yazilim-ogrenme-yolculugum.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/yazilim-ogrenme-yolculugum.html</guid>
    <description>
            The TÜBİTAK project I left unfinished, my first app that made money, and what I learned
            every time I switched languages. Not a straight success story — a list of what worked and what did not.
          </description>
    <pubDate>Fri, 12 Jun 2026 09:00:00 +0000</pubDate>
    <category>Career</category>
  </item>

  <item>
    <title>Two Stores, Two Cultures: App Store and Google Play Are Not the Same Job</title>
    <link>https://demirtasdemir.com/en/blog/iki-magaza-iki-kultur.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/iki-magaza-iki-kultur.html</guid>
    <description>I submitted the same app to both app stores; on the surface the processes look alike, in practice they are nothing alike. The differences — from review logic to test distribution, from rejection reasons to the store listing — and how I plan for each one.</description>
    <pubDate>Mon, 08 Jun 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Release Management on Mobile: Staged Rollout, Rollback and Forced Updates</title>
    <link>https://demirtasdemir.com/en/blog/surum-yonetimi-mobil.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/surum-yonetimi-mobil.html</guid>
    <description>On the web you can roll back a bad deploy; on mobile you cannot — the version on the user's phone is out of your hands. The release management setup I built around that fact.</description>
    <pubDate>Fri, 05 Jun 2026 09:00:00 +0000</pubDate>
    <category>Mobile Development</category>
  </item>

  <item>
    <title>Write the Benefit, Not the Feature: Rewriting App Copy from Scratch</title>
    <link>https://demirtasdemir.com/en/blog/ozellik-degil-fayda.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/ozellik-degil-fayda.html</guid>
    <description>Copy written by a developer usually explains "what it does", while the user is looking for an answer to "what's in it for me". The method I used to rewrite the store and interface copy for my own apps, shown through concrete sentences.</description>
    <pubDate>Tue, 02 Jun 2026 09:00:00 +0000</pubDate>
    <category>Social Media</category>
  </item>

  <item>
    <title>My App Is Live but Nobody Is Downloading It</title>
    <link>https://demirtasdemir.com/en/blog/uygulama-buyutme-aso.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/uygulama-buyutme-aso.html</guid>
    <description>I learned the expensive way that downloads do not arrive on their own once you publish. The steps I take to grow an app.</description>
    <pubDate>Thu, 28 May 2026 09:00:00 +0000</pubDate>
    <category>SEO &amp; Marketing</category>
  </item>

  <item>
    <title>Producing Content as a One-Person Team: The Loop I Built</title>
    <link>https://demirtasdemir.com/en/blog/icerik-uretim-dongusu.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/icerik-uretim-dongusu.html</guid>
    <description>The real problem in content production is not inspiration, it is consistency. The loop I put together when I had to build apps and publish at the same time — an idea pool, a batch shooting day, format templates and a single calendar.</description>
    <pubDate>Fri, 22 May 2026 09:00:00 +0000</pubDate>
    <category>Social Media</category>
  </item>

  <item>
    <title>Local Business SEO: What I Do to Show Up on the Map</title>
    <link>https://demirtasdemir.com/en/blog/yerel-isletme-seo.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/yerel-isletme-seo.html</guid>
    <description>Competition in local search works nothing like nationwide search: it comes down to distance, relevance and prominence. Step by step, the setup I build for businesses with a physical address — the profile, NAP consistency, page architecture and the review flow.</description>
    <pubDate>Mon, 18 May 2026 09:00:00 +0000</pubDate>
    <category>SEO &amp; Marketing</category>
  </item>

  <item>
    <title>Schema.org: Describing Your Page to Google with Data, Not Words</title>
    <link>https://demirtasdemir.com/en/blog/schema-org-yapisal-veri.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/schema-org-yapisal-veri.html</guid>
    <description>A search engine reads the text on your page but only guesses at "is this a service, a post or a person". JSON-LD removes exactly that guesswork. Which types I use and why, how I validate them, and the traps I fall into most often.</description>
    <pubDate>Thu, 14 May 2026 09:00:00 +0000</pubDate>
    <category>SEO &amp; Marketing</category>
  </item>

  <item>
    <title>As Important as the Code: What You Say and How You Say It</title>
    <link>https://demirtasdemir.com/en/blog/iletisim-ve-satis-dili.html</link>
    <guid isPermaLink="true">https://demirtasdemir.com/en/blog/iletisim-ve-satis-dili.html</guid>
    <description>The hard part of freelancing was never the code. Lessons on getting scope approved in writing, delivering bad news early, talking about price, and telling the benefit apart from the feature.</description>
    <pubDate>Sun, 10 May 2026 09:00:00 +0000</pubDate>
    <category>Career</category>
  </item>

  </channel>
</rss>
