Client-side frameworks