I want to set up a server that's cross compatible with all platforms what should I do?

Solution 1:

To enable cross-play of ALL platforms, you will need a Java Edition server and set up a GeyserMC proxy to enable all Bedrock Edition players to join.

If you decide to pick a paid solution, Aternos offers hosting Paper/Spigot with a Geyser plugin (pick Paper, it's more modern and robust than currently rather antiquated Spigot). You might even try it with Aternos' free hosting plan, but the performance of their free servers is abhorrent. It should also be possible from other hosting services, though the installation of Geyser will be less streamlined.

If you prefer to do it without recurring fees, you'll need to set up a regular Java Edition server on a home PC, alongside with GeyserMC standalone proxy. Players of Java Edition will connect to your server directly, Bedrock - regardless of the platform - to the proxy.