If you have questions about anything related to Next.js, you're always welcome to ask our community on [GitHub Discussions](https://github.com/zeit/next.js/discussions).
We recommend creating a new Next.js app using `create-next-app`, which sets up everything automatically for you. To create a project, run:
```bash
npm init next-app
# or
yarn create next-app
```
After the installation is complete, follow the instructions to start the development server. Try editing `pages/index.js` and see the result on your browser.
Next.js is built around the concept of pages. A page is a [React Component](https://reactjs.org/docs/components-and-props.html) exported from a `.js`, `.jsx`, `.ts`, or `.tsx` file in the `pages` directory.
Pages are associated with a route based on their file name. For example `pages/about.js` is mapped to `/about`. You can even add dynamic route parameters with the filename.
Create a `pages` directory inside your project.
Populate `./pages/index.js` with the following contents:
```jsx
function HomePage() {
return <div>Welcome to Next.js!</div>
}
export default HomePage
```
To start developing your application run `npm run dev`. This starts the development server on `http://localhost:3000`.
Visit `http://localhost:3000` to view your application.
So far, we get:
- Automatic compilation and bundling (with webpack and babel)
- Hot code reloading
- Static generation and server-side rendering of [`./pages/`](/docs/basic-features/pages.md)
- [Static file serving](/docs/basic-features/static-file-serving.md). `./public/` is mapped to `/`
## Related
For more information on what to do next, we recommend the following sections: