Opa Cristiano, respondendo suas perguntas
1- pode ser feito apenas com js.
2- essa pergunta não entendi direito, você diz a lógica de salvar no navegador?
Você terá que ter uma lógica no backend para persistir os dados no banco de dados e uma no front end. São coisas diferentes.
Para acessar o localstorage você tem um API no front end como mesmo nome basta vc digitar localStorage.get ou set e passar a chave que deseja. Recomendo dar uma olhada na API na documentação da Mozilla.
Caso queira ir salvando no navegador e deixar um script vendo se tem internet para Sync com o backend recomendo dar uma olhada em serviceWorker..
3 - tem que ver o que você tem interesse para recomendar algo, porém de ante mão recomendo dar uma olhada no gun.js que é muito bacana e talvez atenda sua necessidade.
Se eu fugi muito das suas perguntas me avisa que eu tenho responder melhor hehehe