We didn't have a DJ (we used a spotify playlist) and it went over really well! A few things though... make sure you have someone responsible for MCing (like, making announcements, encouraging people to get up and dance, etc) and to manage the playlist. It really isn't enough to just press "play" and let the playlist go... you need to change songs if people aren't responding, adjust the volume, etc.
Another thing is don't be afraid to go off-playlist! We used our playlist for about 30 mins and then my husband's best man (who we had put in charge of manning the playlist) and I ended up just picking some off-playlist songs because we felt like they would fit the mood really well, and THAT was when people actually started getting up and dancing.
A DJ definitely does WAY more than just pressing play on songs. I cannot emphasize how important it is to read the room in order to choose what song (or what type of song) to play next. That being said, I still don't think hiring an actual DJ is "necessary" if you have a friend or relative who would enjoy taking on this responsibility (and who you trust to do so!)
You could also consider having non-dancing activities like yard games!
Without a DJ, I’d make the reception more of a cocktail style with heavy appetizers, a mix of seating including lounge furniture, pub tables and smaller cocktail tables (instead of traditional table seating with full plated meals). That way music can be playing in the background, guests can casually mingle and the style of the reception won’t feel as though a DJ and dancing is missing.