React.js

Hello World in Next.js

Next.js is a React framework that allows developers to build server-side rendered (SSR) or statically generated web applications. It provides a streamlined development experience with features like automatic code splitting, route pre-fetching, and simplified deployment. Let us delve into creating a Hello World application in Next.js.

1. Overview of Next.js

1.1 Key Features of Next.js

  • Server-side Rendering (SSR): Next.js enables server-side rendering out of the box, improving performance and SEO by generating HTML on the server for each request.
  • Static Site Generation (SSG): Next.js supports static site generation, allowing developers to pre-render pages at build time for improved performance and lower hosting costs.
  • Automatic Code Splitting: Next.js automatically splits JavaScript code into smaller chunks, ensuring that only necessary code is loaded for each page, resulting in faster load times.
  • Client-side Routing: Next.js provides a simple and intuitive routing system that allows for seamless navigation between pages without full page reloads.
  • API Routes: With Next.js, developers can easily create API routes to handle server-side logic and data fetching, making it ideal for building full-stack applications.
  • Zero Configuration: Next.js requires minimal setup and configuration, allowing developers to focus on writing code rather than configuring tools.
  • Hot Module Replacement (HMR): Next.js supports hot module replacement, enabling instant updates to the application code during development without the need for full page reloads.
  • Static File Serving: Next.js serves static assets like images, stylesheets, and fonts efficiently, improving overall performance.
  • Dynamic Imports: Next.js allows for dynamic imports, enabling lazy loading of components and routes, further optimizing performance.

1.2 Advantages of Using Next.js

Next.js offers several advantages for web development:

  • Improved Performance: Next.js optimizes performance through server-side rendering, automatic code splitting, and static site generation.
  • Enhanced SEO: Server-side rendering and static site generation improve SEO by ensuring that search engines can crawl and index content effectively.
  • Streamlined Development: Next.js simplifies development with features like zero configuration, hot module replacement, and built-in routing.
  • Scalability: Next.js is highly scalable and can be used to build small projects as well as large-scale applications.
  • Flexibility: Next.js provides flexibility in choosing between server-side rendering, static site generation, or a combination of both based on project requirements.
  • Full-stack Capabilities: With support for API routes, Next.js enables developers to build full-stack applications using a single framework.

1.3 Common Use Cases for Next.js

Next.js is suitable for various use cases, including:

  • Building e-commerce platforms
  • Developing blogs and content management systems (CMS)
  • Creating marketing websites and landing pages
  • Building real-time applications with server-side rendering
  • Developing progressive web apps (PWAs)
  • Building dashboard and analytics applications
  • Creating APIs and microservices

2. Code Example

Creating a “Hello, World!” application in Next.js is straightforward. Next.js is a React framework that enables server-side rendering and simplifies the creation of React applications. Here’s a simple step-by-step guide to creating a “Hello, World!” application in Next.js:

2.1 Setting up Node Js

Ensure that Node.js and npm (Node Package Manager) are installed on your system. It’s recommended to use a Node.js version greater than 18 when working with Next.js.

2.2 Create a new Next.js app

You have the option to initiate a new Next.js application using the create-next-app command, a tool provided by the Next.js team.

npx create-next-app hello-world-with-nextjs

Executing this command will generate a fresh directory named hello-world-with-nextjs and initialize a new Next.js project within it. The command will present prompts for inputs (such as TypeScript or JavaScript app and using default CSS or SCSS), allowing you to make decisions based on your requirements.

2.3 Navigate into the project directory

Navigate to the project directory and modify the src/app/page.tsx typescript file. By default, Next.js creates a simple homepage. Open this file and replace its contents with the following:

// This component represents the homepage
export default function Home() {
  return (
    // Main container for the homepage content
    <main style={{ textAlign: "center", padding: "20px" }}>
      {/* Container for the greeting */}
      <div>
        {/* Heading with a greeting message */}
        <h1>Welcome to My Website</h1>
        <h3>
          {/* Greeting message with a link */}
          Hello world from {/* Link to JavaCodeGeeks website */}
          <a
            href="https://www.javacodegeeks.com"
            target="_blank"
            style={{ textDecoration: "none", color: "blue" }}
          >
            JavaCodeGeeks.com
          </a>
        </h3>
      </div>
      {/* Additional content section */}
      <section style={{ marginTop: "30px" }}>
        {/* Subheading for additional content */}
        <h2>Explore More:</h2>
        {/* List of features */}
        <ul style={{ listStyleType: "none", padding: "0", margin: "0" }}>
          <li style={{ marginBottom: "10px" }}>Learn about JavaScript</li>
          <li style={{ marginBottom: "10px" }}>Discover React.js</li>
          <li style={{ marginBottom: "10px" }}>Master Web Development</li>
        </ul>
      </section>
    </main>
  );
}

Next.js set up the default CSS. You can disable the default CSS by commenting on the code in the src/app/globals.css file.

3. Run the development server

npm run dev

This command will start the development server, and you’ll be able to see your Next.js app running on http://localhost:3000. If the port is already in use, Next.js will automatically switch to a different port. If you need to specify a custom port, update the scripts tag in the package.json file as shown below.

"scripts": {
    "dev": "next dev -p 9200",
    "build": "next build",
    "start": "next start -p 9200",
    "lint": "next lint"
  }

Once the developer server is up you can see the changes reflected in your browser at http://localhost:3000.

Fig. 1: App demo

4. Conclusion

In conclusion, creating a “Hello World” application in Next.js is a simple yet powerful introduction to building React applications with server-side rendering capabilities. With just a few steps, we’ve set up a basic Next.js project, displayed our greeting message, and gained insight into the Next.js development environment. This foundational example serves as a starting point for exploring the rich features and possibilities that Next.js offers for web development.

5. Download the Code

This was a tutorial on how to create a Hello World application in Next.js.

Download
You can download the full source code of this example here: Hello World in Next.js

Yatin Batra

An experience full-stack engineer well versed with Core Java, Spring/Springboot, MVC, Security, AOP, Frontend (Angular & React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button