by yblu on 11/22/21, 9:26 PM with 186 comments
It's been a while since I can develop from a clean slate and I was hoping web dev in 2021 would be much simpler than what I am used to. However, I spent this entire morning looking at modern frameworks (not going to name them to avoid turning this into a different kind of discussion) and I'm kinda disappointed. They all look complicated and require lots of configs and plumbing to get started.
Any stack/framework that you find simple and joyful to develop with?
by Mikeb85 on 11/22/21, 10:17 PM
Edit - to make life extra easy also set it up with Postgres and deploy to Heroku. Everything literally just works.
by codegeek on 11/22/21, 9:48 PM
PHP => Symfony or Laravel
Python => Django or Flask
Javascript => Node/Express
Ruby => Rails
Then there are others like elixir/Phoenix etc and then you can do your own in Go etc.
by ajjenkins on 11/22/21, 10:18 PM
But if you really want a full stack framework or don’t want to deal with fancy JavaScript frameworks, I think you’re better off sticking with Rails/Django/Express or something you’ve probably heard of.
by dmje on 11/22/21, 10:41 PM
WordPress.
Why? Incredibly easy to dev against. Powerful API built in. User model. Flexible theming. Plugins for extensibility. Multisite for more complex apps.
I've built a few web apps in house using it and am now making a couple for production use. I might one day find I need to get this made bespoke but I can't see a requirement any day soon. WP does everything I need.
by e67f70028a46fba on 11/22/21, 10:19 PM
by temp8964 on 11/23/21, 3:27 AM
I heard .net Blazor or Razor page is something like that, but as I checked, they don't hide html/css/js.
R Shiny is the closest I get. You don't have to use any html/css/js code to build a web app. Only R language is needed. See a simple example here: https://shiny.rstudio.com/articles/basics.html
I would love to hear about more options here.
by rsp1984 on 11/22/21, 10:28 PM
by holonomically on 11/22/21, 9:49 PM
by vcool07 on 11/23/21, 12:22 PM
by teitoklien on 11/23/21, 3:29 AM
Strapi has a great builtin admin panel and cms And gives you built in api to create, read , update and manage access, so its almost like a combination of wordpress + hasura kinda, and it comes in one docker image to host, you can choose between sqlite3 and postgres for the db.
Hugo for building my static web pages and page templates, after that I either render it statically with hugo (and serve it with nginx) or migrate the final file into template folder for my python app
Then for the dynamic content (SSR) , fastapi + jinja2 (for simple pages) or if i need to built a custom api (i try to handle it with strapi and only build my custom api if i need to)
When i want to build a spa , i use lemonade.js for csr, with fastapi for custom apis, and strapi takes care of the simple crud apis.
[strapi](https://strapi.io/)
[hugo](https://gohugo.io/)
[fast-api](https://fastapi.tiangolo.com/)
[lemonade-js](https://lemonadejs.net/)
by mr-karan on 11/23/21, 4:20 AM
With Golang, you actually don't need a mega framework to get started, you can use small libraries that will do the job for you without doing any magic behind the scenes. (Like, for sure you can use echo[0] but you would probably be happy with mux[1] and it's middlewares itself). And it's not uncommon in Go codebases to repeat yourself. I'd argue that's a much better paradigm than polluting your codebase with 10k indirect dependencies, the garbage that is the Node.js ecosystem.
[0]: https://echo.labstack.com/ [1]: https://github.com/gorilla/mux
by thess24 on 11/23/21, 12:09 AM
Does anyone have an opinionated stack they like with Django to get things up and running quickly that could also set me up well for the future for a website and an app(if I want to transition the website to a stable business, etc)?
The things I'd be looking for opinions on:
- django vs DRF
- react (or next.js) vs vue vs something else for frontend
- what other tooling should I use for modern front end development
- what else is in your stack for CI/CD, rollbacks, db migrations, deployments, etc.
- do you use any other templates or themes for the frontend to make the UI look good?
- how you handle security / auth when using a front end framework with django as the backend -- are there any tricks? I've heard JWT can cause headaches
- any django packages they recommend using, or other front end packages that are popular
Thanks!by Glench on 11/22/21, 11:04 PM
I felt the same way so I made my own full-stack "framework" just for me centered around the Svelte component library which I love:
https://github.com/Glench/full-stack-svelte-prototype/
Been using it in production and really really happy with it. Obviously kind of stinks to not have community support but so far it hasn't been a huge issue.
It basically sets up all the crap that I don't want to have to think about while keeping a tight coupling between the front-end and back-end (which is how I develop) — clear separation of code that runs on the server vs the client (with code splitting and CSS generation), rendering pages on server and hydrating client components, communicating between the server and client, re-rendering components when new data arrives. It really fits my needs well.
by torvald on 11/22/21, 9:59 PM
Put in on a VM, deploy with Ansible, and call it a day.
by _peeley on 11/22/21, 10:46 PM
The PHP language obviously still has some sharp edges and annoying design choices, but it's seen some huge improvements in the past few years imo. Simply using a framework like Laravel will also save you from some of the more infamous footguns, since there's a lot of secure/sane defaults included.
by spicyusername on 11/22/21, 9:59 PM
If you don't mind separating them out (which lets you use different tools for your web tier and your middle tier) I'd probably use a combination of a static page driven by VueJS on the frontend and Golang on the backend for the API.
by cookiengineer on 11/22/21, 9:59 PM
It tries to automate a lot via the ember-data module (which also makes queries automatically, e.g. left/right joins etc) so it shines with its predefined rules, lots of former rails people seem to contribute to its ecosystem these days.
by alexcnwy on 11/22/21, 10:25 PM
Very lightweight without much black box magic.
Miguel Grinberg’s tutorials and book are a great and quick crash course.
by thorin on 11/22/21, 9:30 PM
by barosl on 11/22/21, 10:53 PM
Recently, I tried Next.js and it changed my mind a bit. It prefers convention over configuration, requiring tremendously less configuration compared to other frontend frameworks. It is still a bit complex, but hides the fact nicely under a well-defined abstraction. I might try another project with Next.js in the near future.
by tootie on 11/22/21, 10:29 PM
by tikwidd on 11/22/21, 10:35 PM
Azure functions or Google Firebase for the backend.
With this approach you might not need to pay a cent depending on your usage, plus you can take advantage of the large ecosystem of React components. For a "non-serverless" approach, I would set up a VM on Linode and use docker-compose behind nginx.
by brundolf on 11/22/21, 10:07 PM
by edanm on 11/23/21, 8:13 AM
Over the last decade, people moved away from thinking of a backend+frontend combo as being the correct abstraction, and more towards thinking of a web client as just another client, akin to a mobile client, which happens to be connected to an API. Because of the very different needs of the two parts, it became much more popular to split them up (either conceptually, or with actual separate codebases being deployed separately).
So nowadays, the standard way of looking at things is to pick some kind of framework for building a backend, e.g. Django, and some kind of front-end framework, e.g. ReactJS, and develop them separately.
I'm not saying this is the only way to do things, but I believe this is correct approach a lot of the time.
by thrower123 on 11/22/21, 10:02 PM
by thegreatpeter on 11/22/21, 10:37 PM
Plenty of folks who "haven't used a framework, but heard X is great" are missing out on the real deal. Give it a go, you won't regret it!
by softwarerero on 11/22/21, 10:39 PM
by pabe on 11/23/21, 7:33 AM
Concentrate on delivering value to your target group. I'd recommend not to do SPA frontends just for the sake of it.
A terrific solution for creating most websites with some dynamic components is the Astro framework. Handles partial hydration and allows using Svelte, Vue, React for dynamic components.
by nikivi on 11/22/21, 10:16 PM
I personally am looking into using it (or most probably next.js) with Cloudflare Workers / Durable Objects. Running backend code close to end users is awesome.
by connorlay on 11/23/21, 6:40 PM
For a more conservative approach, if you are looking to rapidly scale up a team and/or desire a huge ecosystem of packages to use, then I'd say modern Ruby on Rails is the way to go for maximum initial velocity. However, in my experience Ruby on Rails requires a lot of experience and discipline to keep things "on the rails" as you grow your application, and that initial velocity can quickly vanish if you are not careful.
I say this as someone with a good amount of experience with both frameworks.
by bengale on 11/22/21, 10:12 PM
by throwthere on 11/22/21, 10:26 PM
by eddhead on 11/23/21, 8:08 AM
by globalise83 on 11/22/21, 10:40 PM
by harvey_dear on 11/23/21, 12:00 PM
A single codebase is used to create applications for Android, iOS, Mac, Windows, Web, and Linux with Flutter. It lets you build user interfaces, add new features, and fix bugs without sacrificing speed.
However, hire a dedicated developer for your app development projects if you wanna build a website or an app click the link down below.
by tchock23 on 11/22/21, 10:39 PM
I've met a few devs recently that are starting with that for simple CRUD projects even though they could easily spin something up in Rails.
by BackBlast on 11/23/21, 5:35 PM
I looked extensively at various frameworks to see which would make me most productive in starting projects from scratch in my limited development time and this is the one I settled on.
For me, front end is the biggest time sink, so I wanted one that had the best coverage there. Full components suites debugged and working, etc. It really helps that it can target SPA, PWA, mobile (capacitor) as well as SSR.
by mostertoaster on 11/23/21, 7:23 AM
I enjoy writing typescript so much and from the answers maybe I’ll try next.js
I know rails is pretty impressive in what it can get setup and running super quickly but I have little joy writing Ruby.
by ranuzz on 11/23/21, 3:52 PM
[Spring boot](https://spring.io/projects/spring-boot)
by funerr on 11/22/21, 11:11 PM
by ipaddr on 11/23/21, 4:03 AM
by omnimus on 11/22/21, 10:13 PM
by whitepoplar on 11/22/21, 10:24 PM
by shireboy on 11/23/21, 1:00 PM
I’m also doing some projects in nodejs+Fastify+vuejs
One weird thing: I prefer not using Webpack, full spa frameworks etc if I can help it. Just add vuejs from cdn and use it to add client behavior to plain HTML output by asp.net or nodejs if I can get away with it.
For mobile app dev, Ionic Framework in the angular flavor- last I tried their Vue implementation was lacking.
by miki_tyler on 11/22/21, 11:58 PM
by newacc9 on 11/22/21, 10:47 PM
by officiallylucky on 11/24/21, 5:35 AM
by elchin on 11/22/21, 10:12 PM
by bluewalt on 11/23/21, 11:13 PM
by ushakov on 11/22/21, 10:36 PM
by kamikazechaser on 11/23/21, 6:04 AM
by thepra on 11/24/21, 10:09 PM
by puyoxyz on 11/23/21, 2:27 AM
by bnchrch on 11/24/21, 7:37 AM
by b2rsp on 11/23/21, 9:09 AM
by hemantv on 11/25/21, 4:57 AM
by AlphaGeekZulu on 11/22/21, 10:31 PM
by auspex on 11/23/21, 3:53 AM
Golang backend
Containers
Fargate
RDS
by fulafel on 11/23/21, 6:07 AM
by dusted on 11/23/21, 6:59 AM
by wly_cdgr on 11/22/21, 11:04 PM