# Your first React application

Now with all these basic ideas, you are almost ready to create your first React application.

Before you start, you should also learn about the design/thinking process, which is well covered in [Thinking in React](https://reactjs.org/docs/thinking-in-react.html)

* Step 1: Break The UI Into A Component Hierarchy
* Step 2: Build A Static Version in React \(i.e. no event handlers or `state`. only `props`\)
  * You can build top-down or bottom-up
* Step 3: Identify The Minimal \(but complete\) Representation Of UI State
  * List all the sources of data in your app \(e.g. seed data, user input data\)
* Step 4: Identify Which Component Should Own The State
* Step 5: Add Inverse Data Flow

## Exercise

Build to do list: [https://github.com/thoughtworks-jumpstart/react-todo-list](https://github.com/thoughtworks-jumpstart/react-todo-list)

