Untuk pembangun

Pengehosan yang boleh anda kendalikan melalui kod

Zinn Digital® ialah platform yang mengutamakan API. API enjin sama yang menjana papan pemuka kami ialah apa yang anda dapat — berversi, mengutamakan spesifikasi dan didokumenkan 100% pada masa binaan, dengan SDK yang dijana, CLI, penyedia Terraform, webhook bertandatangan dan pelayan MCP di atasnya. Apa sahaja yang anda gunakan untuk bekerja — terminal, talian paip, fail keadaan atau ejen AI — platform ini bertindak balas kepadanya.

Titik akhir API yang menyampaikan peristiwa yang ditandatangani kepada beberapa pendengar yang dilanggan.
  • 700,000+laman yang dihoskan di seluruh dunia
  • 1Spesifikasi OpenAPI yang menjadi asas bagi penjanaan setiap alat
  • 4SDK klien — TypeScript, Python, PHP, Go
  • OAuth 2.1akses ejen AI dengan skop terhad dan boleh dibatalkan

Satu API. Setiap antara muka beroperasi di atasnya.

Kebanyakan hos menyematkan API pada panel kawalan kemudian hari, dan hasilnya jelas kelihatan — separuh daripada ciri panel tidak pernah disertakan. Kami membinanya dengan cara yang bertentangan. Papan pemuka, konsol pentadbir, CLI, penyedia Terraform, pelayan MCP dan penyepaduan anda sendiri semuanya menggunakan API enjin yang sama. Jika anda boleh melakukannya pada panel, anda boleh melakukannya dalam kod.

Spesifikasi didahulukan, bukan didokumenkan kemudian

Spesifikasi OpenAPI adalah sumber kebenaran tunggal, dan tiada titik akhir akan dilancarkan melainkan ia berada dalam spesifikasi tersebut. Peraturan tunggal itulah yang menjadikan API awam didokumentasikan sepenuhnya semasa masa binaan dan bukannya akhirnya — tiada sudut yang tidak didokumentasikan, kerana titik akhir yang tidak didokumentasikan tidak boleh wujud.

Dijana, tidak pernah diselenggara secara manual

Dokumen rujukan interaktif, empat SDK klien, sebahagian besar CLI dan perancah pembekal Terraform semuanya dijana daripada satu spesifikasi tersebut. Satu sumber, banyak artifak, sentiasa disegerakkan — anda tidak perlu lagi memburu dokumen yang telah tersasar daripada pelaksanaan.

Diberi versi dengan dasar penamatan penggunaan

Titik akhir berada di bawah /v1 dengan dasar penamatan yang diterbitkan dan log perubahan. Anda akan dimaklumkan secara bertulis sebelum sesuatu perkara berubah, bukannya mengetahuinya daripada binaan yang gagal.

Diuji mengikut kontrak dalam CI

Ujian kontrak pelaksanaan-lawan-spesifikasi dan linting OpenAPI dijalankan pada setiap perubahan. Percanggahan antara kod dan kontrak menggagalkan binaan — jadi spesifikasi tempat anda menjana klien anda ialah spesifikasi yang sebenarnya dipatuhi oleh pelayan.

Pengesahan, penentuan skop dan perkara yang menimbulkan masalah semasa penskalaan

Dua cara masuk, satu prinsip seragam di sebaliknya. Yang mana pun anda gunakan, pemeriksaan kebenaran yang sama dan pengasingan tahap pangkalan data yang sama diguna pakai.

Kunci API, mengikut organisasi

Kunci kelihatan seperti zdk_<mode>_<prefix>_<secret>. Hanya cincangan SHA-256 bagi rahsia tersebut disimpan — kami tidak dapat menunjukkan kunci kepada anda lagi selepas dikeluarkan, begitu juga sesiapa sahaja yang mengakses pangkalan data kami. Kunci membawa skop, boleh dibatalkan, dan dikeluarkan mengikut organisasi dan bukannya mengikut individu.

Mod langsung dan mod ujian, diasingkan

Kunci sandbox adalah berasingan daripada kunci produksi dan dijalankan dalam mod sandbox: tiada pengebilan sebenar, tiada peruntukan sebenar. Ujian penyepaduan anda boleh menguji API secara intensif tanpa membelanjakan wang atau membina pelayan.

OIDC untuk manusia

