без использования внешних библиотек и кучи медиа запросов
Смотря что делать.
Подвох в кросбраузерности. Если вам плевать на IE старше 10-ки то смело используйте flexbox-ы или решения на базе оных
philipwalton.github.io/solved-by-flexbox
Но если придется суппортить старые IE то вы будете плакать... Полифилы типа flexie/reflexie довольно сырые (flexie использовать можно но оно поддерживает только очень старый синтаксис и без префиксов), а до reflexie я пока не добрался, но это в планах. В любом случае использовать эти полифилы для сложных не статичных лэйаутов лучше не стоит... Всегда есть display: table.
Twitter bootstrap же я лично предпочитаю использовать тогда, когда лень придумывать свой UI. Так же существует масса других фреймворков и библиотек.
Единственное что я вам порекомендую - использование препроцессоров и решений на базе оных.