# Source: https://docs.runpod.io/tutorials/sdks/python/get-started/hello-world.md


> Fetch the complete documentation index at: https://docs.runpod.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Hello World with Runpod

Let's dive into creating your first Runpod Serverless application. We're going to build a "Hello, World!" program that greets users with a custom message. Don't worry about sending requests just yet - we'll cover that in the next tutorial, [running locally](/tutorials/sdks/python/get-started/running-locally).

This exercise will introduce you to the key parts of a Runpod application, giving you a solid foundation in serverless functions. By the end, you'll have your very own Runpod serverless function up and running locally.

### Creating Your First Serverless Function

Let's write a Python script that defines a simple serverless function. This function will say `Hello, World!`.

Create a new file called `hello_world.py` in your text editor and add the following code:

```python hello_world.py theme={"theme":{"light":"github-light","dark":"github-dark"}}
import runpod


def handler(job):
    job_input = job["input"]

    return f"Hello {job_input['name']}!"


runpod.serverless.start({"handler": handler})
```

Let's break this down:

We start by importing the `runpod` library. This gives us all the tools we need for creating and managing serverless applications.

Next, we define our `handler` function. This function processes incoming requests. It takes a `job` parameter, which contains all the info about the incoming job.

Inside the handler, we grab the input data from the job. We're expecting a 'name' field in the input.

Then we create and return our greeting message, using the name we got from the input.

Finally, we call `runpod.serverless.start()`, telling it to use our `handler` function. This kicks off the serverless worker and gets it ready to handle incoming jobs.

And there you have it! You've just created your first Runpod serverless function. It takes in a request with a name and returns a personalized greeting.

### Key Takeaways

* Runpod functions are built around a handler that processes incoming jobs.
* You can easily access input data from the job parameter.
* The `runpod.serverless.start()` function gets your serverless worker up and running.

## Next steps

You've now got a basic `Hello, World!` Runpod serverless function up and running. You've learned how to handle input and output in a serverless environment and how to start your application.

These are the building blocks for creating more complex serverless applications with Runpod. As you get more comfortable with these concepts, you'll be able to create even more powerful and flexible serverless functions.