Sesi pengguna disahkan dengan JWT yang dikeluarkan oleh Keycloak, disahkan terhadap kunci awam realm, dan diselesaikan kepada objek Principal yang sama seperti kunci API. Titik akhir dihadkan pada kunci kebenaran terperinci seperti sites.create atau apikeys.manage, disemak bagi setiap organisasi — kebenaran dalam satu organisasi tidak memberikan akses dalam organisasi yang berasingan dan tidak berkaitan, walaupun ia terpakai kepada organisasi yang bersarang di bawahnya.

Keselamatan tahap baris di bawah

Setiap permintaan penyewa berjalan dalam transaksi dengan skop organisasi Postgres yang ditetapkan daripada prinsipal, jadi pengasingan dikuatkuasakan oleh pangkalan data, bukan oleh penapis ORM yang mungkin dilupakan seseorang. Penapis queryset masih ada sebagai pertahanan mendalam.

Dibina untuk mesin, bukan sekadar untuk demo

Mudah untuk menjadikan sesuatu API kelihatan hebat dalam fail README, tetapi sukar untuk memastikannya berfungsi dengan baik di bawah trafik sebenar. Inilah bahagian yang kami usahakan bertungkus-lumus, kerana bahagian inilah yang merosakkan integrasi pada pukul tiga pagi.

Satu perincian yang wajar diketengahkan, kerana ia mempengaruhi cara kerja pukal beroperasi: ralat 409 pada domain pendua menjawab soalan "adakah nama hos ini dihoskan di sini?" bagi mana-mana penyewa, yang merupakan enumerasi orakel dan risiko penyahananoniman yang nyata terhadap Footprint-Free. Mendikitkan (throttling) penciptaan tapak merupakan penyelesaian yang mudah dan akan merosakkan produk penyediaan pukal secara langsung. Sebaliknya, hanya percubaan domain pendua yang ditolak dihadkan belanjawannya, bagi setiap prinsipal. Penciptaan yang berjaya tidak akan dikenakan sebarang potongan — jadi anda boleh menyediakan secara pukal sepanjang hari, dan aktiviti mencungkil maklumat akan terhenti serta-merta.

  • Sampul ralat yang konsisten pada setiap kegagalan: kod, mesej yang boleh dibaca manusia, butiran peringkat medan pilihan dan request_id yang boleh anda nyatakan kepada sokongan. Ralat pengesahan mengembalikan 422 dengan medan yang bermasalah dinamakan.
  • Kunci ketakbolehubahan (idempotency keys) pada POST, dengan rekod main semula ditulis semasa komit dan bukannya sebaris — jadi percubaan semula tidak boleh memainkan semula 201 dicache yang menamakan baris yang tidak pernah dikomitkan. Permintaan yang gagal melepaskan kunci dalam penerbangannya serta-merta, jadi 422 tidak menghalang percubaan semula anda yang telah diperbetulkan.
  • Penomboran halaman kursor sebagai set kunci ke atas UUIDv7 — stabil di bawah penulisan serentak, tanpa anjakan halaman apabila baris disisipkan di tengah-tengah imbasan.
  • RateLimit-Remaining pada respons, supaya klien yang dijana boleh mengundur secara bijak dan bukannya meneka.
  • Sumber di luar skop mengembalikan 404 dan bukannya 403 — 403 akan mengesahkan bahawa sumber tersebut wujud. Penapisan mengikut organisasi di luar skop anda mengembalikan halaman kosong atas sebab yang sama.
  • Penciptaan laman ialah pendaftaran, bukan penyediaan: POST /v1/sites mengembalikan 201 dengan status pending dan tidak pernah menyekat pada binaan. Peristiwa tersebut ditulis ke peti keluar transaksi dalam transaksi yang sama seperti baris tersebut, jadi sesebuah laman wujud jika dan hanya jika penyediaannya dijamin akan diminta.

SDK, CLI dan pembekal Terraform

Tiga pengguna bagi spesifikasi yang sama, untuk tiga cara kerja yang berbeza.

SDK Klien

Dijana untuk TypeScript, Python, PHP dan Go, menjejaki spesifikasi supaya titik akhir baharu tiba dalam bahasa anda tanpa menunggu pembalut yang ditulis secara manual.

Zinnector®, CLI

