Type-safe frontend