The two coolest things about truffle, IMO, is the debugger, which lets you debug/step through past transactions, even ones on mainnet, and the --dry-run feature, which lets you run your deployment against a local copy of a real network, without syncing the whole blockchain.
Both those features lean heavily on the work I do on Ganache, an Ethereum simulator that has all sorts of nice development features that a public node doesn't.