Building robust applications: make invalid states unrepresentable | Hacker News Reader