14 puntos por GN⁺ 2025-03-30 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2025-03-30
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

    • Django es excelente, pero necesita un cambio como el renacimiento de Angular
    • Quieren contribuir, pero la mayor parte del esfuerzo se retrasa en el comité
    • Un fork quizá no sea la solución, pero hace falta tomar alguna medida
    • Si se necesitan donaciones, una opción es aceptar donaciones
    • La comunidad de desarrolladores de Django es pequeña y muy unida
    • Se necesita una comunidad abierta a las contribuciones y que valore las relaciones a largo plazo
  • Tienen sentimientos encontrados sobre un fork de Django

    • Experimentar fuera del proyecto legado tiene valor, pero un fork es una declaración fuerte
    • Da la impresión de que se está ignorando el esfuerzo colectivo de Django
    • Les preocupa que pueda tomar un rumbo comercial o demasiado estrecho
    • Su aprecio por Django sigue creciendo
  • La fortaleza de Django está en el ORM y en su ecosistema/convenciones

    • Es difícil entender por qué un fork rompería la compatibilidad
    • Les gustaría ver mejores funciones de administración, pero eso puede resolverse con una plantilla de proyecto de Django
  • Django tiene algunas desventajas

    • Los workers y la REST API no son ciudadanos de primera clase
    • La autenticación de Django es básica, pero útil
    • Las dificultades en Django pueden aumentar la complejidad
  • Les sorprende el sentimiento negativo hacia Django

    • Django se ha quedado atrás frente a Laravel y Rails
    • El ecosistema está fragmentado y muchos paquetes son antiguos
    • El pipeline de archivos estáticos de Django no viene incluido por defecto
    • Hay problemas con el modelo de usuario y limitaciones en las plantillas
    • Se cambiaron a Rails y empezaron a construir aplicaciones web allí
  • Se cambiaron de Django a Supabase/Firebase

    • Hay muchos plugins y es fácil hacer self-hosting
    • Piensan que los plugins de Django deberían ser mejores
  • No les gusta que la configuración use cadenas que hacen referencia a clases

    • Quieren poder navegar fácilmente al referirse a clases u objetos
    • Después se resuelve con plugins, pero LSP lo soporta gratis
  • Revisaron la documentación de Plain

    • Todas las funciones ya existen en Django o en paquetes bien mantenidos
    • La política de deprecación de Django permite mantener proyectos por mucho tiempo
    • El comité evita la comercialización del proyecto y toma decisiones que son mejores para la mayoría de los usuarios
    • Django fue creado para periódicos, pero es un framework de propósito general
  • No saben si Plain tendrá éxito, pero entienden por qué existe el fork

    • El liderazgo de Django no está logrando hacer avanzar a Django suficientemente