Respect for building the client from scratch. The "I wanted to understand every component" reasoning resonates. I took a similar approach with a conversion pipeline I built using remark/rehype directly rather than wrapping an existing markdown-to-HTML library. You end up understanding every edge case which matters when you need to handle things like nested tables or math rendering.

3.5 years solo is serious commitment. What was the hardest part ... the real-time sync or getting the editor to feel right?