Introduction
If you want to build modern, fast, and SEO-friendly web applications, Next.js with TypeScript is one of the best combinations available today.
Next.js provides powerful features like server-side rendering, static site generation, and routing out of the box. TypeScript adds type safety, better developer experience, and fewer runtime errors.
In this step-by-step guide, you will learn how to set up a Next.js project with TypeScript from scratch in a simple and practical way.
Why Use Next.js With TypeScript?
Before we start, let’s understand why this combination is so popular among developers.
Better code quality with type safety
Improved developer experience with auto-completion
Easier debugging and fewer bugs
Built-in SEO optimization features
Scalable and maintainable project structure
Prerequisites
Before setting up the project, make sure you have the following installed:
You can check your Node.js version using:
node -v
Step 1: Create a Next.js App With TypeScript
The easiest way to create a Next.js project with TypeScript is by using the official create-next-app tool.
Run the following command:
npx create-next-app@latest my-next-app --typescript
This command will:
Create a new Next.js project
Automatically configure TypeScript
Set up folder structure
Install required dependencies
Step 2: Navigate to Your Project
Move into your project folder:
cd my-next-app
Step 3: Understand the Project Structure
After setup, your project will look like this:
my-next-app/
app/
pages/
public/
styles/
tsconfig.json
package.json
Important Files Explained
app/ or pages/ → Handles routing
public/ → Static assets like images
styles/ → CSS files
tsconfig.json → TypeScript configuration
Step 4: Run the Development Server
Start your project using:
npm run dev
Now open your browser and visit:
http://localhost:3000
You will see your Next.js app running.
Step 5: Create Your First TypeScript Page
Let’s create a simple page using TypeScript.
Inside the pages folder, create a file:
pages/home.tsx
Now add the following code:
import React from "react";
type Props = {
name: string;
};
const Home = ({ name }: Props) => {
return <h1>Hello, {name}! Welcome to Next.js with TypeScript</h1>;
};
export default Home;
Step 6: Add Types to API Routes
Next.js also supports API routes. You can use TypeScript for them as well.
Create a file:
pages/api/hello.ts
Add the following code:
import type { NextApiRequest, NextApiResponse } from "next";
type Data = {
message: string;
};
export default function handler(
req: NextApiRequest,
res: NextApiResponse<Data>
) {
res.status(200).json({ message: "Hello from API" });
}
Step 7: Customize TypeScript Configuration
Next.js automatically creates a tsconfig.json file.
You can customize it based on your needs.
Example:
{
"compilerOptions": {
"target": "es6",
"lib": ["dom", "dom.iterable", "esnext"],
"strict": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true
}
}
Important Options
strict → Enables strict type checking
moduleResolution → Helps resolve modules properly
resolveJsonModule → Allows importing JSON files
Step 8: Add ESLint and Formatting (Optional but Recommended)
Next.js comes with ESLint pre-configured.
Run:
npm run lint
You can also add Prettier for formatting consistency.
Step 9: Build for Production
To create an optimized production build:
npm run build
Then run:
npm start
Best Practices for Next.js With TypeScript
1. Use Types for Props and State
Always define types for better readability and maintainability.
2. Keep Types in Separate Files
Create a types folder to manage reusable types.
3. Enable Strict Mode
This helps catch bugs early.
4. Use Interface or Type Alias Properly
5. Avoid Any Type
Using any defeats the purpose of TypeScript.
Common Mistakes to Avoid
Conclusion
Setting up a Next.js project with TypeScript is simple and highly beneficial for modern web development.
With just a few commands, you get a powerful setup that supports scalability, performance, and better code quality.
By following the steps in this guide, you can quickly start building professional, SEO-friendly web applications using Next.js and TypeScript.
Start experimenting with components, APIs, and routing to fully understand the power of this stack.