- Özel nesneleri ve alanları kod olarak tanımlayın (yönetilen veri modeli)
- Özel tetikleyicilerle mantık işlevleri oluşturun (HTTP routes, cron, database events)
- Yapay zekâ ajanları için becerileri tanımlayın
- Twenty’nin UI’si içinde görüntülenen ön bileşenler oluşturun
- Aynı uygulamayı birden çok çalışma alanına dağıtın
Ön Gereksinimler
- Node.js 24+ ve Yarn 4
- Bir Twenty çalışma alanı ve bir API anahtarı (https://app.twenty.com/settings/api-webhooks adresinde oluşturun)
Başlarken
Resmi iskelet oluşturucu aracını kullanarak yeni bir uygulama oluşturun, ardından kimlik doğrulaması yapıp geliştirmeye başlayın:Proje yapısı (şablondan oluşturulmuş)
npx create-twenty-app@latest my-twenty-app komutunu çalıştırdığınızda iskelet oluşturucu şunları yapar:
- Minimal bir temel uygulamayı
my-twenty-app/içine kopyalar - Yerel bir
twenty-sdkbağımlılığı ve Yarn 4 yapılandırması ekler twentyCLI ile bağlantılı yapılandırma dosyaları ve betikler oluşturur- İskelet oluşturma moduna bağlı olarak çekirdek dosyaları (uygulama yapılandırması, varsayılan işlev rolü, kurulum öncesi ve kurulum sonrası işlevler) ile örnek dosyaları üretir
--exhaustive moduyla yeni oluşturulmuş bir uygulama şu şekilde görünür:
--minimal ile yalnızca çekirdek dosyalar oluşturulur (application-config.ts, roles/default-role.ts, logic-functions/pre-install.ts ve logic-functions/post-install.ts).
Genel hatlarıyla:
- package.json: Uygulama adını, sürümünü, motorları (Node 24+, Yarn 4) bildirir ve
twenty-sdkile yereltwentyCLI’sine yetki devreden birtwentybetiği ekler. Tüm mevcut komutları listelemek içinyarn twenty helpkomutunu çalıştırın. - .gitignore:
node_modules,.yarn,generated/(türlendirilmiş istemci),dist/,build/, kapsam klasörleri, günlük dosyaları ve.env*dosyaları gibi yaygın artifaktları yok sayar. - yarn.lock, .yarnrc.yml, .yarn/: Proje tarafından kullanılan Yarn 4 araç zincirini kilitler ve yapılandırır.
- .nvmrc: Projenin beklediği Node.js sürümünü sabitler.
- .oxlintrc.json ve tsconfig.json: Uygulamanızın TypeScript kaynakları için linting ve TypeScript yapılandırması sağlar.
- README.md: Uygulama kökünde temel talimatların yer aldığı kısa bir README.
- public/: Uygulamanızla birlikte sunulacak genel varlıkları (görseller, yazı tipleri, statik dosyalar) depolamak için bir klasör. Buraya yerleştirilen dosyalar senkronizasyon sırasında yüklenir ve çalışma zamanında erişilebilir olur.
- src/: Uygulamanızı kod olarak tanımladığınız ana yer
Varlık algılama
SDK, TypeScript dosyalarınızıexport default define<Entity>({...}) çağrılarını arayarak ayrıştırıp varlıkları algılar. Her varlık türünün, twenty-sdk tarafından dışa aktarılan karşılık gelen bir yardımcı fonksiyonu vardır:
| Yardımcı fonksiyon | Varlık türü |
|---|---|
defineObject | Özel nesne tanımları |
defineLogicFunction | Mantık işlevi tanımları |
definePreInstallLogicFunction | Kurulum öncesi mantık işlevi (kurulumdan önce çalışır) |
definePostInstallLogicFunction | Kurulum sonrası mantık işlevi (kurulumdan sonra çalışır) |
defineFrontComponent | Ön bileşen tanımları |
defineRole | Rol tanımları |
defineField | Mevcut nesneler için alan genişletmeleri |
defineView | Kaydedilmiş görünüm tanımları |
defineNavigationMenuItem | Gezinme menüsü öğesi tanımları |
defineSkill | Yapay zekâ ajanı yetenek tanımları |
Dosya adlandırma esnektir. Varlık algılama AST tabanlıdır — SDK, kaynak dosyalarınızı
export default define<Entity>({...}) desenini bulmak için tarar. Dosyalarınızı ve klasörlerinizi dilediğiniz gibi düzenleyebilirsiniz. Varlık türüne göre gruplama (örn. logic-functions/, roles/) bir gereklilik değil, yalnızca kod organizasyonu için bir gelenektir.yarn twenty app:dev,node_modules/twenty-sdk/generatediçinde iki tiplendirilmiş API istemcisini otomatik olarak oluşturur:CoreApiClient(/graphqlüzerinden çalışma alanı verileri için) veMetadataApiClient(çalışma alanı yapılandırması ve/metadataüzerinden dosya yüklemeleri için).yarn twenty entity:add, özel nesneleriniz, fonksiyonlarınız, ön bileşenleriniz, rolleriniz, yetenekleriniz ve daha fazlası içinsrc/altında varlık tanım dosyaları ekler.
Kimlik Doğrulama
yarn twenty auth:login komutunu ilk kez çalıştırdığınızda, sizden şunlar istenir:
- API URL’si (varsayılan: http://localhost:3000 veya mevcut çalışma alanı profiliniz)
- API anahtarı
~/.twenty/config.json içinde saklanır. Birden fazla profili yönetebilir ve aralarında geçiş yapabilirsiniz.
Çalışma alanlarını yönetme
yarn twenty auth:switch ile çalışma alanlarını değiştirdikten sonra, sonraki tüm komutlar varsayılan olarak o çalışma alanını kullanacaktır. Yine de bunu geçici olarak --workspace <name> ile geçersiz kılabilirsiniz.
Manuel kurulum (iskelet oluşturucu olmadan)
En iyi başlangıç deneyimi içincreate-twenty-app kullanmanızı önersek de, bir projeyi manuel olarak da kurabilirsiniz. CLI’yi global olarak kurmayın. Bunun yerine twenty-sdk’yi yerel bir bağımlılık olarak ekleyin ve package.json içinde tek bir betik tanımlayın:
twenty betiği ekleyin:
yarn twenty <command> üzerinden çalıştırabilirsiniz; örn. yarn twenty app:dev, yarn twenty help vb.
Sorun Giderme
- Kimlik doğrulama hataları:
yarn twenty auth:loginçalıştırın ve API anahtarınızın gerekli izinlere sahip olduğundan emin olun. - Sunucuya bağlanılamıyor: API URL’sini ve Twenty sunucusunun erişilebilir olduğunu doğrulayın.
- Türler veya istemci eksik/eski:
yarn twenty app:devkomutunu yeniden çalıştırın — tiplendirilmiş istemciyi otomatik olarak oluşturur. - Geliştirme modu eşitlenmiyor:
yarn twenty app:dev’in çalıştığından ve değişikliklerin ortamınız tarafından yok sayılmadığından emin olun.