- Framework web diseñado para construir productos rápidamente con Python (un fork de Django)
- Permite iniciar el desarrollo local con un solo comando y pasar a producción mediante un dashboard y feature flags, entre otras herramientas
- Puedes empezar rápido clonando el starter kit
- Está compuesto por el paquete principal
plain y paquetes de extensión oficiales que se pueden instalar de forma opcional
Funciones del paquete plain
- Conecta patrones de URL con funciones view de Python
- Maneja solicitudes y respuestas HTTP
- Renderizado de HTML usando plantillas Jinja
- Formularios para procesar entrada del usuario
- Proporciona una interfaz de línea de comandos (CLI)
- Puede servir assets estáticos como CSS, JS e imágenes
- Extiende funcionalidades de la app mediante middleware
- Integra fácilmente paquetes oficiales y de terceros
- Proporciona una función de verificación previa al arranque de la app (preflight check system)
Funciones de extensión mediante paquetes first-party
- plain.models: ofrece un ORM para almacenar datos en Postgres, MySQL y SQLite
- plain.cache: solución de caché que funciona junto con la base de datos existente
- plain.email: proporciona configuración y envío de correos electrónicos en toda la app
- plain.sessions: permite leer y escribir sesiones basadas en base de datos
- plain.worker: solución de tareas en segundo plano compatible con la base de datos existente
- plain.api: permite construir APIs JSON usando una arquitectura de views basada en clases
Relacionado con autenticación
- plain.auth: proporciona la base para agregar usuarios, autenticar solicitudes y restringir views
- plain.oauth: solución OAuth flexible que soporta login social moderno y acceso a APIs
- plain.passwords: soporta el login tradicional basado en contraseña
- plain.loginlink: ofrece enlaces de acceso de un solo uso para iniciar sesión sin contraseña
- plain.passkeys: ofrecerá inicio de sesión sin contraseña
Administración
- plain.admin: proporciona un dashboard de administración completamente personalizable
- plain.flags: permite controlar contenido por usuario con feature flags basados en base de datos
- plain.support: ofrece soporte al cliente sin servicios de terceros
- plain.redirection: monitoreo de 404 y gestión de redirecciones desde la base de datos
- plain.pageviews: permite ver lo que están viendo los usuarios y ofrecer mejor soporte
Desarrollo
- plain.dev: permite iniciar el entorno de desarrollo local con un solo comando
- plain.pytest: permite escribir y ejecutar pruebas con la popular librería de testing para Python
- plain.code: permite formatear y hacer lint del código Python con configuración predeterminada
- plain.tunnel: permite exponer una app local a Internet para integraciones con webhooks
Frontend
- plain.tailwind: ofrece integración de primer nivel con un popular framework CSS
- plain.htmx: permite construir experiencias de usuario modernas usando herramientas existentes
- plain.elements: ofrece un nuevo paradigma para componentes reutilizables en las plantillas de la app
- plain.pages: ofrece routing basado en archivos usando HTML y Markdown
- plain.esbuild: proporciona un proceso de build simplificado para compilar JavaScript
- plain.vendor: permite descargar y autoalojar assets de JavaScript y CSS sin depender de un CDN
1 comentarios
Comentarios de Hacker News
Puede que mucha gente no sepa que el rastreador de bugs de Django Rest Framework pasó a ser privado y que están buscando nuevos mantenedores
Tienen sentimientos encontrados sobre un fork de Django
La fortaleza de Django está en el ORM y en su ecosistema/convenciones
Django tiene algunas desventajas
Les sorprende el sentimiento negativo hacia Django
Se cambiaron de Django a Supabase/Firebase
No les gusta que la configuración use cadenas que hacen referencia a clases
Revisaron la documentación de Plain
No saben si Plain tendrá éxito, pero entienden por qué existe el fork