# Your First Server — Fastify

Source: https://www.geekswithgeeks.com/en/fastify/ff-hello-world

> A running Fastify server in under ten lines.

## Hello, World!

Create an instance, define one route, and start the server. Notice the `async` nature—Fastify is async-first.

```javascript
import Fastify from 'fastify';

const fastify = Fastify();

fastify.get('/', async (request, reply) => {
  return { message: 'Hello, World!' };
});

await fastify.listen({ port: 3000 });
console.log('Server running on http://localhost:3000');
```

Output:

```
Server running on http://localhost:3000
```

## The Fastify instance

`Fastify()` creates the server instance. `fastify.get(route, handler)` registers a GET route. `await fastify.listen()` starts the HTTP server with graceful shutdown support.

**Quiz:** Why does Fastify use async/await?

- [ ] It's required by Node.js
- [x] To handle I/O operations cleanly and maintain performance
- [ ] Callbacks are deprecated

*Answer:* To handle I/O operations cleanly and maintain performance. Fastify is built on async/await to handle asynchronous operations efficiently and keep the non-blocking event loop clean.
