Потому что ты присваиваешь значение переменной phrase после того как вызвал функцию, поменяй местами вызов функции и объявление переменной и все заработает
Пароль нельзя хранить на клиенте, при авторизации отправляешь логин и пароль - в ответ получаешь токен, сохраняешь его к куки например, теперь при каждом запросе на сервер будет отправляться токен и если он валидный- будет возвращаться юзер.
Хороших движков под такое решение нет. Самый оптимальный вариант это сделать свой движок на стеке React/Golang/Postgres например или React/Express/Mongo. В идеале реализовать сразу в виде PWA - чтобы работало оффлайн и не пришлось мобильные приложения разрабатывать
Если заказчик не имеет хороших технических навыков в области разработки то ему не нужны скрины, смысла нет ему пялиться на открытый редактор кода, все равно не поймет ничего :) А если заказчик - это такие же как и ты разработчики - им может быть интересно как ты кодишь, где ищешь инфу и т.д. Но это не точно
Перебираешь все элементы на странице, сравниваешь текст каждого со значение input, если совпадает - оборачиваешь данный текст в span с нужным классом (для подсветки)
Первый фетч в didMount, все последующие при событии onChange на чекбоксе.
Если в рендере вызвать то будет бесконечно вызываться и на этом все закончится)
Перевести не проблема, код останется тот же, поменять придется только разметку - вместо html там свои теги. Такая же ситуация с десктопами, переход без проблем
Вот этого раздела для начала будет достаточно. Для верстки практически не нужен js, все популярные решения - слайдеры, выпадающие меню и т.д. уже реализованы, можно брать готовые решения. А потом когда дойдешь до каких то сложных анимаций на канвасе например - будешь по ходу дела гуглить)
Редактор vs code я использую