Serving tiles sucks. Generating tiles sucks even more. In CPU time, in storage, in network. It's really not something you want to handle yourself, and most of the OSM alternatives end up basically only preloading a small area. Their vector renderer's performance is also somewhat bad.