14 Punkte von GN⁺ 2025-03-30 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Web-Framework, das dafür entwickelt wurde, Produkte schnell mit Python zu entwickeln (ein Fork von Django)
  • Die lokale Entwicklung kann mit einem einzigen Kommando gestartet werden und über Dashboard und Feature Flags in die Produktion überführt werden
    • Für einen schnellen Start kann ein Starter-Kit geklont werden
  • Besteht aus dem Kernpaket plain und offiziell unterstützten Erweiterungspaketen, die optional installiert werden können

Funktionen des Pakets plain

  • Verknüpft URL-Muster mit Python-View-Funktionen
  • Verarbeitet HTTP-Anfragen und -Antworten
  • HTML-Rendering mit Jinja-Templates
  • Formulare zur Verarbeitung von Benutzereingaben
  • Stellt eine Kommandozeilenschnittstelle (CLI) bereit
  • Kann statische Assets wie CSS, JS und Bilder ausliefern
  • Erweitert App-Funktionen über Middleware
  • Offizielle und Third-Party-Pakete lassen sich leicht integrieren
  • Bietet ein Preflight-Check-System vor dem Start der App

Erweiterte Funktionen durch First-Party-Pakete

  • plain.models: Bietet ein ORM zum Speichern von Daten in Postgres, MySQL und SQLite
  • plain.cache: Eine Caching-Lösung, die zusammen mit der bestehenden Datenbank arbeitet
  • plain.email: Bietet E-Mail-Konfiguration und -Versand für die gesamte App
  • plain.sessions: Unterstützt das Lesen und Schreiben datenbankbasierter Sessions
  • plain.worker: Eine Background-Job-Lösung mit Unterstützung für die bestehende Datenbank
  • plain.api: Ermöglicht den Aufbau von JSON-APIs mit einer klassenbasierten View-Architektur

Authentifizierung

  • plain.auth: Bietet die Grundlage zum Hinzufügen von Benutzern, zur Authentifizierung von Anfragen und zum Einschränken von Views
  • plain.oauth: Eine flexible OAuth-Lösung, die modernes Social Login und API-Zugriff unterstützt
  • plain.passwords: Unterstützt klassisches passwortbasiertes Login
  • plain.loginlink: Bietet Einmal-Login-Links für die Anmeldung ohne Passwort
  • plain.passkeys: Passwortlose Anmeldung ist geplant

Administration

  • plain.admin: Bietet ein vollständig anpassbares Admin-Dashboard
  • plain.flags: Datenbankbasierte Feature Flags zur Steuerung von Inhalten pro Benutzer
  • plain.support: Ermöglicht Kundensupport ohne Drittanbieterdienste
  • plain.redirection: 404-Monitoring und Verwaltung von Weiterleitungen in der Datenbank
  • plain.pageviews: Zeigt, was Benutzer sehen, um besseren Support zu ermöglichen

Entwicklung

  • plain.dev: Startet die lokale Entwicklungsumgebung mit einem einzigen Kommando
  • plain.pytest: Ermöglicht das Schreiben und Ausführen von Tests mit einer beliebten Python-Testbibliothek
  • plain.code: Ermöglicht Python-Code-Formatierung und Linting mit Standardeinstellungen
  • plain.tunnel: Macht lokale Apps für Webhook-Integrationen über das Internet erreichbar

Frontend

  • plain.tailwind: Bietet First-Class-Integration mit einem beliebten CSS-Framework
  • plain.htmx: Ermöglicht den Aufbau moderner Nutzererlebnisse mit vorhandenen Tools
  • plain.elements: Bietet ein neues Paradigma für wiederverwendbare Komponenten in den Templates einer App
  • plain.pages: Bietet dateibasiertes Routing mit HTML und Markdown
  • plain.esbuild: Bietet einen vereinfachten Build-Prozess für die JavaScript-Kompilierung
  • plain.vendor: Ermöglicht das Herunterladen und Self-Hosting von JavaScript- und CSS-Assets ohne Abhängigkeit von einem CDN

1 Kommentare

 
GN⁺ 2025-03-30
Hacker-News-Kommentare
  • Vielen ist vielleicht nicht bewusst, dass der Bug-Tracker des Django Rest Framework auf privat umgestellt wurde und nach neuen Maintainer:innen gesucht wird

    • Django ist großartig, braucht aber vielleicht eine Veränderung wie die Renaissance von Angular
    • Ich möchte beitragen, aber die meisten Bemühungen werden vom Komitee ausgebremst
    • Ein Fork ist vielleicht nicht die Lösung, aber irgendetwas muss unternommen werden
    • Falls Spenden nötig sind, könnte auch das eine Option sein
    • Die Django-Entwickler-Community ist klein und eng vernetzt
    • Es braucht eine Community, die offen für Beiträge ist und langfristige Beziehungen wertschätzt
  • Ich habe gemischte Gefühle bei einem Fork von Django

    • Außerhalb eines Legacy-Projekts zu experimentieren ist wertvoll, aber ein Fork ist eine große Ansage
    • Es fühlt sich an, als würde die kollektive Arbeit an Django ignoriert
    • Es gibt Bedenken, dass es zu kommerziell oder zu eng ausgerichtet werden könnte
    • Meine Zuneigung zu Django wächst weiter
  • Djangos Stärke liegt im ORM sowie im Ökosystem und seinen Idiomen

    • Es ist schwer nachzuvollziehen, warum man für einen Fork die Kompatibilität brechen sollte
    • Ich würde gern bessere Admin-Funktionen sehen, aber das lässt sich mit einem Django-Projekt-Template lösen
  • Django hat einige Schwächen

    • Worker und REST-APIs sind keine First-Class-Citizens
    • Djangos Authentifizierung ist einfach, aber nützlich
    • Schwierigkeiten in Django können die Komplexität erhöhen
  • Ich bin überrascht von den negativen Gefühlen gegenüber Django

    • Im Vergleich zu Laravel und Rails ist Django ins Hintertreffen geraten
    • Das Ökosystem ist zersplittert und viele Pakete sind veraltet
    • Djangos Static-File-Pipeline ist nicht standardmäßig enthalten
    • Es gibt Probleme mit dem User-Modell und Einschränkungen bei Templates
    • Ich bin zu Rails gewechselt und habe angefangen, Web-Apps damit zu bauen
  • Ich bin von Django zu Supabase/Firebase gewechselt

    • Es gibt viele Plugins und Self-Hosting ist einfach
    • Django-Plugins könnten besser sein
  • Ich mag es nicht, dass die Konfiguration aus Strings besteht, die auf Klassen verweisen

    • Ich möchte Klassen oder Objekte beim Referenzieren leicht navigieren können
    • Das wird später zwar durch Plugins gelöst, aber LSP unterstützt es von Haus aus
  • Ich habe mir die Dokumentation von Plain angesehen

    • Alle Funktionen gibt es bereits in Django oder in gut unterstützten Paketen
    • Djangos Deprecation-Policy sorgt dafür, dass Projekte lange gepflegt werden können
    • Das Komitee verhindert eine Kommerzialisierung des Projekts und trifft Entscheidungen, die für die meisten Nutzer am besten sind
    • Django wurde zwar für Zeitungen entwickelt, ist aber ein Framework für allgemeine Zwecke
  • Ich weiß nicht, ob Plain erfolgreich sein wird, aber ich verstehe die Gründe für den Fork

    • Die Django-Führung schafft es nicht, Django weiterzuentwickeln