Rangka tapak WordPress, jalankannya secara setempat tanpa memasang apa-apa selain Node, dan gunakannya. Zinnector® melakukan pra-pemeriksaan projek anda terhadap slot yang bakal anda gunakan — versi PHP, cakera, bilangan fail — dan memberi amaran sebelum anda membuat tolakan dan bukannya selepas itu. Ia juga log masuk, menyenaraikan tapak, menggunakan, mengurus domain dan DNS, membaca perkhidmatan mel, membuat sandaran, menjalankan WP-CLI yang dibenarkan, menjejak log dan melaksanakan operasi pukal. Percuma, berlesen MIT, dan dibina berasaskan API awam yang sama ini.

Penyedia Terraform

Urus laman, domain, rekod DNS, peti mel dan pelan sebagai infrastruktur sebagai kod. terraform apply menyediakan pengehosan, dan persekitaran anda menjadi boleh dihasilkan semula serta boleh disemak dan bukannya urutan klik yang tidak dicatat oleh sesiapa.

Rujukan interaktif

Dokumentasi yang dijana yang boleh anda baca dan panggil daripada penyemak imbas, menerangkan dengan tepat titik akhir yang dilaksanakan oleh pelayan — kerana kedua-duanya berasal daripada spesifikasi yang sama.

Webhook yang kekal berfungsi walaupun titik akhir anda tergendala

Di sebalik platform ini terdapat tunjang peristiwa yang tahan lama: setiap perubahan keadaan menulis peristiwa ke outbox transaksi dalam Postgres, secara atomik dengan perubahan pangkalan data, dan geganti menerbitkannya ke NATS JetStream. Peristiwa ditaip dan diversi — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending dan selebihnya.

Langgan perkara yang penting bagi anda

Daftarkan titik akhir sebagai WebhookSubscription dan pilih jenis acara yang diterimanya. Satu strim menyalurkan pemberitahuan, analitis, automasi dan integrasi anda secara sama rata — anda menggunakan acara yang sama seperti kami.

Ditandatangani dengan HMAC

Setiap penghantaran ditandatangani dengan HMAC supaya anda boleh mengesahkan bahawa ia datang daripada kami sebelum anda mengambil tindakan ke atasnya.

Dicuba semula dengan penangguhan, dan dilog

Penghantaran yang gagal akan dicuba semula dengan penangguhan dan setiap percubaan direkodkan sebagai WebhookDelivery. Anda boleh memeriksa dan memainkan semula penghantaran daripada papan pemuka dan bukannya menghantar e-mel kepada sokongan untuk bertanyakan perkara yang kami hantar.

Sekurang-kurangnya sekali, jadi nyahduplikasi pada id

Saluran paip ini sengaja beroperasi secara sekurang-kurangnya sekali dan bukannya berpura-pura menjadi tepat sekali. Geganti yang terhenti di pertengahan penerbitan akan tamat tempoh pajakan tuntutannya dan peristiwanya akan diterbitkan semula. Nyahduplikasi pada ID sampul surat dan pengguna anda akan betul mengikut binaan.

Memasukkan kod ke tapak web

API hanyalah separuh daripada kisah pembangun. Separuh lagi ialah pelancaran.

  • Sambungkan GitHub, GitLab atau Bitbucket melalui OAuth, dengan kunci pelaksanaan disimpan dalam stor kelayakan — bukan dalam fail konfigurasi.
  • Push mencetuskan saluran paip bina-dan-atur kedudukan, dengan pemetaan cawangan-ke-persekitaran (main ke production, staging ke staging) dan langkah binaan setiap tindanan untuk composer dan npm.
  • Kembalikan kepada versi terdahulu apabila penggunaan bermasalah.
  • Pengklonan persekitaran ujian dan tolak-ke-siaran langsung, supaya sesuatu perubahan terbukti di tempat yang sebenar sebelum dipaparkan kepada pelawat.
  • SFTP bagi setiap laman di bawah pengasingan CageFS, supaya setiap penyewa hanya melihat fail mereka sendiri, serta shell SSH yang disekat (jailed) pada platform kongsi.
  • wp-cli daripada terminal panel dan melalui SSH.
  • VS Code dalam penyemak imbas melalui code-server — editor lengkap dengan git, menyunting fail tapak secara terus.
  • Versi PHP bagi setiap laman, tetapan PHP yang boleh diedit, sambungan bagi setiap laman, pemboleh ubah persekitaran dan cron sebenar di samping WP-cron.

Empat cara untuk mengusahakan tapak

