14 ポイント 投稿者 GN⁺ 2025-03-30 | 1件のコメント | WhatsAppで共有
  • Pythonでプロダクトを素早く構築できるよう設計されたWebフレームワーク(Djangoをフォーク)
  • 単一コマンドでローカル開発を開始でき、ダッシュボードや機能フラグなどを通じて本番環境へ移行可能
    • スターターキットをクローンして素早く開始
  • 中核となるplainパッケージと、任意でインストールできる公式拡張パッケージ群で構成

plainパッケージの機能

  • URLパターンをPythonビュー関数に接続
  • HTTPリクエストとレスポンスを処理
  • Jinjaテンプレートを使用したHTMLレンダリング
  • ユーザー入力を処理するForm
  • コマンドラインインターフェース(CLI)を提供
  • CSS、JS、画像などの静的アセット(Assets)を配信可能
  • Middlewareを通じてアプリ機能を拡張
  • 公式およびサードパーティパッケージを簡単に統合可能
  • アプリ起動前の事前点検機能(Preflight check system)を提供

ファーストパーティパッケージによる拡張機能

  • plain.models: Postgres、MySQL、SQLiteにデータを保存できるORMを提供
  • plain.cache: 既存データベースとともに動作するキャッシュソリューション
  • plain.email: アプリ全体にわたるメール設定と送信機能を提供
  • plain.sessions: データベースベースのセッションの読み書きが可能
  • plain.worker: 既存データベースをサポートするバックグラウンドジョブソリューション
  • plain.api: クラスベースビューアーキテクチャを使用してJSON APIを構築可能

認証関連

  • plain.auth: ユーザー追加、リクエスト認証、ビュー制限のための基盤を提供
  • plain.oauth: モダンなソーシャルログインとAPIアクセスをサポートする柔軟なOAuthソリューション
  • plain.passwords: 従来型のパスワードベースログインをサポート
  • plain.loginlink: パスワードなしでログインできるワンタイムログインリンクを提供
  • plain.passkeys: パスワードレスログイン機能を提供予定

管理

  • plain.admin: 完全にカスタマイズ可能な管理ダッシュボードを提供
  • plain.flags: データベースベースの機能フラグでユーザーごとのコンテンツ制御が可能
  • plain.support: サードパーティサービスなしでカスタマーサポートを提供
  • plain.redirection: 404監視とデータベースでのリダイレクト管理
  • plain.pageviews: ユーザーが見ている内容を確認し、より良いサポートを提供

開発

  • plain.dev: 単一コマンドでローカル開発環境を開始可能
  • plain.pytest: 人気のPythonテストライブラリでテストを作成・実行可能
  • plain.code: デフォルト設定でPythonコードのフォーマットとリンティングが可能
  • plain.tunnel: Webhook統合のためにローカルアプリをインターネットに公開可能

フロントエンド

  • plain.tailwind: 人気のCSSフレームワークとのファーストクラス統合を提供
  • plain.htmx: 既存ツールを使ってモダンなユーザー体験を構築可能
  • plain.elements: アプリのテンプレートで再利用可能なコンポーネントに対する新しいパラダイムを提供
  • plain.pages: HTMLおよびMarkdownを使ったファイルベースルーティングを提供
  • plain.esbuild: JavaScriptコンパイルのための簡素化されたビルドプロセスを提供
  • plain.vendor: CDNに依存せずJavaScriptおよびCSSアセットをダウンロードしてセルフホスト可能

1件のコメント

 
GN⁺ 2025-03-30
Hacker Newsの意見
  • Django Rest Framework のバグトラッカーが非公開に切り替わり、新しいメンテナーを探していることを、多くの人は知らないかもしれない

    • Django は素晴らしいが、Angular のルネサンスのような変化が必要
    • 貢献したいが、ほとんどの努力が委員会で遅延している
    • フォークは解決策ではないかもしれないが、何らかの対応が必要
    • 寄付が必要なら、寄付を受け付けるのも方法
    • Django 開発者コミュニティは小さく、緊密につながっている
    • 貢献に対してオープンで、長期的な関係を重視するコミュニティが必要
  • Django のフォークについて複雑な感情を抱いている

    • レガシープロジェクトの外で実験するのは価値があるが、フォークは大きな宣言でもある
    • Django の集団的な努力が無視されているように感じる
    • 商業的、あるいは狭い方向へ進む可能性を懸念している
    • Django への愛着がいっそう強くなっている
  • Django の強みは ORM とエコシステム/イディオムにある

    • フォークで互換性を壊す理由が理解しづらい
    • より良い管理者機能を見たいが、Django のプロジェクトテンプレートで解決できる
  • Django にはいくつか弱点がある

    • ワーカーと REST API が第一級の存在ではない
    • Django の認証は基本的だが有用
    • Django での難しさは複雑さを増やしかねない
  • Django に対する否定的な感情に驚いている

    • Laravel や Rails と比べて Django は後れを取っている
    • エコシステムが分裂しており、多くのパッケージが古い
    • Django の静的ファイルパイプラインはデフォルトで含まれていない
    • ユーザーモデルの問題やテンプレートの制約がある
    • Rails に切り替えて Web アプリを作り始めた
  • Django から Supabase/Firebase に切り替えた

    • プラグインが多く、セルフホスティングもしやすい
    • Django プラグインのほうが良くなりそう
  • 設定がクラスを参照する文字列になっているのが嫌だ

    • クラスやオブジェクトを参照するときに簡単にたどれるようにしてほしい
    • 後からプラグインで解決されるが、LSP なら無料でサポートされる
  • Plain のドキュメントを見てみた

    • すべての機能はすでに Django にあるか、よくサポートされたパッケージに存在する
    • Django の廃止ポリシーによって、プロジェクトを長く維持できる
    • 委員会はプロジェクトの商業化を防ぎ、大半のユーザーにとって最善の決定を下している
    • Django は新聞のために作られたが、汎用的なフレームワークでもある
  • Plain が成功するかは分からないが、フォークする理由は理解できる

    • Django のリーダーシップは Django を前進させられていない