My stack choices depends on the size of the project I'm involved with, for enormous projects, I have an extra API layer between the frontend and backend, the API layer uses CORS and a custom designed authentication and authorisation system.
So my API layer is usually all Java + Spring MVC using Jackson as a JSON parser, the API layer is connected to RabbitMQ using Spring AMQP, sometimes people want specialised UIs, so I would give them API access and their own UI, sometimes people want a simplified version of the API in SOAP (often .NET clients) so their backend services could integrate into my software, then I would use Spring Web Services and JAXB and also connect that to RabbitMQ using Spring AMQP - so multiple apps running on the API layer and multiple frontends connecting to these multiple APIs, some are my own frontends, some are customer-built frontends which I have no control over. On some of these APIs I get high volume of traffic, so using Spring Cache, I integrate Memcached into some of the API calls which gives me very fast throughput and allows me to manage my load without needing an excessive amount of servers.
On the frontend I either have a mobile app and / or an html / css / JavaScript app which then connects to the API layer using JSON POSTS (I'm busy experimenting to see the effects of sockets, but so far JSON POSTS works well enough for business applications). If it's a mobile app, I either write native Android and Swift or in most cases build it using Cordova and jQuery (and Bootstrap). If it's a fairly large Cordova app, I switch to Dart; for me managing 250k+ lines of JavaScript is much easier if it's written in Dart due to having a proper compiler.
If it's a web based frontend I use CSS3 + HTML5 and I have written my own Dart UI framework which compiles to JavaScript. Often I would use Bootstrap, but only the CSS since I've written my own Dart bindings to replace the JS bindings in Bootstrap. Looking at Angular Dart 2, I see they already do everything my framework does plus some extra goodies I've yet to write, so will probably be switching away from my own framework to Angular Dart 2 from next year simply so that other people can also work on my systems without my presence.
Backend, I wouldn't call it that, I usually have multiple "backends", each doing a specific service. I have an authentication / authorisation application written in Java connecting to Redis, this application is connected to RabbitMQ using Spring AMQP, all authentication / authorisation is done via this standalone app and I can plug this app into new projects' queues to give me Authorisation and Authentication out of the box or even share accounts between applications.
I have an Email application, SMS application, PDF application and lots of standalone applications that I can just plug into RabbitMQ and my new application has that functionality available immediately without writing code - I use Google's NoSQL database to store all API calls so I have a track record of what application sent what and so I could bill clients for usage if it's part of our agreement. These applications are typically running on Google Compute Engine, but looking at Kubernetes / Google Container Engine to reduce my costs and then I would either use Debian Linux or CoreOS if I'm deploying Docker images.
Each application usually has a Core application (also in Java) which contains that application's business logic, this application orchestrates all the other standalone applications. Typically I would use MySQL since I do a lot of business applications, on top of MySQL I have an ORM layer, I prefer using Hibernate, but I've also used straight JPA and JDO in the past. To generate my Hibernate models, I use a tool called Spring ROO (using Spring ROO, I can generate enormous database schemas simply by typing what I want in a shell and see 1000s of lines of Hibernate models being written for me), to get the most out of Hibernate, I use a connection pool system called C3P0 and then often times I would also implement query caching using Memcache + Hibernate Cache.
A Core application is connected to RabbitMQ using Spring AMQP. For business processes, I use Camunda, it's lightning fast for processing business processes and then for individual rules inside business processes, I would typically use Drools, but I see on Camunda's website, they have their own Rules engine now, so will go have a look to see what it does.
Java apps I would typically package inside a Docker image running Jetty and web frontends (HTML + CSS + JS) I would package inside a Docker image running NGINX. Some client websites which are integrated into my systems are in PHP, those are packaged into PHPFPM or if they need .htaccess files, Apache.
Development Tools, I recently (8 months ago) started using IntelliJ Idea Ultimate, it's probably the best IDE I've worked with supporting Java, Spring, Hibernate, Docker, Dart, PHP, Python, JavaScript and just about anything I work on, it has excellent support for all of them.
... and these are a few of my favourite things; there are some others I haven't mentioned, but the top stack is what I prefer and usually work with, although I do try and change certain elements in the stack for each new project to see how it works out.