Конечно использовал бы пакеты.
Хотя все зависит от цели, которую Вы перед собой ставите. Когда у меня была обучающая цель написать собственный фрэймворк для разработки серверной части на Node, естественно, я писал все сам, на этом я хорошо усвоил паттерны проектирования, архитектуру, да и сам Node (EventEmitters, etc).
Но когда я хочу сосредоточится не на шаблонном коде (а-ля обработка ошибок, авторизация и маршрутизация), а на решении поставленной задачи, я (как и, наверное, преобладающее большинство программистов любых технологий/языков) конечно же использую готовые решения. Хотя, для каких-то небольших и достаточно простых вещей можно написать и собственный мидлвар, скажем.
Что касается совета по технологиям, я бы использовал
express как каркас приложения (это небольшой и несложный фрэймворк, основной задачей которого является реализация паттерна Chain of Responsibility + маршрутизация). Для авторизации я заюзал бы
passport. Для фронтэнда взял бы шаблонизатор
pug. Стоит понимать, что первые два - это стандарт де-факто для многих, а вот третья рекомендация (pug) вообще особо ни на что не влияет, просто вопрос привычки/удобства. Если знаете другой шаблонизатор - используйте. Также я бы установил админ-панель, например
adminbro. Естественно, будет еще множество более мелких пакетов, например "jsonwebtoken" для токенов, если будете их использовать и т.д.. Можете что-то написать полностью вручную, например, авторизацию. Или Админ-панель. Но для этого нужно четко понимать, как это делается.
Последний совет - как новичку)) Не пытайтесь установить кучу пакетов, не понимая принципа их работы. Если Вы только начинаете изучать программирование - изучайте паттерны, ООП. Узнайте про client-server архитектуру. Напишите пару простых приложений на чистом JS (раз Вы взялись за него), например, todo-app. Изучите основной функционал Node. Параллельно изучайте Express. Если знаете/хотите узнать TypeScript - присмотритесь к
loopback (только для CMS он не очень подходит, мне кажется).