Vulcan Next

The Next starter for GraphQL developers

README

Vulcan Next


Vulcan Next helps you build GraphQL-based applications with Next.js.

  <source
   srcSet="https://raw.githubusercontent.com/VulcanJS/vulcan-next/devel/public/img/vn-logo-full-padded-dark-840.png"
    media="(prefers-color-scheme: dark)"/>
vulcan-next banner

What's in the box?


Where Vulcan Next shines:

- B2B SaaS software, CMS, platforms
- Apps that rely a lot on CRUD operations (managing and listing data structure, like in a CMS)
- APIs that can be consumed by multiple clients (your own app but also a mobile version, data scientists, other 3rd party apps...)

Vulcan Next provides:

- A production-grade Next.js + Apollo GraphQL boilerplate.
- A GraphQL API endpoint set up with Apollo Server and a Mongo connector, so you can start coding back-end features immediately.
- Development tooling such as Cypress, Jest, Storybook... and many others.
- Schema-based helpers and hooks to quickly generate and consume your own GraphQL API
- Password based authentication with Passport






A word about the core team and sponsoring


You can't teach an old dog new tricks! Vulcan Next is the successor of "Vulcan.js", the Meteor framework from Sacha Greif. It inherits years of experience, with a modernized architecture that replaces Meteor by Next.js.

Vulcan Next powers the Devographics surveys State of JS, State of CSS and State of GraphQL.

Not familiar with Next.js yet? You can join the Next.js course at Human Coders from Eric Burel, 3 days to understand the inner workings of Next.js router, server and static rendering, edge middlewares and all their friends.

Want to help us building high quality boilerplates? You can sponsor Vulcan on Open Collective or reach us out for bounties and freelance work (ping us on Vulcan slack or Discord).


Install and run in 5 minutes


Pro tip: you can test Vulcan Next with zero install by cloning it on CodeSandbox.

If you prefer a local install:

  1. ```sh
  2. git clone -b main https://github.com/VulcanJS/vulcan-next
  3. cd vulcan-next
  4. yarn
  5. yarn run dev
  6. ```

Open http://localhost:3000 in your browser.
You can then access the live tutorial on http://localhost:3000/learn.


Next steps


Setup your own git repository


When creating your own application, you'll want to host the code on your own Git repository (on GitHub, BitBucket, etc.).

Point git to your own repository


Rename "origin" to "upstream", so you can use your own git repository as the main "origin", and VN official repo as "upstream".

  1. ```sh
  2. git remote rename origin upstream
  3. # Then do what you need to create your own origin remote
  4. # git remote add origin <your-own-git-repository-url>
  5. ```

Roll your own Mongo database


As a default, Vulcan Next will connect to a sample read-only database owned by LBKE.
To create your own application, you'll want to use your own databse.

0. I am a Windows user (if using Mac or Linux skip to 1.)


If you use Windows, you might want to either:

- Install Ubuntu as a dual boot (virtual machine are technically fine but way slower and could lead to a poor development experience)
- Setup the Linux subsystem in order to be able to run Docker on Windows

- Install MongoDB using the Windows installer

1. Run a Mongo server using Docker


It will run Mongo in your current terminal, or create and run a Mongo image if it's the first time your run the command.

Note: you should always start your database before you run the application.

  1. ```sh
  2. yarn run start:mongo
  3. ```

[See Docker installation instruction for Ubuntu here](https://docs.docker.com/engine/install/ubuntu/) if you don't have Docker yet.

2. Configure your application to use your local database


In .env.development or .env.development.local use this URI for Mongo:

  1. ```sh
  2. MONGO_URI="mongodb://localhost:27017/vulcan-next-app"
  3. ```

You can then stop the server and start it again.

We advise to use MongoDB Compass to visualize your database content.

Update your app to the latest version of Vulcan Next


Beware: Vulcan Next is a boilerplate, the possibility to update automatically is not guaranteed. You may
have to apply the updates by hand, comparing Vulcan Next latest version to your own code. Always double-check that the merge didn't break your app!.

  1. ```sh
  2. # Get the latest version of Vulcan Next locally
  3. git fetch upstream
  4. # Merge to your own code (favouring your own code as a default in case of conflict)
  5. git merge upstream/main -X ours
  6. ```


Contribute or raise an issue


This starter is read-only! Please avoid opening pull requests against it.



They support Vulcan Next and Vulcan Meteor


Contributors


This project exists thanks to all the people who contribute.


Backers


Thank you to all our backers! 🙏 [Become a backer]


Sponsors


Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]


Technical supports


They give time and share knowledge to support the project.

aplineslbkelette.so

Other cool Next stuff


- Next Right Now (a complete Next Starter, relying on Prisma cloud solutions for the backend)
- Blitz (fullstack Next without GraphQL)
- Next - Mongo (no Express, no GraphQL, just Next and Mongo)
- Nextra, a no-code site generator with Markdown (great for blogging)
- BlueLibs, a toolkit that also proposes a React starter


About Next.js


This is a Next.js project bootstrapped with [create-next-app](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

Learn More


To learn more about Next.js, take a look at the following resources:

- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!


Deploy on Vercel


The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.
Powered by Vercel