Lompat ke konten

Next.js · React · TypeScript

Mulailah dari arsitektur yang sudah jelas, bukan dari repositori kosong.

Foundation adalah basis situs web yang mengutamakan konfigurasi, dengan inti yang tidak bergantung pada framework, port dan adaptor, konfigurasi tervalidasi skema, serta gerbang verifikasi nyata. Anda mewarisi dasar-dasarnya dan memakai waktu Anda untuk bagian yang benar-benar spesifik bagi situs yang Anda bangun.

  • Next.js App Router dengan React Server Components
  • TypeScript di seluruh proyek, dengan konfigurasi tervalidasi skema
  • Gerbang pengujian unit, arsitektur, dan browser nyata di dalam repositori

Arsitektur secara ringkas

Empat tahap dengan arah dependensi satu arah. Dua tahap tengah adalah basisnya; tahap pertama dan terakhir milik Anda.

  1. Stage 1

    Data situs, konten, dan aset

    Identitas, navigasi, bahasa, konten Markdown, dan ilustrasi — masukan milik adopter, tervalidasi sebelum apa pun membacanya.

  2. Stage 2

    Lingkungan turunan Foundation

    Konsep domain yang tidak bergantung pada framework serta layanan aplikasi yang mengorkestrasinya, tanpa impor framework sendiri.

  3. Stage 3

    Penyajian, perutean, dan titik integrasi

    Rute, komposisi tata letak, metadata, dan pabrik adaptor yang mengikat pemesanan, pertanyaan, peta, dan analitik dari konfigurasi.

  4. Stage 4

    Penerapan

    Build yang mengutamakan generasi statis, diterapkan dari repositori Anda sendiri ke akun hosting Anda sendiri.

Arah dependensi ditegaskan oleh pengujian, bukan diasumsikan: inti tidak boleh mengimpor React, Next.js, atau lapisan luar, dan lapisan aplikasi tidak boleh masuk ke adaptor konkret.

ARCHITECTURE.md di repositori

Konfigurasi, atau kode

Batas inilah inti proyek ini. Sebagian besar keputusan spesifik bisnis adalah data; perluasan yang nyata adalah kode, dan Foundation menyatakan dengan jelas mana yang mana.

Biasanya dikonfigurasi atau ditulis

  • Identitas: nama, slogan, deskripsi, dan URL kanonis
  • Navigasi, serta kelompok sekunder dan footer
  • Kumpulan bahasa dan kamus antarmuka
  • Wilayah bisnis, jam buka, dan petunjuk arah
  • Konten: halaman dan koleksi sebagai Markdown
  • Merek, ikon, dan gambar
  • Pilihan penyedia untuk pemesanan, pertanyaan, peta, dan analitik
  • Aktivasi fitur untuk penawaran, portofolio, blog, dan testimoni
  • Nilai penyajian yang disediakan kontrak konfigurasi

Memerlukan kode ketika benar-benar memperluas perilaku

  • Adaptor penyedia baru untuk kemampuan yang sudah ada
  • Kemampuan baru yang dapat dipakai ulang
  • Perilaku atau interaksi antarmuka baru
  • Modul aplikasi hilir baru
  • Apa pun di luar batas konfigurasi yang sudah ditetapkan

Posisi yang disetujui: sebagian besar identitas, konten, merek, dan pemilihan fitur yang spesifik bisnis berada di luar inti aplikasi. Itu bukan janji bahwa tidak akan pernah ada kode ditulis — kemampuan yang benar-benar baru adalah pekerjaan platform, dan Foundation mengatakannya alih-alih menyiratkan adanya sistem plugin.

Kontrak rekayasanya

Apa yang dipegang proyek ini — dan apa yang ia menolak untuk klaim.

  • Konfigurasi tervalidasi ketat

    Satu skema, kunci tak dikenal ditolak, kegagalan yang bisa ditindaklanjuti, dan konfigurasi hanya dapat dibaca melalui loader.

  • Batas heksagonal

    Inti yang murni, port dan layanan aplikasi, adaptor di balik pabrik, dan rute framework yang tipis.

  • Penegakan dependensi

    Pengujian arsitektur menelusuri pohon sumber dan gagal pada impor yang dilarang, sehingga diagramnya tidak dapat menjauh dari kodenya.

  • Komposisi yang mengutamakan server

    React Server Components dan generasi statis sebagai standar, dengan interaktivitas klien hanya pada komponen yang membutuhkannya.

  • Verifikasi di browser nyata

    Matriks browser tanpa antarmuka yang disertakan menguji lebar desktop, tablet, dan seluler, interaksi papan tombol dan penunjuk, gerak yang dikurangi, serta skema gelap — dan menggagalkan proses jika ada assertion yang gagal.

  • Gerbang arsitektur dan unit

    Pengujian batas dan unit berjalan bersama pemeriksaan aset, pemeriksaan tipe, lint, dan build produksi.

  • Disiplin klaim kemampuan

    Klaim kemampuan yang didokumentasikan diperiksa terhadap catatan proyek sendiri tentang apa yang sudah diterapkan dan diverifikasi, sehingga klaim tidak bisa melampaui buktinya.

  • Model peningkatan yang jujur

    Karena konfigurasi, konten, dan aset Anda berada di luar inti aplikasi, peningkatan platform dapat diserap alih-alih menimpa pekerjaan Anda.

