# goldsword.dev ## Geliştirici hakkında **Ağırlıklı olarak mobil uygulama ve SaaS ürünleri geliştiriyorum.** Gaziantep'te yaşayan, full-stack çalışan freelance bir yazılım geliştiriciyim; 30'dan fazla ticari projede geliştirme yaptım. Projeyi fikir aşamasından yayına kadar tek başıma götürürüm. Ekip de taşeron da yok: Kapsamdan mağazaya çıkışa, sonrasına kadar muhatabınız tek kişi. Trakya Üniversitesi Mobil Teknolojileri programından 2025'te mezun oldum (3,79/4,00). ## Çalışma biçimi - **Uçtan uca:** Tasarım, frontend, backend ve yayına alma (deploy) işini tek başıma yaparım; muhatabınız tek kişidir. - **Yayındaki işler:** Demo projelerle sınırlı kalmadım; müşteriler için yayında çalışan sistemler kurdum. Örnekleri aşağıdaki Projeler bölümünde. - **Kısa karar zinciri:** Tek kişi olduğum için araya onay zinciri girmez; dolayısıyla geri bildirimi doğrudan koda yansıtırım. - **Araçlar:** Bugün en çok Astro, React, Expo ve Supabase ile çalışıyorum. - **Mimari ve planlama:** Kod yazmadan önce ihtiyacı ve veri modelini çıkarır, gerekirse teknik araştırma yaparım. Yapıyı, ürünün ileride büyüyebileceğini hesaba katarak kurarım. - **Yayına alma:** Projeyi Vercel'de, Docker'la ya da Hetzner gibi bir VPS'te yayına alırım; güncellemeler için CI/CD kurarım. ## Süreç 1. **İhtiyaç:** Önce neyin gerektiğini birlikte netleştiririz. 2. **Sade çözüm:** İşin gerektirmediği karmaşıklığı eklemem. 3. **Aşamalar:** Önce çalışan ilk sürüm (MVP), sonra geliştirme, gerekirse ölçekleme. 4. **İletişim:** Her aşamada ne yapıldığını ve sırada ne olduğunu size bildiririm. ## Hizmetler - **Mobil uygulama geliştirme:** Fikir aşamasından App Store ve Google Play'deki yayına kadar. Ayrıntılar: https://goldsword.dev/mobil-uygulama-gelistirme - **Web geliştirme:** Hızı ve teknik SEO'su baştan düşünülmüş web siteleri. Ayrıntılar: https://goldsword.dev/web-site-yapimi-gaziantep - **Teknik SEO:** Google'ın siteyi tarayıp dizine ekleyebilmesi için gereken teknik altyapı ve sayfa hızı. - **Android yazılım desteği:** Açılmayan, güncellemeden sonra bozulan ya da yavaşlayan Android cihazların yazılım tarafı: kurtarma, ROM ve veri. Ayrıntılar: https://goldsword.dev/android-destek ## Projeler ### [Kafadar: Arkadaşlık Testi (Mobil)](https://goldsword.dev/portfolio/kafadar-mobile) **8 Mart 2026'dan beri Google Play'de.** Kendi hakkınızda test yazıp tek bağlantıyla paylaştığınız Android uygulaması. İşin zoru, bağlantının uygulama kurulu olsa da olmasa da doğru yere varması. - **Ayrıntılar**: Kendi uygulamam. Kullanıcı kendi hakkında sorular yazar, tek bir bağlantı paylaşır ve arkadaşlarının onu ne kadar tanıdığını görür. Böyle bir uygulamada her şey o bağlantıya dayanır. Dolayısıyla aynı adres üç farklı ziyaretçiye cevap vermek zorunda: uygulaması kurulu olan kişiye, kurulu olmayan kişiye ve bağlantı bir sohbete yapıştırılınca ön izleme çeken sunucuya. Uygulama kuruluysa Android App Links sayesinde işletim sistemi bağlantıyı webe uğratmadan uygulamaya verir; kurulu değilse veri tabanına hiç bağlanmayan statik bir Astro sitesi karşılar. Veri tarafı dört tablolu bir Supabase şeması. Uygulamayı Şubat ve Mart 2026'da 25 günde 108 commit'le yazdım; 8 Mart 2026'dan beri Google Play'de. - **Teknik karar**: Paylaşım bağlantısını, uygulama kuruluysa Android App Links ile doğrudan uygulamaya, kurulu değilse veri tabanına bağlanmayan statik bir Astro sitesine yönlendirdim. - **Vaka çalışması**: https://goldsword.dev/vaka-calismalari/kafadar - **Teknolojiler**: React Native, Expo SDK 54, Expo Router, Supabase, TanStack Query, Zustand, NativeWind, Astro, AdMob ### [Get Yo: Mobil Uygulama (Mobil)](https://goldsword.dev/portfolio/getyo-mobile) **App Store ve Google Play'de yayında; işletme Nisan 2026'da el değiştirdi ve teknik devri ben yaptım.** New Jersey'deki bir frozen yogurt dükkânının iOS ve Android uygulaması: günün tatları, sadakat puanı ve tat oylaması. Menüyü yönetim paneli ve siteyle paylaşır. - **Ayrıntılar**: New Jersey, Marlboro'daki bir frozen yogurt dükkânı için Ağustos 2025 ile Mayıs 2026 arasında üç uygulama yazdım: iOS ve Android uygulaması, personelin kullandığı yönetim paneli ve dükkânın sitesi. Üçü de aynı menüyü, aynı puan bakiyesini ve aynı çalışma saatlerini okur; personel bir tadı tükendi diye işaretleyince telefondaki liste de değişir, yeni sürüm gerekmez. Sadakat programı işletmenin kullandığı RewardUp'ta; 12 tek işlevli sunucu fonksiyonu RewardUp anahtarını isteğe sunucu tarafında ekler, anahtar uygulamanın içine hiç girmez. Uygulama 4 Kasım 2025'ten beri App Store'da, Google Play'de de yayında. İşletme 22 Nisan 2026'da el değiştirdi; alan adlarını, Supabase'i, Vercel'i, e-posta servisini ve iki mağaza kaydını yeni sahibine ben devrettim. 2.0.0 sürümü devirden sonra, 19 Mayıs 2026'da çıktı. Kodun dışında da çalıştım: Dükkânın baskı tasarımlarını hazırladım, bir dönem sosyal medya hesaplarını yönettim, hatta dükkânın videosunu çekip kurguladım. - **Teknik karar**: Sadakat sağlayıcısının API anahtarını uygulamaya koymak yerine 12 tek işlevli sunucu fonksiyonu yazdım; anahtar telefona hiç inmiyor. - **Vaka çalışması**: https://goldsword.dev/vaka-calismalari/getyo - **Teknolojiler**: React Native, Expo SDK 54, Expo Router, Supabase, Edge Functions, RewardUp API, Expo Push, Zustand, NativeWind ### [İngilizceciyiz (Mobil)](https://goldsword.dev/portfolio/ingilizceciyiz) **23K+ indirme (App Store 13.594, Google Play 10.000+); 9 Ekim 2026 itibarıyla 6.679 öğretmen hesabı, 3.416 öğretmenin ürettiği 28.963 belge.** İngilizce öğretmenlerinin resmî evrakını, bir kez girdikleri bilgilerle hazırlayan uygulama. 2023'ten beri mağazada; 2025'te devralıp platformu sıfırdan yazdım. - **Ayrıntılar**: Türkiye'de bir İngilizce öğretmeni her dönem bir yığın resmî evrak teslim eder: yıllık ve günlük planlar, BEP ve DYK planları, seçmeli ders planları, kulüp dosyaları, zümre ve ŞÖK tutanakları. Üstelik hepsi aynı bilgileri yeniden ister. Uygulama Eylül 2023'ten beri mağazadaydı; Ağustos 2025'te tek geliştirici olarak devraldım ve platformun tamamını sıfırdan yazdım, yeni hâli Nisan 2026'dan beri yayında. Öğretmen bilgisini bir kez girer; her resmî şablon kendi formunu üretir ve bilinen her alan dolu gelir. Belgeyi Supabase Edge Functions sunucuda hazırlar ve Word'de düzenlenebilir bir dosya olarak geri verir. 9 Ekim 2026 itibarıyla 6.679 öğretmen hesabı açıldı ve 3.416 öğretmen 28.963 belge üretti; uygulamanın App Store'da 13.594, Google Play'de 10.000'den fazla indirmesi var. - **Teknik karar**: Platformu sıfırdan yazdım. Expo uygulamasını ve Astro'daki site ile yönetim panelini tek bir Turborepo deposunda topladım; hepsi aynı SQL şemasını kullanıyor. Word belgelerini telefonda değil, sunucuda Supabase Edge Functions hazırlıyor. - **Vaka çalışması**: https://goldsword.dev/vaka-calismalari/ingilizceciyiz - **Teknolojiler**: Expo, React Native, NativeWind, Astro, Supabase, PostgreSQL, Edge Functions, RevenueCat, Turborepo, Cloudflare Pages ### [Yanıtla Kazan: Sohbet ve Arkadaşlık (Backend)](https://goldsword.dev/portfolio/yanitla-kazan) Var olan bir Flutter uygulamasının sunucu tarafını sıfırdan yazdım; gerçek zamanlı sohbeti ve arkadaşlık sistemini hem sunucuda hem uygulamada ekledim. - **Ayrıntılar**: Müşterinin uygulaması Flutter'la yazılmıştı ama arkasında çalışan bir sistem yoktu. API'yi sıfırdan yazdım: PostgreSQL şeması, Socket.io üzerinden mesajlaşma, Redis'te oturum ve önbellek. Sohbet ve arkadaşlık ekranlarını uygulama tarafında da ben yazdım, yani sunucu ile uygulama birlikte ilerledi. Fotoğraf paylaşımını, sesli mesajı ve emoji seçiciyi de bu sırada ekledim. Sunucuyu Docker'la paketleyip Nginx arkasında Hetzner'de yayına aldım. - **Teknolojiler**: Node.js, Express, Socket.io, PostgreSQL, Redis, Flutter, Docker, Nginx ### [Digital Detox Uygulaması (Mobil)](https://goldsword.dev/portfolio/digital-detox) Telefon kullanımını kısıtlayan Flutter uygulaması: Uygulamaları Android'de sistem seviyesinde engeller, seanslar tek başına ya da grupla yapılır. - **Ayrıntılar**: Kullanıcıların telefon bağımlılığını yönetmesine yardım eden uygulamayı Clean Architecture ile sıfırdan yazdım. Android'de engelleme sistem seviyesinde çalışıyor. En çok iki şey uğraştırdı: arka plandaki servisin seans bitene kadar kapanmaması ve grup seansının bütün cihazlarda aynı anda ilerlemesi. Hesaplar da veriler de Firebase'de. - **Teknolojiler**: Flutter, GetX, Firebase, AdMob, In-App Purchase ### [Frozen Yogurt Cafe: Web Sitesi (Web)](https://goldsword.dev/portfolio/frozen-yogurt-website) Get Yo dükkânının sitesi. Kapalı bir platformdan çıkarıp Mart 2026'da statik bir Astro sitesine taşıdım; menüyü ve çalışma saatlerini yönetim panelinden canlı okur. - **Ayrıntılar**: Get Yo dükkânının sitesi. İlk hâli Readdy adlı kapalı bir platformdaydı: Koda erişim yoktu ve iletişim formu bot mesajlarıyla doluyordu. Önce Next.js ile yeniden yazdım; forma reCAPTCHA ve sunucu tarafında doğrulama eklenince spam kesildi. Mart 2026'da siteyi Astro ve Tailwind'e taşıyıp statik çıktıya çevirdim. Statik bir sayfa menüyü istek anında üretemez; bu yüzden menüyü tarayıcı ayrıca ister, barındırma katmanı /api/* isteklerini yönetim paneline iletir ve panel, mobil uygulamanın okuduğu veri tabanından okur. Böylece sitedeki menü uygulamadakinden farklı olamaz. Astro'ya geçmeden önce yerel Lighthouse ölçümünde performans 18'di; 26 Ağustos 2026'da PageSpeed Insights mobilde performans, erişilebilirlik, en iyi uygulamalar ve SEO için 100, 96, 100 ve 100 ölçtü. - **Teknik karar**: Siteyi Readdy'den çıkarıp önce Next.js'e, Mart 2026'da statik Astro'ya taşıdım; menü yönetim panelinin açık API'sinden canlı geliyor. PageSpeed Insights mobil puanları: performans 100, erişilebilirlik 96, en iyi uygulamalar 100, SEO 100. - **Vaka çalışması**: https://goldsword.dev/vaka-calismalari/getyo - **Teknolojiler**: Astro, Tailwind CSS, Supabase, Vercel, reCAPTCHA, Resend ### [Legends of Aestera (Oyun)](https://goldsword.dev/portfolio/legends-of-aestera) Unity ile yaptığım 2B platform oyunu: iki oynanabilir karakter, elle tasarlanmış 20'den fazla bölüm ve boss savaşları. Google Play'de yayında. - **Ayrıntılar**: Kendi oyunum. Grafikleri hazır paketlerden aldım; mekanikleri ve bölüm tasarımını ben yaptım. Hareketler çift zıplama, duvarda koşma ve kaymaya dayanıyor. En çok zamanı dengeleme aldı: Bölümlerin zorluğunu, düşmanların yerini ve boss davranışlarını defalarca elden geçirdim. Oyun Google Play'de yayında. - **Teknolojiler**: Unity, C#, Android, AdMob ### [Numeric Wheel: Bulmaca Oyunu (Oyun)](https://goldsword.dev/portfolio/numeric-wheel) Çalışmayan bir HTML5 bulmaca oyununu Android'e taşıdım: Çökmelerini giderdim, Capacitor ile paketledim ve Google Play'e çıkardım. - **Ayrıntılar**: Müşterinin HTML5 bulmaca oyunu elime geldiğinde çöküyordu. Canvas tarafındaki hataları giderdim, oyunu Capacitor ile Android paketine aldım ve hedef sürümü API 21'den API 35'e (Android 15) taşıdım. İşi üç aşamada yaptım: Önce oyunu açılır hâle getirdim, sonra oynanışı tamamladım, en son reklamları ekleyip mağazanın istediklerini karşıladım. - **Teknolojiler**: HTML5, Capacitor, Android, AdMob, Canvas API ### [Mood Tracker: Arayüz Yenileme (Mobil)](https://goldsword.dev/portfolio/mood-tracker) Flutter ile yazılmış bir ruh hâli takip uygulamasının arayüzünü yeniledim; kodu ve kullanıcı verisini koruyup ekranları Material Design'a taşıdım. - **Ayrıntılar**: Uygulamayı yeniden yazmadım, yeniledim. Kod tabanı ve kullanıcı verisi olduğu gibi kaldı; ekranları, tipografiyi, renkleri ve boşlukları tek bir düzene oturttum. Koyu temada bazı ekranlar okunmuyordu, onu da bu sırada düzelttim. - **Teknolojiler**: Flutter, Firebase, Material Design ### [Nöbetçi Uygulaması (Mobil)](https://goldsword.dev/portfolio/nobet-app) Öğretmenlerin nöbet görevlerini takip ettiği bir React Native uygulaması. Müşterinin kodunu yeniden düzenleyip İngilizce dil desteği ekledim. - **Ayrıntılar**: Okul öğretmenlerinin nöbet görevlerini yönetmek için yazılmış bir mobil uygulama. Müşterinin elindeki kod birkaç büyük dosyada birikmişti; eklenen her yeni özellik başka bir yeri bozuyordu. Büyük dosyaları böldüm, tekrar eden kısımları ortak bileşenlere taşıdım, kullanılmayan kodu temizledim. Üstüne i18next ile İngilizce dil desteği ekledim. - **Teknolojiler**: React Native, Expo, AsyncStorage, i18next, NativeWind ### [Get Yo: Yönetim Paneli (Web)](https://goldsword.dev/portfolio/getyo-admin) Personel dükkânın menüsünü, çalışma saatlerini, oylamalarını ve bildirimlerini bu panelden yönetir. Mobil uygulama da site de menüyü buradan okur. - **Ayrıntılar**: Get Yo uygulamasının personel tarafı. Tatları, toppingleri, kategorileri, çalışma saatlerini, yorumları, geri bildirimleri, oylamayı, kullanıcıları ve bildirimleri personel buradan yönetir. Bir tadı bir kez düzenlemek yeter; mobil uygulama da dükkânın sitesi de değişikliği aynı veri tabanından okur, statik site menüyü tarayıcıda panelin açık API'sinden çeker. Personel bir tadı kaydederken bildirimi de açarsa panel yalnızca o kategoride bildirim almak isteyen müşterilerin cihazlarını seçer ve gönderimi bir sunucu fonksiyonuna bırakır. Doğum günü ödüllerini zamanlanmış bir fonksiyon gönderir, e-postalar Resend üzerinden çıkar. - **Vaka çalışması**: https://goldsword.dev/vaka-calismalari/getyo - **Teknolojiler**: Next.js, React 19, TypeScript, Supabase, Edge Functions, Expo Push, Resend, Tailwind CSS ### [Google My Business Optimizasyonu (SEO)](https://goldsword.dev/portfolio/gmb-optimizasyonu) Frozen Yogurt Cafe'nin o dönemki iki şubesi için Google işletme profillerini tamamladım ve fotoğraflarını düzenledim. Amaç yerel aramalarda görünmekti. - **Ayrıntılar**: Frozen Yogurt Cafe'nin Google işletme profilleri yarım kalmıştı: Bilgiler eksikti, fotoğrafların çözünürlüğü düşüktü, kategori yanlış seçilmişti. O dönem işletmenin iki şubesi vardı; ikisinin de eksik bilgilerini tamamladım, fotoğrafları yapay zekâ araçlarıyla iyileştirdim ve kadrajda kalan müşterilerin yüzlerini gizlilik için kapattım. Kategorileri ve anahtar kelimeleri de yerel aramaya göre yeniden seçtim. - **Teknolojiler**: Google Business Profile, Yerel SEO, AI Görsel İyileştirme ### [Grafik Tasarım Projeleri (Tasarım)](https://goldsword.dev/portfolio/graphic-design) Bir kuyumcu, bir mobilyacı ve bir mobil uygulama için logo, Instagram paylaşımı ve reklam görseli hazırladım. - **Ayrıntılar**: Yazılım dışında yaptığım tasarım işleri. Üç markanın görsel ihtiyacını Canva'da karşıladım: Emirhan Kuyumculuk için logo ve Instagram hikâyesi, Mobilyacı İkra için logo ve Instagram gönderileri, Get Yo uygulaması için reklam görseli. Get Yo dükkânında kullanılan baskı tasarımlarını da ben hazırladım. - **Teknolojiler**: Canva, Logo Tasarımı, Sosyal Medya Tasarımı, Marka Kimliği ### [Ödeme ve Görev Takibi (Web)](https://goldsword.dev/portfolio/tracker-web) Ödemeleri ve görevleri tek panelde toplayan web uygulaması. Son ödeme tarihi geçen kayıt kendiliğinden gecikmiş olarak işaretlenir. - **Ayrıntılar**: Kendi ihtiyacım için yazdım, zamanla başkalarının da kullanabileceği hâle geldi. Ödemeler ve görevler ayrı listelerde tutuluyor; son ödeme tarihi geçen bir kayıt kendiliğinden gecikmiş sayılır, ayrıca işaretlemeye gerek kalmaz. Kimin hangi kaydı göreceğine Postgres'in satır düzeyinde güvenliği (RLS) karar verir; herkes yalnızca kendi kayıtlarını görür. - **Teknolojiler**: Next.js 15, TypeScript, Supabase, PostgreSQL, Tailwind CSS, Framer Motion, Drag & Drop ### [QuSafe: Şifreli Kasa (Mobil)](https://goldsword.dev/portfolio/qusafe-mobile) **Google Play'de 1.4.0 sürümünde; 42 şifreli kasa hâlâ eşitleniyor.** Parolalar ve notlar için şifreli bir kasa. Anahtar ana paroladan cihazda türetilir ve cihazdan hiç çıkmaz; sunucu yalnızca okuyamadığı şifreli veriyi saklar. - **Ayrıntılar**: Kendi uygulamam: parolalar ve özel notlar için şifreli bir kasa. Şifreleme kararlarını hazır bir kütüphaneye bırakmak yerine kendim vermek istedim. Ana parola cihazda Argon2id ile (64 MiB bellek, üç geçiş) bir anahtara dönüşür; veri AES-256-GCM ile şifrelenir ve buluta giden blok hesaba bağlanır. Biyometrik kilit ana anahtarı saklamaz: Ana anahtarı rastgele üretilen ikinci bir anahtar sarar ve cihazın güvenli deposuna yalnızca o yazılır. Kasa önce cihazdaki şifreli depoya yazar, sonra bulutla eşitlenir; sunucu veriyi okuyamaz. Aralık 2025 ile Ocak 2026 arasında 636 commit'le yazdım. Uygulama yalnızca Android'de, Google Play'de 1.4.0 sürümünde; App Store sürümü yok. Bugün iki modül çalışıyor: parolalar ve notlar. 26 Ağustos 2026 itibarıyla 42 şifreli kasa hâlâ eşitleniyordu. - **Teknik karar**: Anahtar ana paroladan cihazda Argon2id ile türetiliyor ve cihazdan çıkmıyor; sunucu yalnızca okuyamadığı AES-256-GCM şifreli veriyi saklıyor. - **Vaka çalışması**: https://goldsword.dev/vaka-calismalari/qusafe - **Teknolojiler**: React Native, Expo SDK 54, Argon2id, AES-256-GCM, Quick Crypto, Supabase, MMKV, Zustand, RevenueCat, AdMob, Sentry ### [react-native-password-intelligence (Açık kaynak)](https://goldsword.dev/portfolio/react-native-password-intelligence) **npm'de 0.4.1, provenance imzalı; React Native Directory'de listeleniyor.** Türkçe parolaları tanıyan parola gücü kiti. Standart ölçerlerin zayıf saymadığı mehmet1907, karakartal ya da askim34 gibi kalıpları yakalar; npm'de, MIT lisansıyla. - **Ayrıntılar**: Standart parola ölçerler password123'ü zayıf sayar ama mehmet1907, karakartal ya da askim34 gibi Türkçe kalıpları zayıf bulmaz. Bu kit zxcvbn-ts motorunu Türkçeye özgü bir katmanla sarar: adlar ve soyadları, futbol kulüpleri, şehirler ve plakalar, markalar, sevgi sözcükleri ve klavye yürüyüşleri. Çekirdeği, React bağımlılığı taşımayan ayrı bir pakete (password-intelligence) ayırdım; React Native paketi bunun üzerine bir hook ve hazır bir ölçer bileşeni ekler. 0.4.0 sürümünde tam İngilizce parola listesi yerine en sık 4.000 parolayı gömerek paketin gzip boyutunu 236 kB'tan yaklaşık 37 kB'a indirdim. Altındaki Türkçe dil paketini zxcvbn-ts'e de ben ekledim (PR #315, birleştirildi). 0.4.1 sürümü 6 Eylül 2026'da npm provenance imzasıyla yayımlandı; paket React Native Directory'de iOS, Android, Web ve Expo Go desteğiyle listeleniyor. - **Teknik karar**: Tam İngilizce parola listesi yerine en sık 4.000 parolayı gömerek paketin gzip boyutunu 236 kB'tan yaklaşık 37 kB'a indirdim; çekirdeği React'siz ayrı bir pakete ayırdım. - **Teknolojiler**: TypeScript, React Native, zxcvbn-ts, Expo, Jest, Turborepo, GitHub Actions ### [xiaomi-bootloader-unlocker (Açık kaynak)](https://goldsword.dev/portfolio/xiaomi-bootloader-unlocker) Xiaomi'nin bootloader kilidi açma başvurusunu, günlük kota Pekin saatiyle gece yarısı sıfırlandığı anda gönderen Python komut satırı aracı. MIT lisanslı. - **Ayrıntılar**: Xiaomi, bootloader kilidi açma başvurularını günlük bir kotayla sınırlıyor ve kota Pekin saatiyle gece yarısı sıfırlanıyor. Bu araç Xiaomi hesabınızla giriş yapar, hesabın başvuruya uygun olup olmadığını kontrol eder ve sistem saatine güvenmeden Pekin saatini NTP'den alır. Sıfırlanma anında 15 ms arayla 30 paralel istek gönderir; hepsi yaklaşık 450 ms içinde çıkar. Sonuçlar terminale ve bir günlük dosyasına yazılır. MIT lisanslı; GitHub'da 8 yıldız ve 3 fork aldı. - **Teknik karar**: Araç, sistem saatine güvenmeden Pekin saatini NTP'den alır ve kota sıfırlandığı anda 15 ms arayla 30 paralel istek gönderir. - **Teknolojiler**: Python, Requests, urllib3, ntplib, Threading ## Vaka çalışmaları Kaynak kodları kapalı bazı işlerin ayrıntılı anlatımı: sorun, yapılan iş, teknoloji seçimleri, sonuç ve yolda bozulanlar. - [İngilizceciyiz](https://goldsword.dev/vaka-calismalari/ingilizceciyiz): Türkiye'deki öğretmenlerin her dönem teslim ettiği resmî evrakı, bir kez girilen bilgilerle kişiye özel olarak hazırlar. - Sonuç: 3.416 öğretmenin ürettiği 28.963 belge - Teknolojiler: Expo, Astro, Supabase, Turborepo - [Get Yo](https://goldsword.dev/vaka-calismalari/getyo): New Jersey'deki bir frozen yogurt dükkânı için mobil uygulama, yönetim paneli ve web sitesi; üçü de aynı menüyü ve aynı sadakat puanı bakiyesini paylaşıyor. - Sonuç: İki mağazada da yayına çıktı, ardından işletmeyle birlikte devredildi - Teknolojiler: Expo, Next.js, Astro, Supabase - [QuSafe](https://goldsword.dev/vaka-calismalari/qusafe): Anahtarın cihazda türetildiği bir parola ve not kasası; bu yüzden sunucunun elinde hiçbir zaman şifreli veriden başka bir şey olmuyor. - Sonuç: 42 şifreli kasa, son commit'ten yedi ay sonra hâlâ eşitleniyor - Teknolojiler: Expo, Supabase, Argon2id, AES-256-GCM - [Kafadar](https://goldsword.dev/vaka-calismalari/kafadar): Kendi hakkınızda yazıp tek bağlantıyla paylaştığınız bir test. Bağlantı, karşıdaki kişide uygulama kurulu olsa da olmasa da doğru yere varmak zorunda. - Sonuç: Mobilde ve masaüstünde PageSpeed'in her kategorisinde 100 (başlangıçta 84) - Teknolojiler: Expo, Astro, Supabase, AdMob ## Yazılar - [Silinen Fotoğraflar Geri Gelir mi, Nereye Bakmalısınız?](https://goldsword.dev/blog/silinen-fotograflar-geri-gelir-mi) - Telefonun hafızasından silinen fotoğraf çoğu zaman geri gelmez; geri gelen, başka yerdeki kopyasıdır. Nereye bakacağınızı, ne zaman gerçekten şansınız olduğunu ve fotoğrafın hâlâ yerinde olduğu tek durumu yazdım. - Tarih: 29.08.2026 - [Banka Uygulaması Açılmıyor: Cihazınız Güvenli Değil Hatası](https://goldsword.dev/blog/banka-uygulamasi-acilmiyor-guvenli-degil-hatasi) - Banka uygulaması açılmıyor, 'cihazınız güvenli değil' diyor, banka da bir sorun görmüyor. Aynı anda oyunlar, yayın uygulamaları ve bazı resmî uygulamalar da bozulduysa sebep tek: Telefon kendini doğrulayamıyor. - Tarih: 26.08.2026 - [Giriş Yapmak İçin Resmi WhatsApp Uygulamasına Sahip Olmanız Gerekir Hatası](https://goldsword.dev/blog/giris-yapmak-icin-resmi-whatsapp-hatasi) - Play Store'dan indirdiğiniz WhatsApp giriş yaptırmıyor. Sebep uygulamada değil, telefonda: Bootloader kilidi açıkken cihaz doğrulamadan geçemiyor. Hesabınıza bir şey olmaz, banka uygulamaları da aynı yerde takılır. - Tarih: 26.08.2026 - [HyperOS Güncellemesinden Sonra Telefon Açılmıyor: Verilerim Gider mi?](https://goldsword.dev/blog/hyperos-guncellemesi-sonrasi-telefon-acilmiyor) - Güncelleme yarıda kaldı, telefon logoda takılı. Bunun ne demek olduğunu, verilerin çoğu zaman neden silinmediğini, kurtarma menüsünde neye dokunmamanız gerektiğini ve hangi noktadan sonra işin bana kaldığını yazdım. - Tarih: 26.08.2026 - [Saudi Visa Bio Açılmıyor: Hangi Sorun Sizde, Hangisi Uygulamada](https://goldsword.dev/blog/saudi-visa-bio-acilmiyor) - Hac ve umre vizesinde ilk adım bu uygulama ve kaydı kimse sizin yerinize yapamaz. Uygulama hiç açılmıyorsa sebep telefonda olabilir; parmak izini okumuyorsa genelde değildir. İkisini ayırt etmek zaman kazandırır. - Tarih: 26.08.2026 - [Standart Parola Ölçerlerin Atladığı: mehmet1907 Sorunu](https://goldsword.dev/blog/standart-parola-olcerleri-mehmet1907) - Standart zxcvbn, mehmet1907 gibi Türkçe kalıpları zayıf saymıyor. 2.564 gerçek parolanın %30'unun kırıldığı çalışmayı, 5 milyonu aşkın sızıntı verisini ve noktalı/noktasız I sorununun çözümünü yazdım. - Tarih: 03.05.2026 - [Tutorial Hell'den Çıkış: AI ile Öğrenerek Üretmek](https://goldsword.dev/blog/ai-ile-ogrenerek-uretme-sanati) - Saatlerce eğitim izleyip hiçbir şey üretememe döngüsünü kırmak için yapay zekâyı nasıl kullandığımı yazdım: yalnızca kod yazdıran bir araç olarak değil, mimariyi birlikte düşündüğüm bir mentor olarak. - Tarih: 22.03.2026 - [Astro SEO: Trailing Slash '/' Sorunu ve Çözümü](https://goldsword.dev/blog/astro-trailing-slash-seo-sorunu-cozumu) - Astro ile yaptığım sitemde 39 sayfanın yalnızca 3'ü Google'da dizine girmişti. Sebep, sitemap ile canonical etiketi arasındaki trailing slash farkıydı. Sorunu nasıl bulup çözdüğümü anlatıyorum. - Tarih: 22.03.2026 - [Geliştirici Blogları İçin Markdown Şablonu ve SEO](https://goldsword.dev/blog/mukemmel-teknik-blog-sablonu) - Teknik yazılarımda okumayı kolaylaştırmak ve SEO'ya katkı sağlamak için kullandığım Markdown kalıpları. Yeni bir yazıya başlarken kopyaladığım şablon da yazının sonunda. - Tarih: 22.03.2026 - [EmailJS ve Vercel Üzerinde Environment Variable Sorunları](https://goldsword.dev/blog/emailjs-vercel-env-sorunu) - Vercel'de EmailJS değişkenlerinin PUBLIC_ ve NEXT_PUBLIC_ ön ekleri karışınca iletişim formum canlıda “The public key is required” hatası verdi. Sorunun iki sebebini ve çözümünü yazdım. - Tarih: 10.03.2026 - [Astro SEO İçin 10 Maddelik Teknik Kontrol Listesi](https://goldsword.dev/blog/astro-seo-10-madde-checklist) - Astro ile yaptığım siteleri yayına almadan önce kullandığım teknik SEO kontrol listesi: canonical, sitemap, görseller, meta etiketleri, yapılandırılmış veri ve performans için 10 madde. - Tarih: 15.02.2026 - [Gaziantep Web Sitesi Yapımı: Planlama ve Yayımlama](https://goldsword.dev/blog/gaziantep-web-sitesi-yapimi-rehberi) - Gaziantep'teki işletmeler için web sitesi yapımını adım adım anlattım: sitenin hedefi, site yapısı, altyapı seçimi, içerik planı, geliştirme ve yayından sonraki bakım. - Tarih: 15.02.2026 - [Astro sitemap-index.xml 404 Sorunu ve Çözümü](https://goldsword.dev/blog/sitemap-index-404-cozumu) - Astro projesinde sitemap-index.xml canlıda 404 verdiğinde baktığım yerler: sitemap entegrasyonu, robots.txt, build çıktısı ve vercel.json'daki yönlendirme kuralları. - Tarih: 15.02.2026 Bütün yazılar: https://goldsword.dev/blog ## İletişim Yeni bir ürün, var olan bir sistemin iyileştirilmesi ya da Android cihazınızdaki bir sorun için yazabilirsiniz. - **E-posta:** mobilteknolojileri@gmail.com - **Web:** https://goldsword.dev - **GitHub:** https://github.com/mobilteknolojileri - **Bionluk:** https://bionluk.com/goldsword