Live data from Hacker News

Ask HN: Go-to web stack today?

news.ycombinator.com

161–170 of 453 posts

Re: Ask HN: Go-to web stack today?

#162

PHP /laravel and react.

Yep.

In the past years Laravel has helped us quickly build prototypes that we could conveniently grow into enterprise-scale apps.

Backend: PHP/Laravel Frontend: Same, using VueJS as needed/wanted. Database: Usually starting off with SQLite and switch to a more appropriate choice like Postgres, MariaDB or even MSSQL.

Re: Ask HN: Go-to web stack today?

#163

Here's an interesting stack: https://github.com/ornicar/lila It's the server/client for https://lichess.org/ which is a powerful online chess server. Scalla with Akka actors is used to provide realtime multiplayer chess (bullet chess games, where each player only has a minute or two to play an entire game, are very popular there). The client-side is written in TypeScript, and rather than use React for the vdom, they'…

I'm a regular HN reader, yet I've never heard of half of these. This doesn't sound like the kind of stack you'd want to adopt if you ever want anybody else to work on the code.

> I'm a regular HN reader, yet I've never heard of half of these

Scala, Akka, TypeScript, React...uh, where have you been?

Lichess is an impressive project, their chess app is not only excellent compared to everything else out there, it's incredibly efficient, and handles a ton of traffic with ease. I don't think the creators chose the stack without reason.

Re: Ask HN: Go-to web stack today?

#164
post #130

Scala for backend and Scala.js for front end. Use terms SPA and SSR like the cool kids do. Only you can share the same code between the two and in a strong statically typed way.

> use the terms SPA and SSR like the cool kids do and how are you doing this in Scala.js? As far as I can tell, outside of rolling your own, there's Binding.scala, Monadic-Html, Scala.rx, and a handful of other, perhaps maintained, in-house libraries for building SPAs (i.e. not dependent on the "cool kids" libraries, like scalajs-react). Just curious what your approach is as I had a great time doing a project in Scal…

Sorry the kind of work I do doesn't need spa.

I use Scala.js for plain well written client code.

If you're into spa, there's also monix, outwatch and a few others I think.

Re: Ask HN: Go-to web stack today?

#165

Earlier quoted context omitted.

I'm a regular HN reader, yet I've never heard of half of these. This doesn't sound like the kind of stack you'd want to adopt if you ever want anybody else to work on the code.

It's interesting that your view works on paper but in practice lichess has many contributors and this has never really been a problem. This is probably not the go-to stack but not for the reasons you've stated.

What would be the reasons, then? (Those that he didn't state, at least.)

Re: Ask HN: Go-to web stack today?

#166

My personal preference: React on the Front-end, PHP7+Symfony4 on the Back-end with Postgres, RabbitMQ for messaging and NodeJS for microservices that deal with various real-time tasks based on those messages.

I stopped using Symfony at early version 3, (php 5.3 I think ) started to use nodejs, express, which lead to start using react and code SPAs. Last year I came back to php stack, and it was refreshing, Symfony 4 is really productive! composer flex system with recipes to finish the bundle configurations, and webpack encore makes really easy to bundle js,etc. I think Symfony 4 is underrated when you see how popular Reac…

I find S4 to be really fun to develop with, it's just such a well put-together framework that it's a joy to use, even when you're digging into the more obscure bits. Especially when paired with PHPStorm.

Re: Ask HN: Go-to web stack today?

#167

For static websites, https://getstatik.com/ For “dynamic” websites, Mithril ( https://mithril.js.org/ ) and Redux written in Haxe ( https://haxe.org/ ) on the front end with Rocket ( https://rocket.rs/ ) and SQLite on the backend, proxied behind nginx with Let’s Encrypt on the backend. Personal projects hosted on a VM at Linode, company projects hosted on VMs at Google Cloud. It’s a somewhat unique stack but I love i…

Its an interesting stack, for sure. I'm only surprised by the sqlite choice. With such a concurrent and speedy backend, what do you do about concurrent writes and the lack of row/page level locking in sqlite?

Re: Ask HN: Go-to web stack today?

#168
First, be entirely sure that you actually need an SPA.

So, in stages:

- Database: Postgres (you could start with any relational DB, Postgres is just one of the best). It's very, very likely that your model is gonna be relational so better pay that debt upfront. Don't even consider NoSQL this early; we're paying a heavy price on my current job because the initial developers bought that non-relational databases were better at prototyping. Worry about NoSQL and consider switching to any of those if you see, once you release, that the type of data you're handling is more of a stream of mostly independent records than an actual model.

- Like I said, make sure that you actually need an SPA. It's likely that you don't and in that case you can get away with using Django; it gives you pretty much everything you could possibly need.

- If you're dead set on a SPA, go for a more lightweight framework geared towards creating REST APIs. The usual recommendation is flask with any of the rest extensions, but there are other options such as falcon or molten (which is recent, but really well designed).

- Since this is a SPA, use Vue. I find it to be leagues ahead of the js frameworks when it comes to striking a balance between power, expressiveness and ease of use. Much like Flask in the backend, for that matter.

- Dockerize. I don't like promoting a specific tool in this area but docker will make it very easy to develop and deploy your application (also makes it easier to implement the usual suspects like a reverse proxy, a queue, a cache, etc) without having to rely --and thus essentially marry-- any specific tool provided by a given cloud platform.

- Use gitlab for version control. They give continuous integration and private repos for free out of the box.

Re: Ask HN: Go-to web stack today?

#169

- On the frontend, use React with TypeScript. Create React App now makes it dead easy. Just do: npx create-react-app myapp --typescript - Do not use redux until you know React well. You might not need it. If you do need it, use `redux-starter-kit` offered by the core Redux team. - For backend, just use Django (or Rails). Elixir's Phoenix is also very well thought out. - If you use node: express, sequelize. Async/awai…

Although I think it's not a big issue, I'd look into Vue instead of React. Imo it's simpler and give you a more complete solution out of the box (routing, reactive data layer). Now, I've barely tested Django, but I would not go the python way unless you have a good (other) reason. Rails seems to have a much more developed web development community. Node might be a great choice due to you being able to use the same la…

Rails is hard-core to maintain. Every company I know that used rails for their projects says it was a mistake. It is flaky with breaking changes all over and it is hard to find good developers. Sane thing to do is to stick with Python. Django is boring but it is rock solid and it pays itself multiple times.

Re: Ask HN: Go-to web stack today?

#170
post #127

I am surprised no one has mentioned Pyramid and SQLAlchemy yet. SQLAlchemy is by far the most complete ORM/Query-Builder I have used (yes, I have tried out Rails, Django and Hibernate). Also Pyramid's traversal routing is awesome to build REST-applications and ACL authorization. What ever stack you decide on, I recommend to stay away from too much magic as it complicates debugging and understanding the framework comp…

I've made good experiences with that combination as well, and it is very noticeable that Pyramid was truly designed with extensibility in mind (just look at e.g. using different or multiple template engines or using a different ORM). Pyramid also largely avoids magic (unlike Django and Flask, though Django likes magic a lot more) and global state (in a clean way, not Flask's put-everything-in-a-function way).
Post reply on HN