API ialah satu pintu. Ini adalah empat pintu yang lain, dan setiap satunya disertakan dengan pelan berbanding dijual sebagai peringkat pembangun.

Editor web

VS Code dalam penyemak imbas, dibuka daripada halaman tapak dalam papan pemuka, menyunting fail sebenar tapak tersebut dengan git terbina dalam dan keseluruhan editor berada di dalam kurungan CageFS yang sama seperti akses SFTP anda. Ia menyunting tapak LANGSUNG — tiada salinan pementasan (staging) di antaranya, jadi fail yang anda simpan akan menjadi umum sebaik sahaja ia ditulis, walaupun fail statik mungkin terus disajikan daripada cache CDN sehingga empat jam.

Zinnector®, CLI

Percuma, berlesen MIT dan dibina di atas API awam yang sama ini. Bina perancah laman WordPress, jalankannya pada mesin anda sendiri, lakukan pra-pemeriksaan terhadap slot yang bakal anda gunakan untuk melancarkan — versi PHP, cakera, jumlah fail — dan lancarkannya. Memerlukan Node 24 atau yang lebih baharu.

Pelayan MCP

Satu katalog alatan, supaya klien AI yang telah anda gunakan boleh berfungsi pada tapak web anda melalui API dan kebenaran yang sama seperti yang digunakan oleh papan pemuka. Pelayan sama yang disambungkan oleh klien anda sendiri adalah pelayan yang disambungkan ke editor web. Baca sahaja sehingga anda menyatakan sebaliknya.

Akses pembangun bagi setiap tapak

Kerja pelanggan tidak memerlukan kata laluan anda. Jemput seseorang melalui alamat e-mel dan mereka hanya mendapat satu tapak web secara khusus: mereka log masuk sebagai diri mereka sendiri, dengan peranan pelihat, penyunting atau pengurus, dan setiap tapak web lain menjawab 404 sebelum sebarang pengendali dijalankan — dasar keselamatan peringkat baris Postgres dan pagar peringkat permintaan, bukan sekadar satu semakan. Pemilik akaun memberikan dan membatalkannya dalam satu klik, berkuat kuasa pada permintaan mereka yang seterusnya.

Dan API yang sama yang boleh digunakan oleh ejen AI anda

Kami menawarkan platform ini sebagai pelayan MCP yang dihoskan: penyesuai protokol nipis pada API enjin yang menggunakan semula katalog tindakan, RBAC dan jejak audit yang serupa. Sambungkan Claude Code, Cursor, ChatGPT, Claude Desktop atau mana-mana klien berkeupayaan MCP sekali sahaja, dan setiap keupayaan yang kami tambahkan pada API akan tersedia kepadanya secara automatik.

Ejen menerima tiga perkara: Tools (titik akhir API yang sama, tiada logik selari untuk menyimpang), Resources (kesihatan laman baca sahaja, konfigurasi, log terkini, metrik, masa operasi dan artikel KB, supaya ia mendiagnosis dengan data sebenar sebelum bertindak) dan Prompts (templat aliran kerja yang diterbitkan seperti "diagnose this site" atau "prepare a migration").

Keselamatan mengikuti pendekatan yang sama seperti pengesahan: OAuth 2.1, token yang terikat pada organisasi anda dan kebenaran RBAC dengan keselamatan peringkat baris dikuatkuasakan, diskopkan dan boleh dibatalkan bagi setiap alatan, kotak pasir yang diasingkan daripada persekitaran pengeluaran. Tindakan pemusnahan — padam, gantung, pengebilan, perbelanjaan besar — memerlukan pengesahan jelas atau dasar kelulusan manusia. Had kadar dan had perbelanjaan membatasi tindakan berbayar yang dicetuskan AI, dan setiap panggilan MCP dilog audit dengan identiti, alatan, hujah dan hasil.

Kami menyokong protokol berbanding menyepadukan setiap aplikasi satu demi satu, bermakna pilihan alatan AI anda boleh berubah tanpa mengubah penyepaduan pengehosan anda.

Soalan Lazim

Adakah API awam sama dengan yang digunakan oleh papan pemuka?

Ya — ini ialah API enjin yang sama, diterbitkan dan diperkukuh. Papan pemuka, konsol pentadbir, CLI, pembekal Terraform, pelayan MCP dan webhook semuanya adalah pengguna bagi satu permukaan, itulah sebabnya API tidak ketinggalan di belakang panel.

