What is the difference between a spread and a fee?

A spread is the difference between the buy price of an asset and the sell price of an asset. A fee is a flat percentage charged when you open or close a crypto position.