Live data from Hacker News

Ask HN: What stack would you use to build a CRUD web app in 2018?

news.ycombinator.com

11–20 of 184 posts

Re: Ask HN: What stack would you use to build a CRUD web app in 2018?

#11
The same as 4 years ago.

Server side rendered templates with Rails or Flask using Postgres + Redis + background worker of choice.

I'm starting to build some apps with Phoenix now, but it's not because I feel the above 2 are poor choices. I just like learning new things, especially when I see big wins of potentially using it. It's another tool in my tool belt, not an all-in replacement of the previous thing.

Re: Ask HN: What stack would you use to build a CRUD web app in 2018?

#12
Clojure(script) with re-frame, using the luminus template.

https://github.com/Day8/re-frame http://www.luminusweb.net/

edit: Should probably say why...

- Clojure and clojurescript give nearly identical experiences on the front and back end, with the ability to actually share some code between the two.

- Clojure is dynamic and spec gives some really awesome validation and generative test capabilities

- There is a lot of fuss around javascript frameworks and dealing with html / css build tools and their arbitrary syntax. Clojure front end frameworks provide tools that make templating html look just like regular data structures in clojure, styles too. With stylefy you can also keep all styles inline while supporting media queries. It really is a low cognitive load setup once you get going. I love it.

https://github.com/Jarzka/stylefy

edit-2: More whys...

- re-frame is basically redux but easier and with less boilerplate. I use it for small and large projects.

- Pure immutable functions are such a game changer. Even poorly written projects with tons of features can be reasoned about and broken down for long term maintenance if the language supports immutability and pure functions. Re-frame really plays to this strength for managing state and I can't say enough good things about it. Been working with it for 2+ years and I can't imagine switching for anything else I've seen out there.

Re: Ask HN: What stack would you use to build a CRUD web app in 2018?

#15
post #4

Depends on how complicated the app is. Most of the times a good old non-SPA with NodeJS / Express / Some ORM with vanilla JS / Handlebars and SASS will do the job without having a huge technical debt. If on the other hand the requirements are to have a more complicated SPA, I would go with React / Redux and a NodeJS / Express / ORM for the API. Hosting the front-end on an S3 and the backend on a Digital Ocean Droplet…

NodeJS + TypeScript works wonderfully. Nunchuck templates (Jinja2 inspired).

And we use Angular on the front end.

And I'd recommend GraphQL, takes a lot of worry about API design and wiring off your shoulders.

Re: Ask HN: What stack would you use to build a CRUD web app in 2018?

#16
post #2

One you are familiar with, if possible. Django, Rails, or maybe Elixir+Phoenix if you absolutely need something modern.

I completely agree with this. Whatever's most familiar for you, but hopefully, it should be familiar for other people too. Try to write it in a way that you can switch out parts if you really needed to. For example, I'm still a Rails programmer but I've been structuring my apps differently from traditional Rails (oftentimes just doing the API backend).

However, that's only because I still have the luxury of time. If I had a gun to my head and a finite number of hours to code an app, then I'd go with vanilla Rails. If I was given a few weeks to study a new framework, I'd go with Elixir/Phoenix, but only because I spent a few days trying it around and while I'm not particularly fluent with it yet, I like its design and speed a lot more than Rails.

I think this is why we perfect our craft. We have to be able to code fast or code pretty, depending on the circumstances.

Re: Ask HN: What stack would you use to build a CRUD web app in 2018?

#17
Twenty years ago, a simple CRUD app would have been written in Visual Basic or Delphi. It would have needed one programming language, and one framework. The tool support would be good: everything would talk to everything else. Heck, you'd even have an IDE with autocomplete!

Today, a typical web app requires no fewer than five different languages (JS, HTML, CSS, Python/Ruby/whatever on the server, SQL). And that's before you even start on the frameworks:

  - Something to make JS bearable (eg React)
  - Something to make CSS bearable (eg Bootstrap)
  - Possibly another JS framework (eg Redux)
  - A framework to make web serving bearable (eg Flask)
  - Something to make database access easier (eg SQLAlchemy)

  - Did I mention Webpack, Docker, AWS, CI/CD...?
Now, I'm sure we're going to have a big lively thread, debating which technology we should choose for each of these slots (and whether the answer has changed since last week). But the ecosystem which requires so many components, for a simple CRUD app, is utterly insane.

We designed Anvil (https://anvil.works) to be the complete opposite of this. It's a development environment that lets you build and deploy full-stack web apps, from your browser, with nothing but Python. There's a visual designer, client code, server code, and a built-in database. Unsurprisingly, when we did the head-to-head tests, a typical CRUD app is about seven times faster to build with Anvil than with traditional tools. Looking at the list above, are you surprised?

Re: Ask HN: What stack would you use to build a CRUD web app in 2018?

#19
post #11

The same as 4 years ago. Server side rendered templates with Rails or Flask using Postgres + Redis + background worker of choice. I'm starting to build some apps with Phoenix now, but it's not because I feel the above 2 are poor choices. I just like learning new things, especially when I see big wins of potentially using it. It's another tool in my tool belt, not an all-in replacement of the previous thing.

100% agree - unless you're doing anything especially novel, or know you're getting 10's of millions of connections from day 1, with the ecosystem around it, I wouldn't hesitate choosing Rails + Postgres + Redis + Sidekiq.
Post reply on HN