The ecosystem is really it, C# as a language isn't the best, objectively Typescript is a much more developer friendly and globally type safe (at design time) language. It's far more versatile than C# in that regard, to the point where there is almost no comparison.
But holy hell the .Net ecosystem is light-years ahead, it's so incredibly consistent across major versions, is extremely high quality, has consistent and well considered design advancements, and is absolutely bloody fast. Tie that in with first party frameworks that cover most of all major needs, and it all works together so smoothly, at least for web dev.
There are markup languages for this purpose. And you store the rich text as normal text in that markup language. For the most part.
It's typically an XML or XML-like language, or bb-codes. MS Word for example uses XML to store the markup data for the rich text.
Simpler and more limited text needs tend to use markdown these days, like Lemmy, or most text fields on GitHub.
There's no need to include complex technology stacks into it!
Now the real hard part is the rendering engine for WYSIWYG. That's a nightmare.