В минимальном варианте - сайт пишется на HTML и CSS.
Если на нём нужен интерактив - добавляется JavaScript
Всё что выше называется фронтендом, и он отвечает за то как сайт выглядит и работает на компьютере пользователя (в браузере)
При этом HTML/CSS/js не являются единственным верным вариантом - к ним достаточно часто могут добавляться какие-нибудь библиотеки и фреймворки, которые упрощают выполнение некоторых задач, а также препроцессоры, траспиляторы, и другие инструменты, которые по сути работают на эту же цель. Но об этом новичку думать не обязательно.
Если нужна многопользовательская работа (чтобы несколько людей с разных компьютеров могли работать с сайтом и видеть свои данные независимо от местоположения), то тогда нужно написать ещё бэкенд и использовать какую-нибудь базу данных.
Бэкенд может быть написан на любом языке общего назначения, который может обрабатывать http-запросы. Он будет работать на каком-то выделенном компьютере, который называется "сервер"
В роли базы данных может выступать даже обычный текстовый файл - это не обязательно должна быть полноценная СУБД.