Local-first reactive notebooks