trkit
npx create-trkit-app · Next.js 16

Next.js, Türkiye ayarlarıyla.

KVKK metinleri, çerez onayı, il ve ilçeler, TCKN ve IBAN doğrulama, iyzico, PayTR, Netgsm. Her yeni projede baştan yazdığınız ne varsa, tek komutla ve test edilmiş olarak gelir.
$
~/projeler — zsh
❯ 

Türkçe, varsayılan ayarlarla doğru çalışmaz.

Aşağıdaki çıktılar bu sayfa derlenirken JavaScript ve trkit tarafından üretildi.
KonuYaygın kullanımtrkitNeden
Büyük harf
"istanbul".toUpperCase()ISTANBUL
buyukHarf("istanbul")İSTANBUL
Noktalı i'nin büyüğü İ'dir. Arama, sıralama ve slug üretimi de aynı sorunu yaşar.
Sunucu saati
d.toLocaleDateString("tr-TR")06.11.2026
tarih(d)7 Kasım 2026
Sunucunuz UTC'de, müşteriniz İstanbul'da. Gece 01:30'daki sipariş bir gün önceye yazılır.
Para
0.1 + 0.20.30000000000000004
tl(10 + 20)0,30 ₺
trkit tutarları kuruş cinsinden tamsayı tutar. iyzico ve PayTR'ye doğru biçimde çevrilir.
Ekler
`${il}'a teslimat`Ankara'a teslimat
`${hal(il, "yonelme")} teslimat`Ankara'ya teslimat
Ünlü uyumu, kaynaştırma ve sertleşme: Sinop'ta, Kadıköy'den, 34'e.

Kendiniz deneyin.

Bu kutu, projelerinize kurulan paketlerin aynısını tarayıcınızda çalıştırıyor. Sunucuya hiçbir şey gönderilmez.
parseTrIban(girdi)
geçerlievet
biçimliTR29 0006 4000 0011 2345 6789 01
banka kodu00064
bankaTürkiye İş Bankası
hesap no0000112345678901

81 il, 973 ilçe. Paketin içinde.

Harici API veya anahtar gerekmez. Bölge, alan kodu ve ilçe listesiyle birlikte 15 KB. İl/ilçe seçici ve arama bileşenleri npx trkit add il-ilce-secici ile projenize kopyalanır.
Bir plakanın üzerine gelin veya bölge seçin.
MarmaraEgeAkdenizİç AnadoluKaradenizDoğu AnadoluGüneydoğu Anadolu

Yasal metinler kopyala-yapıştır değil, yapılandırma.

Şirket bilgilerinizi trkit.config.ts dosyasına yazın; aydınlatma metni, mesafeli satış sözleşmesi ve diğerleri buradan üretilir. Ödeme sağlayıcınız aktarım listesine kendiliğinden eklenir. Eksik bilgiler sessizce boş kalmaz.
KVKK Aydınlatma Metni (önizleme)
npx trkit check
KVKK Aydınlatma Metni
MERSİS no eksik
Açık Rıza Metni
Çerez Politikası
Mesafeli Satış Sözleşmesi
MERSİS no eksikTelefon eksik
Ön Bilgilendirme Formu
MERSİS no eksikTelefon eksik

Asistanınız kuralları ilk günden bilir.

Her projeye AGENTS.md, CLAUDE.md, Cursor kuralları ve trkit MCP ayarları eklenir. "Bu siteye iyzico ekle" dediğinizde asistan sırları sunucuda tutar, tutarı kuruşla hesaplar, sonucu callback'te doğrular.
AGENTS.md
CLAUDE.md · .cursor/rules · .mcp.json
**Para**
- Tutarlar **kuruş cinsinden tamsayı** tutulur (129,50 ₺ → `12950`). Float ile para hesabı yapma.
- Gösterim: `tl(12950)` → "129,50 ₺" (`@trkit-app-pack/format`). Kullanıcı girdisi: `tlParse("1.299,50")`.

