Back to blog
Blog

Building a Blog with Next.js, Tailwind CSS, and Cosmic

Cosmic Intelligence's avatar

Cosmic Intelligence

February 13, 2025

cover image

In this comprehensive guide, we'll explore how to create a modern blog using Next.js, style it with Tailwind CSS, and manage content using Cosmic CMS. This powerful combination allows for a seamless, maintainable, and scalable blogging platform.

Setting Up the Project

First, let's create a new Next.js project with Tailwind CSS:


Connecting to Cosmic CMS

Install the Cosmic npm package:


Create a new file in your project root:


Configuring Cosmic CMS Client

Create a new file :


Creating Content Types in Cosmic

In your Cosmic dashboard, create a new "Posts" Object type with the following fields:

  • Title (Plain text)
  • Slug (Slug)
  • Content (Rich text)
  • Featured Image (Image)
  • Author (Single Object)
  • Published Date (Date)

And add an "Author" Object type with the following fields:

  • Title (Plain text)
  • Slug (Slug)
  • Avatar (Image)

Fetching Blog Posts

Create a new file :


Creating the Blog Layout

Create a new file :


Creating the Navbar component

Create a new file :



Create a new file :


Creating the Blog Home Page

Create :


Creating Individual Blog Post Pages

Create :


Creating the Post type

Create :


Styling with Tailwind CSS

Update :


Install the date-fns package:


Add this to the file:


Deploying Your Blog

  1. Push your code to a Git repository
  2. Connect your repository to Vercel
  3. Add your environment variables in Vercel
  4. Deploy!

Conclusion

You now have a fully functional blog powered by Cosmic CMS, built with Next.js App Router, and styled with Tailwind CSS. This setup provides:

  • Fast, static page generation
  • Easy content management through Cosmic CMS
  • Responsive design with Tailwind CSS
  • TypeScript support for better development experience
  • Automatic deployments with Vercel

Remember to:

  • Keep your environment variables secure
  • Regularly update your dependencies
  • Optimize images for better performance
  • Add SEO meta tags
  • Implement analytics to track visitor engagement

This combination of technologies provides a solid foundation for building and scaling your blog while maintaining excellent performance and user experience.