((WARNING: I JUST WROTE THIS AND IT'S SUPER DUPER LONG! NO OBLIGATION TO READ, BUT I HOPE IT HELPS IF YOU DO!))
Oh, I have some advice! It was said earlier to use hub chapters, which I think is an awesome way to keep your story grounded (because if parts of it get too far apart, then they'll either be abandoned or take forever to get updated probably). But you can also have a bunch of side-stuff planned within the hub chapters!
For example, in a university setting, you could have a person that helps you out a bunch who's going to get kicked out of the school unless you help him, or another person who has a partner that's totally leeching off of them and you can help out, or have a sorority that wants to take over a certain communal aspect of the courtyard, or classmates that have a buncha secret stuff going on that you can find out about. All of that kind of stuff that the player can change, so that potential second playthroughs can actually be really really different, even if the main part's a little similar!
If you have the time though, it'd also be worth having at least one thing that COMPLETELY changes the story, so every time it comes up you spend a bit longer on the chapters but also the players get more unique experiences. Stuff like what weapons they chose, what upgrades they chose, all of that which can have a bunch of hidden options/text about it! It's a bigger commitment though, especially the deeper in you get, so it's more of a consideration than a necessity.
But! With all of these variables, it can get too big to manage. If you have too many variables, chapters will actually load slower. Luckily, I found a fix for this!
If you have a hub chapter that gets linked back to, and a "Time" variable that increases at certain times (waking up at the start of the day, leaving the free time zone, stuff like that!), then you can also have standardised variables. For example, if you want a variable to check if the player's gone into the Gym and met the person who was there at a specific time (so that they don't go in and double up, or so that special text appears later), you can have variables like "MeetInGymA", "MeetInGymB", and "MeetInGymC", up to the highest number you think you could ever have (and then adding one to be safe). If on Day 4 Fitzhubert is banging out some squats, then seeing him would set MeetInGymA to True. Then, the chapters that increase the Time (wakeup and leaving the zone) also reset these standardised variables to False! That way, it's all automatically done by the system loop you've made. If meeting Fitzhubert at that Time also had him tell you his secret pancake recipe, then you can add a special variable as well that's about whether or not you know his pancake recipe for later -- but most visits will just be nice little moments, and the standardised variables are all you need!
Having special events at certain Times is really nice for the players that find them, since few will ever find them all in one go so it feels more special, but it's also good to just have stuff that increases each time you do it. For example, maybe talking to a classmate about the weird stuff he's thinking of has new text at each Time, but going to the Gym has new text each time you go to the gym (therefore changing as your strength increases). Mixing these two systems is my favourite!
You also want to be careful to not get trapped in monotany! It could be easy to do that with set hub chapters and loops and stuff. This is just my example of how I'm avoiding that, but the general case is just "change things before they get predictable/before you stop having fun writing them". I have my first hub loop where you get enough money to go to University, then a second hub loop for the first five-day week at that university -- next, I plan to do a special weekend hub thingy, and on the second week it'll be 1-2 days of normal classes and then the rest of the week is a special camping trip. When people are back, it'll eventually get into exams and picking partners and alla that. Just keep stuff fresh! Another good way to do this is to not have everything in the hub available at once. Slowdrip it based on the Time variable -- I still haven't introduced the Shops I've had a draft slot for for months.
Speaking of draft slots! They're important. For example, I have a few options to talk to this woman at the Arena, some depending on variables and some always available. But I also have a bunch of empty draft chapters that I can make into real stuff later, so that I don't have to reorder stuff! That's a trick I learned after "Go to sleep (end the day)" was nearly not at the bottom of your Room's options, and I had to turn "go to your desk" into its own mini-hub of using all the furniture you've bought.
Custom text is really important too! At least to me. I think it's nice having players see stuff/have conversations with characters based around what they've already done up until then. It makes it feel more valuable and fun, I think (hope!). Even if you only do it for bigger things, like which classmate you end up dating rather than whether or not you saw a person in the Gym, it'll still go a long way for the players (and you can always do both!)
With game overs, you also want to be careful. I only have one so far, but I'm about to have a second and eventually will have at least four or so. You don't want to irritate your players! Having a complete do-over in a story can be really annoying, especially if it's longer. A good way to get around this is to link them back to the choice that led them there, and change their variables accordingly -- that's not always feasible, but here's an example of my own to show how it can be fixed around!:
During the day I'm working on right now, depending on what you did in the past days, you might need to make a teacher cum or get in big trouble with the people you made the deal with. It's like a day-long minigame, and once you succeed you transition into the regular day's storyline. But if you go the whole day without doing it, then you're going to have a Game Over because those people won't be very happy with you! You're then going to have two options at the Game Over: restart the day to retry it, or restart the day as if you never agreed to that deal, even though it could've been made any time within the last three days. And that'll still work great! It's no fun scrolling through a bunch of chapters without reading them and clicking infinite links to regain your progress, so don't make your players do that.
"Jump Ahead" links that change people's variables can be nice too, for people who want to go see a specific moment again or who want to do a second playthrough but skip some parts of it. Or people that just want to get right to the main part of the story! That means you'll need "default" variables, which you can get from doing a playthrough and writing them all down to set. When I do this, I have a default option for the armour and weapons that the player chooses, but I go under the assumption that they've skipped everything they can and not done nothing with their free time (apart from a few Gym visits after a while, so that they can still play all properly), and that's so that new players can experience everything and no knowledge is pre-assumed.
It's also super important to have default text, as well! You can do it with an @ sign, otherwise it'll take the else-case (for example, {if@ Weapon == 1}TEXT{endif} means that the Weapon = 1 text will show up outside of game mode, whereas {if Weapon == 1}TEXT{endif} means it'll only show up if they're in game mode and Weapon = 1, and {if Weapon == 1}TEXT{else}ELSE-CASE TEXT{endif} means that the else-case will show up outside of game mode AND inside of game mode if Weapon doesn't = 1. That's probably a bit confusing, but I hope it can help!). You don't want to bar off people who aren't using game mode, unless it's from spoilers of something meant to reward game mode players doing certain things or achieving certain things, so it's always nice to have those default cases display instead of empty text/skipping stuff.
I've probably got a ton more advice, but this is really long and that's probably the most of it. I hope you have fun making your story! Nothing I've said here is mandatory remember, you're not getting paid or anything, it's just some of my ideas of how to keep the story fun to write and fun to play. I hope they help! It's also super cool to see people like MidbossMan mention my name whenever I'm lurking and having a read of some of the stuff on here, it makes me feel super nice about myself. WOW, I just scrolled, this was SO LONG, I hope it was useful to you and no worries if you didn't read it all. Have an awesome rest of your day, and good luck!