• Stars
    star
    415
  • Rank 100,692 (Top 3 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The ultimate starter for headless Shopify stores

Next.js + Shopify + Builder.io starter kit

The ultimate starter for headless Shopify stores.

Demo live at: headless.builders

Goals and Features

  • Ultra high performance
  • SEO optimized
  • Themable
  • Personalizable (internationalization, a/b testing, etc)
  • Builder.io Visual CMS integrated

Video walkthrough

Learn how to get started with this Builder + Next.js + Shopify starter with this step by step video guide here:

Table of contents

Getting Started

Pre-requisites

This guide will assume that you have the following software installed:

  • nodejs (>=12.0.0)
  • npm
  • git

You should already have a Shopify account and store created before starting as well.

Introduction

This starter kit is everything you need to get your own self hosted Next.js project powered by Builder.io for content and Shopify as an e-commerce back office.

After following this guide you will have

  • A Next.js app, ready to deploy to a hosting provider of your choice
  • Pulling live collection and product information from Shopify
  • Powered by the Builder.io visual CMS

1: Create an account for Builder.io

Before we start, head over to Builder.io and create an account.

2: Your Builder.io private key

Head over to your organization settings page and create a private key, copy the key for the next step.

organizations drop down list

  • Click "Account" from the left hand sidebar
  • Click the edit icon for the "Private keys" row
  • Copy the value of the auto-generated key, or create a new one with a name that's meaningful to you

Example of how to get your private key

3: Clone this repository and initialize a Builder.io space

Next, we'll create a copy of the starter project, and create a new space for it's content to live in.

In the example below, replace <private-key> with the key you copied in the previous step, and change <space-name> to something that's meaningful to you -- don't worry, you can change it later!

git clone https://github.com/BuilderIO/nextjs-shopify.git
cd nextjs-shopify

unzip builder

npm install --global "@builder.io/cli"

builder create --key "<private-key>" --name "<space-name>" --debug

Note: if you're only interested in using this starter for a landing page with Shopify use this command instead:

unzip builder-landing-page-only
builder create --key "<private-key>" --name "<space-name>" --input builder-landing-page-only --debug

If this was a success you should be greeted with a message that includes a public API key for your newly minted Builder.io space.

Note: This command will also publish some starter builder.io cms content from the ./builder directory to your new space when it's created.

  ____            _   _       _                     _                    _   _
| __ )   _   _  (_) | |   __| |   ___   _ __      (_)   ___       ___  | | (_)
|  _ \  | | | | | | | |  / _` |  / _ \ | '__|     | |  / _ \     / __| | | | |
| |_) | | |_| | | | | | | (_| | |  __/ | |     _  | | | (_) |   | (__  | | | |
|____/   \__,_| |_| |_|  \__,_|  \___| |_|    (_) |_|  \___/     \___| |_| |_|

|████████████████████████████████████████| shopify-product | 0/0
|████████████████████████████████████████| product-page: writing generic-template.json | 1/1
|████████████████████████████████████████| shopify-collection | 0/0
|████████████████████████████████████████| collection-page: writing generic-collection.json | 1/1
|████████████████████████████████████████| page: writing homepage.json | 2/2


Your new space "next.js shopify starter" public API Key: 012345abcdef0123456789abcdef0123

Copy the public API key ("012345abcdef0123456789abcdef0123" in the example above) for the next step.

This starter project uses dotenv files to configure environment variables. Open the files .env.development and .env.production in your favorite text editor, and set the value of BUILDER_PUBLIC_KEY to the public key you just copied. You can ignore the other variables for now, we'll set them later.

+ BUILDER_PUBLIC_KEY=012345abcdef0123456789abcdef0123
- BUILDER_PUBLIC_KEY=
SHOPIFY_STOREFRONT_API_TOKEN=
SHOPIFY_STORE_DOMAIN=

4. Shopify Custom App

Create a custom app for your Shopify store. If you don't have a Shopify store already, you can create a development store.

When creating the private app you'll have to set a number of permissions so that builder can retrieve your Shopify inventory. For this press on Storefront API in the configuration tab and choose all the following permissions:

List of required permissions

Then in the API Credentials tab, click install:

installing custom app

And copy the generated access token.

5. Connecting Builder to Shopify

Access your newly created space by selecting it from the list of spaces in your organization.

You should be greeted by a modal asking for various your storefront Access toke (from preview step) and your store domain, this will allow Builder.io to communicate with your store API:

Example of where the Shopify API keys map to Builder settings

Fill in the required keys and press "Connect your Shopify Custom App"!

6. Configure the project to talk to Shopify

Open up .env.development and .env.production again, but this time set the other two Shopify keys.

BUILDER_PUBLIC_KEY=012345abcdef0123456789abcdef0123
+ SHOPIFY_STOREFRONT_API_TOKEN=c11b4053408085753bd76a45806f80dd
- SHOPIFY_STOREFRONT_API_TOKEN=
+ SHOPIFY_STORE_DOMAIN=dylanbuilder.myshopify.com
- SHOPIFY_STORE_DOMAIN=

7. Up and Running!

The hard part is over, all you have to do is start up the project now.

npm install
npm run dev

This will start a server at http://localhost:3000.

8. Start building

Now that we have everything setup, start building and publishing pages on builder.io, for a demo on building something similar to the demo homepage, follow the steps in this short video

Deployment Options

You can deploy this code anywhere you like - you can find many deployment options for Next.js here. The following options support one click installs and are super easy to start with:

Deploy with Vercel

Deploy to Netlify

More Repositories

1

qwik

Instant-loading web apps, without effort
TypeScript
20,052
star
2

gpt-crawler

Crawl a site to generate knowledge files to create your own custom GPT from a URL
TypeScript
17,358
star
3

partytown

Relocate resource intensive third-party scripts off of the main thread and into a web worker. 🎉
TypeScript
12,577
star
4

mitosis

Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.
TypeScript
10,802
star
5

builder

Drag and drop headless CMS for React, Vue, Svelte, Qwik, and more
TypeScript
6,567
star
6

ai-shell

A CLI that converts natural language to shell commands.
TypeScript
3,531
star
7

figma-html

Builder.io for Figma: AI generation, export to code, import from web
TypeScript
2,917
star
8

gpt-assistant

An experiment to give an autonomous GPT agent access to a browser and have it accomplish tasks
TypeScript
468
star
9

framework-benchmarks

Test each framework for it's performance cost
TypeScript
458
star
10

hydration-overlay

Overlay for hydration errors with explicit diff between renders.
CSS
430
star
11

vscode

Builder.io for VSCode - turn designs into code!
TypeScript
168
star
12

SSDiff

TypeScript
138
star
13

build.

A new visual programming language that reads and writes Typescript and Javascript
TypeScript
127
star
14

builder-shopify-hydrogen

Builder.io Visual CMS + page builder example with Shopify Hydrogen
TypeScript
75
star
15

gatsby-starter-builder

Gatsby example with drag and drop page building
JavaScript
66
star
16

snap

The fastest web framework
TypeScript
50
star
17

nextjs-edge-personalization-ab-testing

High performance personalization & a/b testing example using Next.js, Edge Middleware, and Builder.io
TypeScript
50
star
18

ts-lite

Compiled TypeScript. Generates Go, Swift, Kotlin, WASM, Binary
JavaScript
48
star
19

gatsby-builder-shopify

A starter for Gatsby + Shopify + Builder.io
TypeScript
32
star
20

qwik-city-build

`@builder.io/qwik-city` build artifacts from https://github.com/organizations/BuilderIO/qwik
JavaScript
25
star
21

qwik-tw-vercel-starter-kit

A starter kit for Qwik on Vercel
TypeScript
17
star
22

nextjs-builder-edge-personalization

TypeScript
11
star
23

nextjs-builder-starter

TypeScript
10
star
24

demo-editor

JavaScript
10
star
25

edge-personalize

Personalize and a/b test your static pages at the edge. Static speed with dynamic optimizations!
TypeScript
9
star
26

headlessapp.store

TypeScript
8
star
27

react-design-system-demo

JavaScript
8
star
28

sfcc-composable-storefront-starter

SFCC + Builder.io Composable Storefront
JavaScript
7
star
29

qwik-city-e2e

Use to test Qwik City on each server
HTML
6
star
30

qwik-docs-es

TypeScript
6
star
31

qwik-build

Build artifacts from https://github.com/organizations/BuilderIO/qwik
JavaScript
6
star
32

perf-experiments

Performance experiments
Astro
6
star
33

http-debug-proxy

This project contains a set up to create a HTTP proxy for the https://cdn.builder.io/ endpoint.
JavaScript
6
star
34

this-package-uses-fetch

5
star
35

qwik-react-framer-motion

A demo for React Framer Motion inside a Qwik application
TypeScript
5
star
36

resumable-react-post

The code for the blog post: "Resumable React: How To Use React Inside Qwik"
TypeScript
5
star
37

builder-fiddle-demos

Demos of fun stuff for Builder fiddles
TypeScript
5
star
38

blog-example

Builder.io blog example
JavaScript
5
star
39

jsx-qwik-worker-post

A repo showing worker$
JavaScript
5
star
40

vcp-design-systems-examples

Starters for experimenting with VCP and different design systems
TypeScript
5
star
41

builder-qwik-example

An example project using Builder.io's drag and drop headless CMS with Qwik
TypeScript
4
star
42

nextjs-app-router-example

TypeScript
4
star
43

personalization-utils

TypeScript
3
star
44

mitosis-build

Build artifacts from https://github.com/BuilderIO/mitosis
3
star
45

qwik-create-cli-build

JavaScript
3
star
46

nextjs-elasticpath

TypeScript
2
star
47

kibocommerce-nextjs-starter

A KiboCommerce + Builder.io store built on NextJS
TypeScript
2
star
48

qwik-raw-data

1
star
49

qase-for-qwik

A demo repo to showcase Qwik
TypeScript
1
star
50

gatsby-builder-transform-images

JavaScript
1
star
51

block-publish

CLI tool to block directly using npm publish
JavaScript
1
star
52

qwik-docs

WIP Qwik-docs
JavaScript
1
star
53

builder-swift

Swift SDK for Builder.io
Swift
1
star
54

qwik-labs-build

Continues build artifacts
JavaScript
1
star