Modern computers are very fast. You could simply store all text in one contiguous buffer and just move data around when you need to insert/delete items. As long as we are talking about item count in thousands or tens of thousands, everything will be fast.
But there is one very simple modifications for contiguous buffer that can reduce copying around -
gap buffer. It is super simple to implement, it is "data oriented" memory-friendly, and works well.
https://routley.io/posts/gap-buffer/