by brylie on 3/29/25, 3:55 AM with 160 comments
by miiiiiike on 3/29/25, 8:50 AM
I'm not sure that many people who rely on Django Rest Framework are aware that last month the bug tracker was made private and the project is looking for new maintainers.
I love Django but the project needs to go through something similar to Angular's renaissance (and Angular needs to learn from Django docs.) I'd love to help but it seems that most of the efforts to address the issue have been stalled in committee.
A fork probably isn't the answer but something needs to be done. If it's a money issue, pass the plate! Whenever I talk to Django devs about contributing the feeling that I'm left with is that I could put in years of work, jump through every hoop, and at the end of it they may still say "We're not sure."
The feeling that I've gotten is that the Django dev community is very small and tight-knit. Whenever I've talked about helping out on various projects I've walked away with the feeling that their friend is handling it and they'd rather leave them to it. The community has been trained, through years of reinforcement, to wait instead of getting involved.
by mariocesar on 3/29/25, 3:12 PM
Part of that discomfort comes from a sense that the collective effort into Django is being sidestepped rather than built upon. It feels like a "saas-fication" effort, like Ruff, Docker, Terraform, etc but instead of going from creating something new it replaces something that already works. I worry about the potential for a more commercial or narrow direction that doesn't embody honestly the open, thoughtful mission thats made Django so special.
I'm in love of boring software.
I care about Django more than I realized. Seeing this has actually pushed me with a gut emotion to want to get more involved contributing code, writing, or just participating more with Django
It's not about the tool or the language, I want to feel different about the community that is open and respectful of contribution and values long term relations.
It's not fun to be boring, but boring is good
by sroerick on 3/29/25, 4:47 AM
I think there’s a number of areas where Django falls a bit short and other web frameworks excel. For example, task workers are not first class citizens and require Celery or another task manager. REST APIs are a similar situation. Celery and Django REST are great, but they do feel a little ham handed. I’ve seen other frameworks handle this in ways that really seem to work great.
I guess auth is prioritized here? But I actually like the barebones Django auth and find it useful in many situations where I don’t need full OAuth.
I’m not saying this isn’t needed and it looks cool and nice - but for the use cases where I’ve struggled with Django, it seems like this would actually increase complexity, as the 3rd party ecosystem would obviously not be robust.
It looks like the author has a perfectly good workflow and use case for this, but it’s not clear from the homepage or the “about” page linked elsewhere in the comments exactly what this is for
by theptip on 3/29/25, 6:01 PM
Why would I break compatibility with the latter by taking a fork?
I would love to see better admin (so many have tried to do this) but it’s unclear to me why the goodstuff here can’t be a Django project template. (https://docs.djangoproject.com/en/5.1/releases/1.4/#custom-p...)
As a longtime user if I want anything different these days it’s a lighter-weight experience like Django Ninja or FastAPI.
by 999900000999 on 3/29/25, 1:40 PM
I just switched to Django from Supabase/Firebase. The main thing I like is theirs a plugin for everything you’d want.
It’s also much easier to actually self host, Supabase is open source, but actually doesn’t self host all that well. You have a bizarre gap between ’free’ with constant nag emails warning you there about to turn off your project, a 25$ paid tier and a black box enterprise level. Call us isn’t very transparent.
For Plain, I’d much rather this be a Django plugin, I don’t want to replace a well supported and documented framework with a 1 person fork. Definitely looks cool, but you’ll never be able to provide the same ecosystem and support as the main Django project.
by nop_slide on 3/29/25, 6:58 PM
I really wanted to like Django more since I use python at $dayjob, but it seemed so far behind Laravel and Rails terms of DX and features. Also the ecosystem seemed fragmented and a lot of packages looked stale.
For example, I remember having to piece together a static files pipeline for Django with whitenoise, how is that not included by default?
Additionally the issues around the user model are bizarre, near the very end of the docs they tell you to override the user model to fix it. Wat.
Lastly Django templates felt super limiting, Livewire/Laravel and Hotwire/Rails gives you so much out of the box.
I ended up choosing Rails to start building side web apps, their move to SQLite-first and the whole “Solid” suite of tools is rad. Specifically Solid Queue is awesome! I noped out of Django when I saw how intense the docs for setting up celery were.
Hoping this spurs some activity in the Django-sphere, I would love if Django felt more complete like Rails!
by philips on 3/29/25, 4:35 AM
by spapas82 on 3/29/25, 11:42 AM
Everything, and I mean everything is already either in core Django or in a great and properly supported django package that's been used in years and has been proven to be reliable.
I really can't understand the purpose of this package. Taking a peek at the about as mentioned by some others:
> You can think of Plain as a "what if?" > What if you didn't have to worry about deprecation policies?
The fact that Django has deprecation policies and they are so religiously followed allows me (and others) to have 10+ years old projects running in Django 5.1 and being ready for 5.2 without any problems or baggage!
> What if there were no committees?
A committee is a good thing. It ensures two things: a. It's not possible to commercialize the project. b. It makes sure that it will do what's best for most users. Some decisions may no be good for a particular user but it would be best for most users (considering my previous comment; I want to keep my 10+ years old project properly supported).
> What if you could change anything without consequence?
See previous comments. You can change anything without consequence when you have a clean slate, not when you need to support current stuff.
> What if Django wasn't originally built for a newspaper circa 2003?
This really doesn't relevant. Django is a general purpose framework.
> What if you had a clean slate, but a proven head start?
See the previous comments.
> working through years of incremental progress and committees, with a very real possibility of some things never happening, is just not for me.
Please see my previous answers. Also, about changing stuff, that's the purpose of packages, ain't it? Django has a lot of escape hatches to change its behavior from the defaults. And of course if you wanted to do something not supported you could try to do a PR so as to open another escape hatch so Django will keep the default behavior but you'll be able to implement your thingie.
Concluding, I really don't like this project forking Django because all this effort could be put to better use and definitely not try to split the community. Especially the community of a real Open Source project like Django.
by JodieBenitez on 3/29/25, 5:21 AM
brew install mkcert fixes this.
Also, a starter kit that asks for my password right away is a bit too intrusive for me:
Downloads/new-project [master {origin/master}|]: uv run plain dev
Generating SSL certificates for app.localhost...
Created a new local CA
Note: the local CA is not installed in the system trust store.
Note: the local CA is not installed in the Firefox trust store.
Run "mkcert -install" for certificates to be trusted automatically
Created a new certificate valid for the following names
- "app.localhost"
The certificate is at "/Users/me/Downloads/new-project/.plain/dev/certs/app.localhost-cert.pem" and the key at "/Users/me/Downloads/new-project/.plain/dev/certs/app.localhost-key.pem"
It will expire on 29 June 2027
Adding app.localhost to /etc/hosts file. You may be prompted for your password.
Password:
I generally don't like to rely on ssl for development anyway. Make it optional maybe ?by petr25102018 on 3/29/25, 5:41 AM
by askonomm on 3/29/25, 4:09 PM
Then of course they "solve" it later with a (probably paid) plugin. But why? LSP's support this natively, and for free, just don't use strings.
by mcdirty on 3/29/25, 4:32 AM
by daft_pink on 3/29/25, 12:20 PM
I’ve found the challenge with Python for web is deployment as most website deployments are geared towards serverless workers or cdn’d javascript bundles and most python systems use WSGI and sessions, which is fundamentally different and the biggest challenge in newbie’s using python for websites.
by mychael on 3/29/25, 5:58 AM
by jgb1984 on 3/29/25, 8:35 AM
by scottpersinger on 3/29/25, 5:35 PM
by librasteve on 3/29/25, 7:53 AM
It’s right (as explained in the about):
- to like Django and all the 1000s of contributions
- to be frustrated by its limits & to want to do more
- to fork and rearchitect if you can’t get there by debate
- that people may like it and come along or the ride
- in many of the features and design points
- to embrace HTMX
It’s wrong:
- to try to innovate on the Python/Django ecosystem
- to miss out on functional code for HTML composition
- to continue the framework paradigm - HTMX leads to server side which leads to devs reclaiming the application loop
If, like me, you feel that plain is on the right track, but want to go faster / further, then I encourage you to take a look at https://harcstack.org. [disclaimer, I am the author]
by scop on 3/29/25, 2:57 PM
> Ridiculously fast.
> Django was designed to help developers take applications from concept to completion as quickly as possible.
This rubs me as a little deceptive/insincere. When I read “ridiculously fast” on a hero banner, I’m expecting that to mean the speed of the language/framework itself. Anybody else see it similarly or am I just being cranky?
Anyways, I as an outsider see a lot more immediate value proposition on the Plain page than the Django one. Good job whomever put it together.
by pphysch on 3/29/25, 3:10 PM
I have a different approach to "modernizing Django", which is to write a spiritual successor ORM from scratch, which is Postgres-only and be "closer to the metal" while maintaining a porcelain Python API. Sounds insane, but "just use Postgres" is real and it already has a number of killer features that aren't possible in (core) Django due to its complexity and commitment to a standard SQL abstraction.
by sgammon on 3/29/25, 10:35 AM
by timkofu on 3/29/25, 6:20 PM
by pknerd on 3/29/25, 6:22 AM
https://plainframework.com/llms.txt
Since so many LLMs are around, there should be a standard URI to let LLM crawl about the website/product
by system7rocks on 3/29/25, 4:57 AM
by eclipxe on 3/29/25, 4:32 AM
by oliwarner on 3/29/25, 12:04 PM
https://plainframework.com/docs/plain-api/plain/api/README.m... https://plainframework.com/docs/plain-mail/plain/mail
Yikes. If you want to fork a project, rather than contribute, bring better game.
by Dotnaught on 3/29/25, 2:38 PM
So...an effort to commercialize open source?
by peternilson on 3/29/25, 4:57 AM
by sgammon on 3/29/25, 10:36 AM
by bastawhiz on 3/29/25, 4:14 PM
From the project's About page:
> What if you didn't have to worry about deprecation policies?
So nothing will ever get deprecated? Or things I use will just get ripped out?
> What if there were no committees?
As a user of the framework, is this supposed to appeal to me?
> What if you could change anything without consequence?
This sounds like a nightmare for a user.
> What if Django wasn't originally built for a newspaper circa 2003?
Does Django really carry that much (read: any) baggage from 22 years ago? It certainly doesn't feel like it.
---
Like I'm all for a good fork, especially if you're exploring something. But this project is telling me to use it _instead of django_ and other than "we have some third party packages built-in" it really doesn't tell me _why_ I should be using it. Frankly it feels like I'd be cooked if I chose this, since migrating back to Django proper if/when this becomes abandoned feels daunting.
There's not a philosophical reason (e.g., licensing) to choose this over Django, nor is there a meaningful cost that's being avoided.
You instantly become reliant on the Plain BDFL to upstream security patches. If that ever happens.
Everything and anything is liable to break at any time, since the project professes no obvious forward or backward compatibility.
What's great about Django is that I know I can build against a major version and know I'm not going to have to spin my wheels for 8-24 hours trying to upgrade to the next major version because the security patch wasn't backported to my version. I don't want my framework to have exciting minor versions. I want my features to be exciting every 3-5 years where I can say "alright, we'll take the two weeks to upgrade to the next major version". Especially when most of the exciting features can be delivered by third party packages instead of the core.
by dzonga on 3/29/25, 9:54 PM
by samchon on 3/29/25, 10:30 AM
by callc on 3/29/25, 3:27 PM
Looking at you Meta, Apple, X
by wiseowise on 3/29/25, 1:05 PM
by indiantinker on 3/29/25, 6:58 AM
by revskill on 3/29/25, 10:28 AM
by heresjohnny on 3/29/25, 8:48 AM
by thundervelvet on 3/29/25, 3:27 PM
by danpalmer on 3/29/25, 4:36 AM
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.
by phowat on 3/29/25, 4:45 AM
by babuloseo on 3/29/25, 5:47 AM
by catlover76 on 3/29/25, 12:54 PM
by reffaelwallen on 3/29/25, 4:28 AM
by justinko on 3/29/25, 2:32 PM
by Gabrys1 on 3/29/25, 9:55 AM
“Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python.”
by inSenCite on 3/29/25, 3:18 PM
I've been able to 'release' some simple tools into the public with plotly/django, but having to also then figure out things like gunicorn, dbms, vps hosting etc. is quite time consuming.
My biggest issue is that a lot of these frameworks seem to add complexity (under the guise of simplicity) as opposed to making things simpler. They just become more things to manage. Maybe I'm missing something and someone can point me in the right direction.
There are lots of pros on here who will find things like this trivial, but for someone like me (independent with limited professional dev training) the time investment is high as is the cost of "switching" between what seem to be mutually exclusive tasks (web dev/ops, and local analytics work).