Bolehkah saya menguji integrasi tanpa membelanjakan wang atau membina pelayan sebenar?

Ya. Kunci Sandbox dikeluarkan secara berasingan daripada kunci pengeluaran dan berjalan dalam mod ujian: tiada pengebilan sebenar dan tiada penyediaan sebenar. Halakan CI anda ke kelayakan sandbox dan laksanakan kitaran permintaan dan respons yang lengkap dengan selamat.

Bagaimanakah cara untuk menghentikan percubaan semula daripada mencipta dua perkara yang sama?

Hantar Idempotency-Key pada POST anda. Rekod main semula ditulis semasa commit dan bukannya secara sebaris, jadi percubaan semula tidak akan dapat memainkan semula kejayaan yang dicache untuk baris yang sebenarnya tidak dicommit, dan permintaan yang gagal melepaskan kuncinya dengan serta-merta agar percubaan semula anda yang telah diperbetulkan tidak terhalang. Penghantaran webhook adalah sekurang-kurangnya sekali secara reka bentuk — nyahduplikasi pada envelope id di pihak anda.

Bolehkah saya memberikan satu kunci API akses kepada semua organisasi pelanggan saya?

Bukan hari ini. Kunci API dikeluarkan mengikut organisasi, jadi penyepaduan yang merangkumi beberapa organisasi klien memegang kunci bagi setiap satu. Kebenaran juga disemak bagi setiap organisasi untuk prinsipal pengguna: memegang sites.create dalam satu organisasi tidak memberikan akses dalam organisasi yang berasingan dan tidak berkaitan, walaupun ia terpakai kepada organisasi yang bersarang di bawahnya. Ini disengajakan — ia mengehadkan kunci yang terjejas kepada organisasinya sendiri dan sub-organisasi di bawahnya, bukan keseluruhan platform.

Apakah yang sebenarnya dibenarkan oleh peranan Pembangun terbina dalam?

Peranan dev merangkumi bacaan organisasi, pengurusan kunci API, melihat dan mencipta laman, memulakannya semula, mengosongkan cache, serta melihat dan membalas tiket. Ia sengaja mengecualikan kawalan pengebilan. Sila ambil perhatian bahawa kebenaran deploy dan push-to-live bukan sebahagian daripadanya — jika ahli pasukan memerlukannya, tetapkan peranan yang memilikinya daripada menganggap Developer sebagai peranan teknikal yang paling luas.

Apakah yang berlaku kepada webhook saya jika titik akhir saya tidak berfungsi selama sejam?

Penghantaran dicuba semula dengan backoff dan setiap percubaan direkodkan sebagai WebhookDelivery yang boleh anda periksa. Di hulu (upstream), peristiwa ditulis pada outbox transaksi dalam transaksi pangkalan data yang sama seperti perubahan itu sendiri, jadi tiada apa-apa yang hilang semasa pengguna (consumer) tidak tersedia — pengguna yang tergendala hanya ketinggalan, ia tidak pernah merosakkan pengeluar (producer), dan anda boleh memainkan semula penghantaran daripada papan pemuka sebaik sahaja anda kembali.

Berapakah kos untuk mula membangun dengannya?

Mulakan percubaan 14 hari tanpa kad untuk Footprint-Free Hosting — tiada butiran pembayaran diperlukan, sehingga 5 tapak. Peringkat berbayar Footprint-Free bermula pada $6/bln untuk PBN 5. Setiap pelan dilengkapi jaminan wang dikembalikan selama 30 hari, migrasi percuma dan tiada sekatan vendor.

Baca spesifikasi, kemudian bina berpandukannya

API berasaskan spesifikasi, SDK yang dijana, CLI, penyedia Terraform, cangkuk web yang ditandatangani dan pelayan MCP — pada pengehosan yang kami bina untuk lebih 700,000 laman di seluruh dunia. Mulakan dengan percubaan 14 hari tanpa kad, tiada butiran pembayaran.

Mula secara percuma

Palam rancangan WordPress yang boleh digunakan oleh ejen AI anda

Setiap palam sedemikian menjadikan tapak WordPress anda sebagai pelayan MCP, membolehkan Claude, Cursor, VS Code dan pembantu AI yang lain melakukan kerja sebenar padanya, log masuk sebagai anda dan terhad kepada apa yang dibenarkan untuk anda lakukan.

Semua dokumentasi MCP dan API untuk pembangun →