14 poin oleh GN⁺ 2025-03-30 | 1 komentar | Bagikan ke WhatsApp
  • Framework web yang dirancang agar produk bisa dibangun dengan cepat menggunakan Python (fork dari Django)
  • Pengembangan lokal bisa dimulai dengan satu perintah saja, lalu dapat dipindahkan ke production melalui dashboard dan feature flag
    • Mulai dengan cepat dengan meng-clone starter kit
  • Terdiri dari paket inti plain dan paket ekstensi resmi yang dapat dipasang secara opsional

Fitur paket plain

  • Menghubungkan pola URL ke fungsi view Python
  • Menangani permintaan dan respons HTTP
  • Merender HTML menggunakan template Jinja
  • Form untuk memproses input pengguna
  • Menyediakan command-line interface (CLI)
  • Dapat menyajikan aset statis seperti CSS, JS, dan gambar
  • Memperluas fungsi aplikasi melalui middleware
  • Mudah mengintegrasikan paket resmi maupun pihak ketiga
  • Menyediakan sistem pemeriksaan pra-jalankan (preflight check system) sebelum aplikasi dijalankan

Fitur ekstensi melalui paket first-party

  • plain.models: Menyediakan ORM untuk menyimpan data di Postgres, MySQL, dan SQLite
  • plain.cache: Solusi caching yang bekerja bersama database yang ada
  • plain.email: Menyediakan konfigurasi dan pengiriman email di seluruh aplikasi
  • plain.sessions: Dapat membaca dan menulis sesi berbasis database
  • plain.worker: Solusi pekerjaan latar belakang yang mendukung database yang ada
  • plain.api: Dapat membangun JSON API menggunakan arsitektur view berbasis kelas

Terkait autentikasi

  • plain.auth: Menyediakan fondasi untuk menambahkan pengguna, autentikasi permintaan, dan pembatasan view
  • plain.oauth: Solusi OAuth yang fleksibel untuk mendukung social login modern dan akses API
  • plain.passwords: Mendukung login berbasis kata sandi dengan cara tradisional
  • plain.loginlink: Menyediakan tautan login sekali pakai untuk login tanpa kata sandi
  • plain.passkeys: Akan menyediakan fitur login tanpa kata sandi

Admin

  • plain.admin: Menyediakan dashboard admin yang sepenuhnya dapat dikustomisasi
  • plain.flags: Feature flag berbasis database untuk mengontrol konten per pengguna
  • plain.support: Menyediakan dukungan pelanggan tanpa layanan pihak ketiga
  • plain.redirection: Pemantauan 404 dan pengelolaan redirect dari database
  • plain.pageviews: Memungkinkan melihat apa yang dilihat pengguna dan memberikan dukungan yang lebih baik

Pengembangan

  • plain.dev: Dapat memulai lingkungan pengembangan lokal dengan satu perintah
  • plain.pytest: Dapat menulis dan menjalankan pengujian dengan pustaka pengujian Python yang populer
  • plain.code: Dapat melakukan pemformatan dan linting kode Python dengan pengaturan bawaan
  • plain.tunnel: Dapat mengekspos aplikasi lokal ke internet untuk integrasi webhook

Frontend

  • plain.tailwind: Menyediakan integrasi kelas satu dengan framework CSS populer
  • plain.htmx: Dapat membangun pengalaman pengguna modern menggunakan alat yang ada
  • plain.elements: Menyediakan paradigma baru untuk komponen yang dapat digunakan kembali dalam template aplikasi
  • plain.pages: Menyediakan routing berbasis file menggunakan HTML dan Markdown
  • plain.esbuild: Menyediakan proses build yang disederhanakan untuk kompilasi JavaScript
  • plain.vendor: Dapat mengunduh aset JavaScript dan CSS serta meng-host-nya sendiri tanpa bergantung pada CDN

1 komentar

 
GN⁺ 2025-03-30
Opini Hacker News
  • Banyak orang mungkin tidak tahu bahwa bug tracker Django Rest Framework telah diubah menjadi privat dan sedang mencari maintainer baru

    • Django itu hebat, tetapi membutuhkan perubahan seperti kebangkitan Angular
    • Ingin berkontribusi, tetapi sebagian besar upaya tertunda di komite
    • Fork mungkin bukan solusinya, tetapi perlu ada tindakan
    • Jika perlu donasi, menerima donasi juga bisa menjadi salah satu cara
    • Komunitas pengembang Django kecil dan saling terhubung erat
    • Dibutuhkan komunitas yang terbuka terhadap kontribusi dan menghargai hubungan jangka panjang
  • Memiliki perasaan campur aduk tentang fork Django

    • Bereksperimen di luar proyek warisan itu berharga, tetapi fork adalah pernyataan besar
    • Terasa seperti upaya kolektif Django diabaikan
    • Khawatir akan kemungkinan bergerak ke arah yang komersial atau terlalu sempit
    • Rasa sayang terhadap Django semakin besar
  • Kekuatan Django ada pada ORM serta ekosistem/idiomnya

    • Sulit memahami alasan merusak kompatibilitas lewat fork
    • Ingin melihat fitur admin yang lebih baik, tetapi itu bisa diatasi dengan template proyek Django
  • Ada beberapa kekurangan pada Django

    • Worker dan REST API bukan warga kelas satu
    • Autentikasi Django itu dasar, tetapi berguna
    • Kesulitan di Django dapat meningkatkan kompleksitas
  • Terkejut dengan sentimen negatif terhadap Django

    • Django tertinggal dibanding Laravel dan Rails
    • Ekosistemnya terpecah dan banyak paket sudah tua
    • Pipeline berkas statis Django tidak disertakan secara bawaan
    • Ada masalah pada model pengguna dan keterbatasan template
    • Beralih ke Rails dan mulai membangun aplikasi web
  • Beralih dari Django ke Supabase/Firebase

    • Banyak plugin dan self-hosting mudah dilakukan
    • Plugin Django rasanya seharusnya bisa lebih baik
  • Tidak suka konfigurasi yang berupa string yang merujuk ke kelas

    • Ingin bisa menavigasi dengan mudah saat merujuk kelas atau objek
    • Nantinya ini diselesaikan dengan plugin, tetapi LSP mendukungnya secara gratis
  • Melihat dokumentasi Plain

    • Semua fitur sudah ada di Django atau di paket yang didukung dengan baik
    • Kebijakan deprecation Django memungkinkan proyek dipelihara lama
    • Komite mencegah komersialisasi proyek dan mengambil keputusan terbaik bagi sebagian besar pengguna
    • Django dibuat untuk surat kabar, tetapi merupakan framework serbaguna
  • Tidak tahu apakah Plain akan berhasil, tetapi memahami alasan fork tersebut

    • Kepemimpinan Django gagal memajukan Django