**Tarih**
- Sunucu UTC çalışır. Tarihleri her zaman `tarih()`, `tarihSaat()`, `goreli()` (`@trkit-app-pack/format`) ile göster; bunlar `Europe/Istanbul` saat dilimini kullanır. `new Date().toLocaleDateString()` kullanma.

**Formlar ve doğrulama**
- zod'u `@/lib/zod` içinden içe aktar (Türkçe hata mesajları orada ayarlı): `import { z } from "@/lib/zod"`.
- Hazır şemalar: `import { tckn, vkn, vergiNo, iban, telefon, cepTelefonu, plaka, postaKodu } from "@trkit-app-pack/validate"`.
  `telefon` ve `cepTelefonu` E.164'e (`+905...`) dönüştürür; veritabanına dönüşmüş değeri yaz.
- İl/ilçe için `<IlIlceSecici>` (`@/components/trkit/il-ilce-secici`) kullan, sunucuda `isValidDistrict(il, ilce)` ile doğrula. İl/ilçe listesini elle yazma.
- Örnek: `src/app/iletisim/` (server action + useActionState + zod).

**KVKK ve yasal metinler**
- Yasal metinleri **elle yazma**. Şirket bilgilerini `src/trkit.config.ts` içinde güncelle; sayfalar oradan üretilir.
- Kişisel veri toplayan her formun yanında Aydınlatma Metni (`/kvkk`) bağlantısı olmalı. Aydınlatma için onay kutusu konmaz; bilgilendirme metni yeterlidir.
- Açık rıza yalnızca hukuki sebebi olmayan işlemler (pazarlama, konum) için, ayrı ve **önceden işaretsiz** kutuyla alınır; hizmet şartına bağlanamaz.
- Ticari ileti (SMS/e-posta kampanya) izni ayrı ve isteğe bağlıdır.
- Google Analytics, Meta Pixel gibi script'ler `<ConsentGate category="analitik">` / `"pazarlama"` içine alınır; onaydan önce yüklenmez.
- Yurt dışı servis (Vercel, AWS, GA) eklendiğinde `trkit.config.ts` → `kvkk.yurtDisiAktarim` güncellenmeli.
- Kullanıcıya yasal metinlerin avukat kontrolünden geçmesi gerektiğini hatırlat.

**Ödeme ve SMS** (`npx trkit add odeme` / `npx trkit add sms` ile eklenir)
- Gizli anahtarlar yalnızca sunucuda. `@/lib/pay` ve `@/lib/sms` dosyaları `server-only` içerir; client component'ten içe aktarma.
- Ödemenin başarılı olduğuna yalnızca `/api/odeme/callback` içinde `pay.verifyCallback()` sonucuna göre karar ver.
- Sepet toplamı (`unitPrice × quantity`) `amount`'a eşit olmalı; kargo ayrı kalem.
- Ödeme adımında `<OdemeOnaylari>` ile ön bilgilendirme + mesafeli satış onayı alınır.

Parça parça da kullanılır.

Mevcut projenize yalnızca ihtiyacınızı ekleyin. Çekirdek paketlerin çalışma zamanı bağımlılığı yoktur; Node.js ve Edge'de çalışır.
create-trkit-appTek komutla Türkçe Next.js projesi; minimal, kurumsal ve e-ticaret şablonları
@trkit-app-pack/validateTCKN, VKN, IBAN, telefon, plaka; zod şemaları ve Türkçe hata mesajları
@trkit-app-pack/formatTL, İstanbul saatiyle tarih, göreli zaman, tutarı yazıya çevirme, hâl ekleri
@trkit-app-pack/address81 il, 973 ilçe; Türkçe karakter duyarsız arama
@trkit-app-pack/legalSekiz yasal metin şablonu, çerez onayı, onay kayıtları
@trkit-app-pack/payiyzico ve PayTR için tek arayüz; imza doğrulama, iade
@trkit-app-pack/smsNetgsm, İYS filtresi, sınırlı denemeli OTP
@trkit-app-pack/mcpAI asistanları için MCP sunucusu

Bir sonraki projeniz bununla başlasın.

$