Hello there! It's true that charting, styling, and transitions can be achieved with vanilla JS and CSS (as D3 is just a JS library) but D3 actually offers a rich range of low level APIs for precise tuning and control. It all comes down to your requirements and preferences :) In the real world we would modularise these into util functions anyway instead of putting everything into one large chunk