This is the setup I went with
Jandd frame bag: $35
Specialized side-load bottle cage: $20
You can see that it's a bit tight, but livable. As I said above, this is a 54 cm frame. I already went on a few rides and I'm satisfied that the bottle cage is accessible and it keeps bottles in place even on bad pavement. Already put the frame bag to a practical use. I got a new saddle under warranty and I had to return my old one to the bike shop. The bag is big enough to hold a standard road saddle and a cycling jacket. (I could probably squeeze more stuff in there, but I didn't try.)
P.S. I also have a standard seat bag but it just happens to be off in the picture.