Если контента (файлов) много, то забыть про бд, как в принятом ответе сказано и использовать S3 подобное хранилише (не путать с амазон с3, т.к. стандарт с3 они придумали, но уже много подобных облачных решений, поддерживающих стандарт)
Если «платить за облачную ФС еще рано» - тогда подними чз докер minio и до тех пор, пока не пробьет час «могу себе позволить платный облачный с3» живи на нем
aftemaht, значит на бэке надо ошибки не html а в виде json также оформлять, а также статус ответа не 200 а 400 или 500 отправлять
а на клиенте, обрабатывать в js как 200 так и 400/500 ошибки
все правильно, потому что ширина вложенных элементов в каждом feature_item разная, вот они у тебя рпо разному "центрируются"
если хочешь чтобы визуальный блок был по центру но при этом все иконки находились друг под другом, то нужна еще 1 обёртка внутри feature_item в span
jitsi.meet
livekit.io