Не очень понимаю зачем нужен именно "топовый сайт". Топовые сайты - это доступ к приложениям через тонкий клиент в виде браузера, с трудом сотен и тысяч разработчиков (фейсбук, нетфликс и так далее).
Я предлагаю несколько более простое решение. Попробуйте написать приложение с погодой, которое будет брать данные от любой популярной бесплатной погодной API, и будет выдавать результат с некоторой графической обработкой (иконка солнышка если солнечно, дождика если дождь).
Благодаря этому можно будет понять сразу несколько вещей:
HTTP протокол, работа с запросами, JSON/XML, обработка данных, отображение данных в зависимости от результата.
После можно попробовать поработать с куками, запомнить выбор города, и, при повторной загрузке сайта, сразу отдавать данные согласно прошлого запроса.
Потом можно попробовать сделать простой TODO-list, с простейшей авторизацией, без подсаливания, с простой работой с БД, чисто по логину-паролю.
После можно усложнять все эти задачи, пытаться вешать обработку нулевых/невалидных значений как со стороны бека, так и фронта. Начать работать с хешами, солить пароли. Выдавать jwt, обновлять, проверять.
Это простейшие задачи, но даже для того чтоб научиться их решать - нужно потратить колоссальное количество времени и сил. И только после этого - можно начать разработку интернет магазина.
Нельзя строить машину без понимания работы двигателя внутреннего сгорания (электродвигателя, как угодно). Без работы подвески и так далее. Нельзя подойти, взять кувалду, выбить кузов и ждать что это внезапно станет машиной и поедет.
Либо берите "не бит, не крашен, сел и поехал" (тильда, вордпресс и прочие) автомобиль, и занимайтесь просто настройкой, чуток подкрашивая, навешивая спойлеры и неоновый свет.
Либо если хотите строить автомобиль (движок магазина, блога, соцсеть) с 0, то учите как все работает с самых низов, никаких магических путей обойти это не существует.
P.S.
Из ответа по технологиям что я использую:
БД - PostgreSQL,
Front - Flutter/Angular/React (от задачи)
Back - Java + Spring
Кто-то использует JS стек MERN/MEAN. Кто-то пхп, кто-то го, тут выбор огромен. Типовые задачи можно решать огромным количеством подходов с использованием огромной вариативности по инструментам.