5 ms·
Look, this argument is always thought provoking, but not worth any devs time to execute. Django/Rails/Spring/.Net have years of combined dev experience. They c
by djstein 6y ago
Look, this argument is always thought provoking, but not worth any devs time to execute. Django/Rails/Spring/.Net have years of combined dev experience. They contain almost all the things every web application needs, with highly adopted off the shelf plugins for everything else. When engineers fall for the trap of Flask/Express/Sinatra/Go they don’t realize they’ll either be a. Writing everything the above frameworks have by hand or b. Cobbling together a ton of different/non related tools that may not be battle tested. In either case they spend time writing features we solved 20 years ago. My favorite example of this is database connections/migrations/translations.
You suggested using nextjs for the backend. This weeks flavor of nextjs database connections is to be done with Prisma. Setting the two up together is no walk in the park. So great, you’ve spent a week setting up Prisma and the layers which connect it to your API. You’ll probably now task yourself with connecting the database to a GraphQL API with a Playground (another week). What about auth? Hand roll of reach some the suggested Auth0 library for nextjs. Another week of integrating. You can see the pattern. Meanwhile, the Django user has everything setup in day one, nextjs app for front end only deployed on day 2, and is building user features day 3.
We haven’t even talked about setting up request middleware, integration with logging tools, distributed tracing, exception aggregators, sending email, scheduled background tasks. Which you can spend another week for each or just go to your battle tested framework of choices’ doc page.
- sandGorgon 6y agoim very conscious that this may trigger a very opinionated war. so let me backoff for a moment. My comment is in context of this project and not a generic statement. My startup is built entirely in python. A boilerplate - by definition is a get started quickly tool for people that are (by choice or otherwise) not interested in going to the depths of a framework. In that very particular context, a Nextjs based boilerplate will beat this one. As an example, let me share a nextjs template that you can buy for 20$ https://themeforest.net/item/react-material-bootstrap-4-admin-template/20978545 https://themeforest.net/item/react-material-bootstrap-4-admi... https://themeforest.net/item/react-next-modern-landing-page-template/23169879 https://themeforest.net/item/react-next-modern-landing-page-... again, im not trying to crap over the OP's attempt. I seriously commend it. But if there's someone looking for a boilerplate to get something with a frontend/backend up and running quickly...i still do think doing it in one language/framework is much better. P.S. And I do think TS is a fantastic language. But again, my point was not a purist Python vs TS/JS slugfest
- city41 6y agoBut these templates you've linked to are frontend focused. Next doesn't really address the backend much at all. Most of what it does backend wise is to help the frontend (such as SSR). If I needed a full webapp spun up quickly (db, auth, api emails, etc), I'd choose Django before Next.
- sandGorgon 6y agowell YMMV, but nextjs is fairly complete. e.g. https://nextjs.org/commerce https://nextjs.org/commerce here's one with Firebase auth, graphql, everything already setup https://themeforest.net/item/livani-react-next-ecommerce-store-template/26621984 https://themeforest.net/item/livani-react-next-ecommerce-sto...
- city41 6y agoDon't get me wrong, I like and use Next. But from what I can understand, it's just not as complete as Django, Rails, etc. I think the fact that template is using Firebase for its storage says a lot. Next itself does not help you with Firebase or databases or any kind of persistent storage. It's entirely left up to you. That's a huge difference from Django, Rails, etc. The same is true of auth and many other things.
- tln 6y agoThe nextjs one uses a third party (bigcommerce) as the back end. Firebase is also a third party backend. Any recommendations on one where you can own the backend yourself, like Django? Without composing all the pieces manually? I'm currently running a Django backend, Vue frontend, and think Django is a fine tool -- but occasionally look for a nice cohesive Django alternative in the JS world.
- heliodor 6y agoI've bought a number of templates over the course of a year building my company's website. The general result is that the code quality is very low and the class names are not specific enough, so you get bogged down in css when you try to customize things. Fool me once ... fool me twice ... fool me three times ...
- megaman821 6y agoTotally agree. Flask (or any other micro-framework) is great for beginners because there is very little configuration and it maps closely to the request-response cycle. But, if you are working on a real project and have to ask between a full-stack or micro framework, you probably don't even know the things you are missing by choosing a micro-framework. A lot of thought has been put into Django, most Flask setups I have seen are not at the same level of quality.