/openfront

Shopify alternative built on Next.js and Keystone.js

Primary LanguageJavaScriptMIT LicenseMIT

Openfront

Shopify alternative built on Next.js and Keystone.js

Running locally

To get Openfront running on your local machine:

Clone the repo

git clone https://github.com/openshiporg/openfront

Rename example.env to .env

//.env
FRONTEND_URL=http://localhost:3000
DATABASE_URL=postgresql://postgres:example@url:3000/postgres
SESSION_SECRET=please_change_me

Be sure to replace DATABASE_URL with a postgres connection string.

You can run postgres locally or get a database online.

Railway offers a free, temporary postgres database.

Start the application

Run the following commands start up Openfront:

$ cd openfront
$ yarn install
$ yarn dev

Once the application is running, go to localhost:3000. The storefront will appear here when ready. For now, use it to navigate to the GraphQL Playground and Admin UI.

Use the playground to build and run queries/mutations against the API.

Openfront uses Keystone.js. Openfront mounts the Keystone Admin UI to /dashboard. It's a great way to see and interact with your database.

Deployment

Openfront uses Next.js, so naturally, it can be hosted anywhere that supports Node.js. Openfront also requires a postgres database.

1-Click Deployment

These deployment services offer Node.js and postgres databases so Openfront can be deployed in 1-click.

Railway

Deploy on Railway

Render

Deploy to Render

Next.js Deployment

To deploy on platforms that don't support databases like Netlify and Vercel, you'll need to pass a postgres connection string as the DATABASE_URL variable.

Vercel

Deploy with Vercel

Netlify

Deploy to Netlify

Go to site settings > build & deploy > environment and add these variables:

  FRONTEND_URL=http://localhost:3000
  DATABASE_URL=postgresql://postgres:example@url:3000/postgres
  SESSION_SECRET=OH_PLEASE_PLEASE_CHANGE_ME

Replace DATABASE_URL with a postgres database connection string and FRONTEND_URL with the url ending in netlify.app. Redeploy the site.

Credits

Openfront wouldn't be here without these great projects