- 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件のコメント
Hacker Newsの意見
Django Rest Framework のバグトラッカーが非公開に切り替わり、新しいメンテナーを探していることを、多くの人は知らないかもしれない
Django のフォークについて複雑な感情を抱いている
Django の強みは ORM とエコシステム/イディオムにある
Django にはいくつか弱点がある
Django に対する否定的な感情に驚いている
Django から Supabase/Firebase に切り替えた
設定がクラスを参照する文字列になっているのが嫌だ
Plain のドキュメントを見てみた
Plain が成功するかは分からないが、フォークする理由は理解できる