4 ms·
Backend: Django w/ Django Rest Framework Frontend: Vue Prefer Django, because it has so many things built in (authentication, other protections to build thing
by shapath 8y ago
Backend: Django w/ Django Rest Framework
Frontend: Vue
Prefer Django, because it has so many things built in (authentication, other protections to build things super fast and not worry), many people call it magic but if you read the code, it's very easy to follow. [1] & [2] sites helped me a lot to remove the "magic" as well.
Prefer Vue because it is strongly opinionated, unlike other JS frameworks (i.e. React). Again, learning Vue allowed me to build things super fast and other having to worry about things like Gulp, Webpack and many more things that I don't understand in the JS community. Personally for me the JS community moves too fast for my liking and Vue has been a god send, especially with the help of Vue Cli [3]
Database of choice: PostgreSQL, because it is used by several developers rather than MySQL when building anything with Django.
Building realtime: I use a external service like Pusher or Pubnub, because they have generous free plans to get you up and running. But there is Django Channels if you don't want external dependency.
[1] http://ccbv.co.uk http://ccbv.co.uk
[2] http://www.cdrf.co http://www.cdrf.co
[3] https://cli.vuejs.org https://cli.vuejs.org
- reindeerer 8y agoSeconded on Django. It's excellent, especially if you get it out of the box with cookiecutter-django and DRF ( rest framework ) Plus, with things like Zappa it's easy to go entirely serverless Django + NewRelic for APM is plain magic EDIT: Oh, and Celery if your use case needs it. Brillant
- misiti3780 8y agohow is django "running" on lambda these days? -- been meaning to check that out
- EmilStenstrom 8y agoI'd say that Django is not a great fit for lambda. Lambda works best when you architect you code around it, with lots of tiny methods. Django does not encourage this way of coding (just like the other frameworks).
- y4mi 8y ago> Lambda works best when you architect you code around it, with lots of tiny methods as a total hobbyist: why? deploying a django app with zappa is extremely painless... its only issue is that you still need an SQL backend, as DynamoDB isn't really an option unless you want to kiss most of djangos values goodbye. that would've been my take why you'd want to use flask... because there is very little value in django if you remove models, caching, authentication, permissions and more (that can't be used without external infrastructure) from the equation.
- EmilStenstrom 8y agoAs a non-expert on lambda... Django encourages one function per view, and adding database calls, celery functions, maybe API calls, to your views make them quite big, and potentially slow to run. Running slow functions is not how lambdas are supposed to work (as I've understood them). Rather, you'd want smaller ones that call out to other smaller lambdas. That coding style is not something lambda encourages.
- reindeerer 8y agoThat's a very confused take on how things work. Celery functions run async, and Django frontend view responses are normally lighting fast
- x3al 8y agoI guess it depends on size of your app and expected load. When your app is small and you got almost no users, zappa is great: your lambdas are lighting fast and you're in aws free tier. When your app grows to like 200k SLOC and 50+ lines in requirements, chances are that it starts quite slow. Do you really want to pay for that? When your load is high enough, well, aws lambdas become quite expensive even without zappa overhead compared to, say, EC2. https://servers.lol/ https://servers.lol/ should say if serverless makes sense for any defined usecase. Additionally, lambdas have hard restrictions (like 15 minutes limit) and sometimes it's a dealbreaker for you.
- Dowwie 8y agoSo programmers are running servers on serverless platforms? Is this common?
- wbihl 8y agoYes, it's super cheap and simple. Check out serverless.com to get started. Run your vue/react/angular app on a S3 bucket, and then only handle the API calls on lambda functions. Pay only for what you use, and it's infinitely scalable.
- bkuehl 8y agoSeconded on Vue. If you haven't used a frontend JS framework in a while, Vue will still be easy to pick up and learn. I love it. As for backend, Django, Rails, even .net core will do. Whatever you're most comfortable with.