Posted by brylie 3/29/2025
Looking at you Meta, Apple, X
Why. This makes me sad. Plain looks great, but Django's strength is its maturity and amazing, enduring community built on contributions from thousands. Forking it will at best split contributions and mean infrequent merges, and at worst means Plain users lose out on Django improvements and Django users lose out on Plain patches.
It seems like Plain could be just a set of Django packages known to work together, and perhaps a new wrapper script replacing `django-admin`, but instead it appears it is a true fork.
Plain basically looks great. I love Django, and this is a long list of things that I'd need on top of Django anyway. Would I use a framework on top of a framework like this? I'm not sure. I just wish it was built in a way that contributed to the Django community instead of one that divides it.
My experience of contributing to Django does not match theirs, and I don't feel this page sufficiently justifies this being a fork. In fact it actually makes me suspect that Plain will/has diverged enough that it won't be able to pull in changes from Django. As a user this would concern me, as Django ships meaningful changes regularly, as well as having a mature approach to security disclosures.
I have disclosed vulnerabilities in Django and they were handled very well and quickly. I actually went to see if Plain was vulnerable to the issue I disclosed, but my issue was around the memcached integration, and it seems Plain has completely removed all caching (except from a database-backed cache), making it in one way less batteries-included than regular Django. This puzzles me, for a project that is all about including more batteries, and as a potential user would lead me to further question the project.
Django has a "contrib" package. I could see a fork with a fast moving contrib directory, or even just the Django project doing that with an explicit call-out for that package having a different set of breaking change expectations. A bunch of features started in contrib and graduated out of it over time, would be nice to keep that going.
I'm curious about what he would want to get into Django that feels like he couldn't though. Since this _is_ a fork of Django, he's still gonna hit a lot of issues that people wanting to improve Django hit.
Backwards compat is an issue, but "all of this code within the library is built off of existing assumptions" is _also_ an issue.
If all the improvements could be third party packages, just making plain be a big third party omnipackage that also has a helper to "fix" settings feels like it would go a long way.
My main complaint is having used something like Wagtail (which builds on and extends Django) to quickly spin up a CRM is that if you come along years later to update a project you find the path very painful since Wagtail and Django updates diverge and you are left to your own bad choice of picking the path of least resistance. I'd rather just spend time building something in Django and then maintain that long term than try to keep two out of sync projects in sync while building on top of that mess.
The fork is a bad take here as it will be super costly to maintain for no gain.
Now, if you were to change a deep layer like the ORM, that would justify it. But I don't see it here.
But let's not be negative here, someone wants to spend time, energy and resources to explore innovation for a great legacy foss project.
This is good news.
I don't think Plain will replace Django anytime soon but it might help guide decisions.
Plain being backed by a for-profit company is also great because projects like Django could use more marketing. Vercel figured this out a long time ago.
It took me a while to find any information on this, so for others:
https://forum.djangoproject.com/t/django-tasks-bringing-back...
https://github.com/django/deps/blob/main/accepted/0014-backg...
A lot more testing needs to be done before adding anything. The community should welcome projects like Plain, that can move fast and break things, which in turn might inspire Django.
The times for-profit dev tooling has worked, it’s almost always when the profit is a means to providing value (e.g. Jetbrains), but that’s very rare.
For profit is generally a stronger signal of an impending rug pull than longevity.
But seriously there has been a movement back towards rending on the server-side. This underpinnings of Next.JS and HTMX
A better way to do this is as a cookiecutter template. Go ahead and include everything you need as INSTALLED_APPS. Auth is pluggable, middleware is configurable, his support module is a classic use case for a pluggable app... Include pytest and Python-Allauth with sane defaults.
I'm struggling to see anything that wouldn't work better—benefiting from all the good work in the Jazzband universe and automatically getting the upstream security upgrades—without a fork.
I guess the author didn't think credit was due: https://plainframework.com/about/#credit-where-credits-due
It's clearly a minimal readme, a tiny bit of frontmatter and a feature list. I see no reason to tar them for not including that everywhere.
- Find successful open source project - Fork with "reasons" - Pour VC into helpful features, great docs, DX and evangelism - Run the Vercel playbook
We're gonna see a lot more of this.
To be fair, Vercel did not 'find&fork' Next.JS, they are the authors of the framework.
Considering the GNU manifesto is from 1985 I guess we’ve gone through multiple stages quickly. What were they?
Sqlite -> Turso
PostgreSQL -> Neon
Chromium -> Arc browser
not exactly fork, but aimed at riding popularity of an already-established thing: Nodejs -> Bun
Early slack actually supported being used by 3rd party IRC clients
[0]: https://github.com/adamchainz?tab=repositories&q=django-&typ...