Apa yang tidak diklaim proyek

Foundation tidak mengklaim kesesuaian WCAG, sertifikasi keamanan, uji penetrasi, skor performa atau Lighthouse yang diterbitkan, maupun cakupan browser dan perangkat yang universal. Aksesibilitas dan performa dikembangkan serta diverifikasi di tempat proyek mampu memverifikasinya — keduanya tidak disertifikasi.

Di mana Foundation berhenti

Pembagian kepemilikan yang sama, dinyatakan secara teknis. Foundation sengaja berhenti sebelum kompleksitas operasional bisnis dan menyediakan titik integrasi ke layanan mana pun yang Anda pilih.

Milik adopter

  • Konfigurasi
  • Konten
  • Kamus bahasa
  • Ilustrasi bisnis
  • Pilihan penyedia
  • Perluasan hilir

Milik Foundation

  • Arsitektur aplikasi
  • Mesin antarmuka yang dapat dipakai ulang
  • Validasi konfigurasi
  • Mesin perutean dan konten
  • Titik integrasi
  • Infrastruktur verifikasi

Perluasan bekerja dari luar ke dalam: penyedia baru adalah adaptor plus cabang pabrik dan entri enumerasi skema, sedangkan tipe konten atau bahasa baru adalah data. Kemampuan yang benar-benar baru adalah pekerjaan platform.

Alur adopsi

Delapan tahap. Repositori memegang detail tingkat perintah — ini bentuk pekerjaannya.

  1. 1

    Dapatkan Foundation

    Klon atau fork repositori publik.

  2. 2

    Pasang dan jalankan

    Pasang dependensi dan jalankan situsnya secara lokal.

  3. 3

    Konfigurasi

    Tetapkan identitas, bahasa, fitur, dan pilihan penyedia.

  4. 4

    Tulis konten dan aset

    Tulis halaman Anda dan gantikan peran aset merek.

  5. 5

    Hubungkan penyedia

    Arahkan titik integrasi ke layanan yang benar-benar Anda pakai.

  6. 6

    Validasi

    Jalankan gerbang proyek sendiri secara lokal.

  7. 7

    Terapkan

    Build dan terapkan dari repositori dan akun Anda sendiri.

  8. 8

    Pelihara dan tingkatkan

    Serap perbaikan dari hulu tanpa menimpa materi Anda.

Panduan di repositori mencakup setiap tahap, termasuk penanganan masalah.

Dokumentasi yang otoritatif

GitHub adalah sumber teknis kanonis. Situs web ini merangkum; repositori yang menginstruksikan.

  • Repository

    Kode lengkap, lisensinya, dan pernyataan proyek sendiri tentang apa yang ia dan bukan ia.

  • README.md

    Apa proyek ini, mulai cepat, susunan repositori, dan posisi lisensinya.

  • ARCHITECTURE.md

    Gaya arsitektur, batas, arah dependensi, dan pola integrasi.

  • CUSTOMIZING.md

    Panduan pengguna hilir dan referensi konfigurasi lengkap.

  • DEPLOYMENT.md

    Runbook peluncuran dan daftar periksa setelah penerapan.

  • BRAND_ASSETS.md

    Kontrak penukaran aset merek: setiap peran grafis yang dapat digantikan.

  • Panduan

    Prosedur adopsi, penyesuaian, merek, konten, peningkatan, validasi, penerapan, dan penanganan masalah.

Setiap tujuan di atas adalah tautan ke repositori publik, tempat dokumen-dokumen itu dipelihara.

Baca, jalankan, ubah

Kode, pengujiannya, dan dokumentasinya adalah argumennya. Mulailah dari sana.

Kemampuan