The core idea
A state is part of the interface, not an afterthought. Empty and error states should help the user continue without guessing.
For your hackathon app, this matters in flows like login, search, payments, form submission, dashboards, bookings, and uploaded files.
Empty is useful
An empty state appears when there is no data yet. A new user has no notes. A search has no results. A hostel complaint app has no complaints filed yet.
Do not leave a blank box. Tell the user what is missing, why it is normal, and what they can do next.