In my 5e games, most of the plot is generated by choices made by the players.
Each player's backstory is incorporated into the ongoing story, and players are free to add to their backstory as they feel inspired. Then I just figure out how to work it into the narrative as seamlessly as possible. On top of that, players are encouraged to contribute to the story in real time, so if a character walks into a bar and asks whether they see anyone they know, for example, I'll reply with "you tell me." Or maybe they're out scouting and notice something interesting. Though this only works when the player/DM relationship is fairly copacetic. We've even run one session using modified Fiasco rules, so everyone had a coequal part in crafting the story of jewel heist in real time.
As far as the overarching story goes, I run a pretty classic sandbox. There's a world and there's stuff happening in it, but there are plenty of options and the player choices determine where things will go. I avoid end of the world scenarios for this reason - if you present one, the players have no real choice but to respond to it. Besides which, I don't think you need the threat of armageddon to have meaningful stakes.
That's not to say the way we do things is the best way. It just works for us. We're starting a new experiment tonight as we are launching into Vecna: Eve of Ruin. I almost never do pre-written adventures for my home games, so I've heavily modified this one to add links to character back stories, to make the stakes less apocalyptic, and to add branching paths and space for players to add on.