cosmicjs / nextjs-website-boilerplate

A Next.js website boilerplate that satisfies some common website requirements.
https://cosmicjs.com/apps/nextjs-website-boilerplate
MIT License
94 stars 47 forks source link
boilerplate cosmicjs nextjs reactjs website

Next.js Website Boilerplate

nextjs-website-boilerplate A website template that satisfies some common website requirements including dynamic pages, blog articles, author management, SEO ability, contact form and website search. Contributions welcome!

Demo

Click here to view the demo

Read how this app was built

Features

  1. Fully responsive down to mobile w/ Bootstrap frontend
  2. SEO ready
  3. A contact form that sends an email to your email(s) of choice and to Cosmic for easy reference
  4. Full-site search functionality
  5. All content is easily managed in Cosmic including pages, blog and contact info.

Sign up for Cosmic to install the demo content and deploy this website.

Getting Started

git clone https://github.com/cosmicjs/nextjs-website-boilerplate
cd nextjs-website-boilerplate
npm install

# Run in development and serve at localhost:3000
npm run dev

# build for production
npm run build

# Run in production and serve at localhost:3000
COSMIC_BUCKET=your-bucket-slug npm start

Import the bucket.json file into your Cosmic Bucket. To do this go to Your Bucket > Settings > Import / Export Data.

Contact form setup

Install and deploy the SendGrid Email Function.

The contact form on the contact page uses the SendGrid Email Function to send emails. To deploy your email function go to Your Bucket > Settings > Functions. Install and deploy the SendGrid Function. You will need an account with SendGrid to add your SendGrid API key.

Add the SendGrid Function Endpoint

in development

Go to config/index.js and edit SENDGRID_FUNCTION_ENDPOINT to manually add the URL for testing.

in production

If you are using the Web Hosting option that's included with every Bucket:

  1. Go to Your Bucket > Settings > Web Hosting
  2. Deploy your Website
  3. Click 'Set Environment Variables' tab and add the SendGrid Function endpoint:
Key Value
SENDGRID_FUNCTION_ENDPOINT https://your-lambda-endpoint.amazonaws.com/dev/send-email