# gt-next: General Translation Next.js SDK: Speedrun Next.js
URL: https://generaltranslation.com/en-US/docs/next/tutorials/examples/next-speedrun.mdx
---
title: Speedrun Next.js
description: Let's speedrun creating a new app and internationalizing it with GT
---
## Overview
In this guide, we'll go over two things:
- Creating a new Next.js app
- Internationalizing it with General Translation
In total, this should take less than 10 minutes.
## Prerequisites
We assume that you either have experience using React in some capacity and are familiar with TypeScript.
---
## Step 1: Create a new Next.js app
First, navigate to the directory of your choice in terminal and run the following command:
```bash copy
npx create-next-app next-quickstart --ts --tailwind --eslint --app --use-npm --src-dir
```
A setup wizard will appear, you can just select the default value for each option.
## Step 2: Install the libraries
Navigate to your Next.js project's root directory and run:
```bash copy
cd next-quickstart
npm i gt-next
npm i gt
```
## Step 3: Add your environment variables.
Navigate to the [Dashboard](https://generaltranslation.com/en-US/signin).
Go to the Dev Api Keys page on the nav bar and create a new API key and Project ID.
Then add them to your `.env` file.
```bash copy
GT_API_KEY="YOUR_GT_API_KEY"
GT_PROJECT_ID="YOUR_GT_PROJECT_ID"
```
## Step 4: Run the CLI tool
Run the CLI tool to set up your codebase for translation.
```bash copy
npx gt setup
```
## Step 5: Modify the root layout
Modify the `lang` prop in the `` tag in the `src/app/layout.tsx` file.
It should use `await getLocale()` to get the current locale.
```javascript title="src/app/layout.tsx" copy
import { GTProvider } from "gt-next"; // [!code highlight]
import { getLocale } from "gt-next/server"; // [!code highlight]
...
export default async function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const locale = await getLocale(); // [!code highlight]
return (
// [!code highlight]
{children}
);
}
```
## Step 6: Start your app
Your app is internationalized! 🎉
Let's test it!
Let's change your browser's language settings.
* Change your language in [Chrome](https://support.google.com/chrome/answer/173424)
* Change your language in [Firefox](https://support.mozilla.org/en-US/kb/use-firefox-another-language)
* Change your language in [Edge](https://support.microsoft.com/en-us/microsoft-edge/use-microsoft-edge-in-another-language-4da8b5e0-11ce-7ea4-81d7-4e332eec551f)
Start your Next.js app.
```bash copy
npm run dev
```
Open up your app in your preferred browser (usually at [http://localhost:3000](http://localhost:3000)).
If you have set up everything correctly, you should see your app in the language you set in your browser.
---
## Troubleshooting
**Browser Cookies**
Check your browser's cookies for your app.
General translation uses cookies to store the user's language preference.
The cookie is called `generaltranslation.locale`, and all you need to do is delete it.
It will be under `localhost:3000`.
Then, just double-check you are using the desired preferred language and then
refresh the page.
After this, you won't have to worry about clearing the cookies.
How to check cookies:
* [Chrome](https://support.google.com/chrome/answer/95647)
* [Firefox](https://support.mozilla.org/en-US/kb/delete-cookies-remove-info-websites-stored)
* [Safari](https://support.apple.com/en-mn/guide/safari/sfri11471/16.0/mac/11.0)
* [Edge](https://support.microsoft.com/en-us/microsoft-edge/delete-cookies-in-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09)
---
## Notes
* Translate arbitrary jsx with the `` component.
* If translation is not working when you change your language, check your browser's cookies.
## Next steps
* Star our GitHub repo [gt-next](https://github.com/General-Translation/gt-next).
* Set up [Right to Left language support](/docs/next/guides/rtl).