# Simple apps
Let's gently build a couple of first applications with PyperCard.
* An interactive "hello world", where the app asks for the user's name and then
shows them a friendly greeting.
* The temperature app we sketched out in the previous tutorial.
The "hello world" app introduces how to define how cards look, how transitions
work, and how to get values from the user.
The temperature app demonstrates how to map the designs made on paper into
actual working code.
## Interactive hello
If the simplest application for PyperCard is one that simply says "hello", then
the simplest application with multiple cards and transitions is an interactive
"hello" application.
Put simply, the app asks for the user's name, then says "hello `{name}`"
(notice how I use `{name}` to represent a placeholder for the name they've
given.
This involves two cards and two transitions, as shown in this rough and ready
paper plan:
```html
Interactive Hello App
Hello {name}!
```
```toml
packages = ["pypercard" ]
```
```python
"""
A simple PyperCard app to get a user's name, and then display a friendly
"Hello world!" type message.
"""
# We need to use the a pypercard App.
from pypercard import App
# Create the app as the object called hello_app.
hello_app = App()
# In the "get_name" card, when you "click" on the "submit" button...
@hello_app.transition("get_name", "click", "submit")
def hello(app, card):
"""
Store the value in the card's input box, with the id "name", into the app's
datastore, under the key "name".
Then transition to the "say_hello" card.
"""
app.datastore["name"] = card.get_by_id("name").value
return "say_hello"
# In the "say_hello" card, when you "click" on the "again" button...
@hello_app.transition("say_hello", "click", "again")
def again(app, card):
"""
Don't do anything except transition to the "get_name" card.
"""
return "get_name"
# Start the hello_app
hello_app.start()
```
## Temps R'Us