I'm back on Google App Engine Java 8 runtime with a Clojure(Script) stack. I haven't found anything comparable yet that offers this amount of flexibility, scalability and generous free tier to get started.
Google seems to take Steve Yegge's Platform Rant [0] as a blueprint to try to beat Amazon at the Cloud game and creates an API for anything you can think of.
As usual, the documentation and their support is terrible, but who needs support or documentation when you have a REPL?
It's been a real pleasure to work with and I'm currently in the process of open sourcing some tooling libraries to smooth out the rough edges (Caveat: These are not stable yet, so use at your own risk).
Currently working on a CLJC REPL over HTTP integrated with Emacs, but the following are available already -
Example ring project:
https://github.com/alpeware/jaq-example
Leinigen plugin:
https://github.com/alpeware/lein-jaq
Clojure bindings for App Engine services:
The last few personal projects I've handled had been Elixir/Phoenix/jQuery, but I'm now switching out jQuery for Elm and am really liking it so far. I'm building a CI system which is more or less a small state machine which Elm benefits from. Moreover, Elm seems to be really loved by the Phoenix community and integrating between Phoenix channels and Elm subscriptions was super easy
Picking a stack is a combination of the tools which will effectively solve whatever issues you have that work for how you develop as well as work with your computing platform(s) of choice.
a) start with whats readily available and what you can understand and learn/build from there. b) find what widely popular for your market (solutions will vary) and start with that.
A better question is "I am wanting to do [this] (and maybe [that]), what stacks work best for it? and why?"
I do data based web APPS, PHP/MySQL are well suited, they are pretty unrestrictive and very flexible - in that you need to be aware to code for security: watch your inputs and how code can be called and learn some good programming practices to avoid spaghetti code. They also scale pretty easily. They aren't bleeding edge exciting but get the job done quite easily.
Besides just asking find web apps you like and research what they are created with.
I've been using Python + Flask on personal projects just because Python.
On the front-end, I try to use as little JavaScript as I can get away with. Recently, I've been playing with Bulma, a CSS framework, and I've been liking it so far.
I've been meaning to learn some React for some parts of my apps that require more interactivity.
I highly recommend Flask for people with some Python knowledge.
* Code sharing between client and server
* Typed AJAX between client and server
* Component based UI on the frontend
Frontend: React4s (shameless plug I suppose)
http://www.react4s.org/examples/todo-list
Backend: Akka HTTP
https://doc.akka.io/docs/akka-http/current/index.html
Typed AJAX: Autowire with uPickle
https://news.ycombinator.com/item?id=16508965
General popularity of LAMP python and rails, with very few js FOTM stacks mentioned.
* Frontend: Vue.js 2, JavaScript ECMA 2017
* Backend: Erlang/OTP 20, Elixir 1.6.3, Phoenix 1.3.2
* Persistence: Postgres 9.5.4.2
* Hosting: Vultr
Home: Elm + BaaS (Parse)
Postgresql as databases