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'…
Ask HN: Go-to web stack today?
81–90 of 453 posts
Re: Ask HN: Go-to web stack today?
#82- 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…
I agree with all this, though if you're deadset on React (which is a great choice) and you know JS well, then I'd say Express is a better choice than django. Also > Do not use jwt I heavily disagree with this. JWT has its trade offs sure, but if you want to start simple and have the most "cookie like" experience then use cookies and store your JWT inside the cookie. Edit: To be clear, to get started you should use wh…
Re: Ask HN: Go-to web stack today?
#83- Backend: NodeJS with Hapi and Mongoose / Mongodb
- Auth module in Hapi (JWT)
- All in Typescript and VSCode
These libraries have been stable for a while now. Tried GraphQL / Apollo for a while but the amount of breaking updates made me go back to the stack mentioned above. Currently i'm exploring dotnet core (in C#) and blazor.
Re: Ask HN: Go-to web stack today?
#84For 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…
Re: Ask HN: Go-to web stack today?
#85- 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…
In fact don't even waste time with relational DBs unless you need to, especially if you're still prototyping the solution. (Or just use the json field in PostgreSQL if you prefer)
Re: Ask HN: Go-to web stack today?
#86- TypeScript is more important than React, static typing is such a productivity boost, even for projects of all sizes.
- Start with vanilla React and create-react-app, monitor for painpoints and look for solutions for these pain points in the community, don't look at the whole ecosystem before you start building stuff.
Backend: Kotlin on the JVM.
Kotlin is a really nice language for either functional or object oriented programming. Static typing with strict null checks are again a huge productivity boost. Standard library is very complete
Beeing on the JVM without beeing stuck with Java is a big win:
- unlocks a huge ecosystem and Java interoperability of Kotlin is superb.There are a lot of lightweight frameworks for stuff around here, enterprise Java is a myth if you are free to choose what to use.
- special shoutout to the JOOQ library, the golden middleground between an ORM and raw SQL Strings.
- JVM is fast
- fat jars are somewhat like containers, can be run everywhere with minimal setup (yeah I'm looking at you python-uwsgi black magic)
Database: Postgresql. Everything you need (relational, JSON), fast, rocksolid
Re: Ask HN: Go-to web stack today?
#87I don't believe there is a good answer to this as details are missing. What scale are you trying to get to? What level of concurrency? How much state and how often is it accessed? And what are the skill of your engineers. You could write a rails monolithic app on postgres if you're building an internal application 100 people will use. Or you could use Akka and Scala with all state in memory backed by an event journal…
Re: Ask HN: Go-to web stack today?
#88No Javascript to learn and no worrying about ECMA versions or whatever today's new build tool is. Shared code between client and server. Type safe so you can get a proper IDE, refactoring and a lot less bugs. Full reuse of React + Javascript libraries as well as the incomparable JVM ecosystem on the backend.
Also probably the fastest and most scalable language you can use and is used at Twitter, Netflix, Linkedin, Spotify, Tumblr.
Re: Ask HN: Go-to web stack today?
#89- 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…
Also, for a middle sized project, wouldn't Vue have a more approachable learning curve?
Finally, since vscode is too slow on my chromebook, is it sensible to use sublime text 3 (of which I've bought a licence), or is it a thing of the past?
Re: Ask HN: Go-to web stack today?
#90If it's a web app, my weapon of choice is Haskell/Yesod because I have opinions about how complexity grows over time and how that should be managed. Dynamic languages fall short of my needs.
If I need a complex UI (lots of state and interactivity), I use Elm. It works, and in my experience it works better than dynamic alternatives (JavaScript, ClojureScript, etc). TypeScript and Flow are not alternatives to Elm.
For storage I just use Postgres, and sometimes Redis if I need it.
For infrastructure, I do just about everything with Nix/NixOS/NixOps (although I develop on an Apple Macintosh Book Air).