A starter project for Next.js with authentication

Overview

🚨 This project is now archived

This project is now archived and is no longer maintained.

I'm happy so many people found this project useful, but it's now out of date and many of the features of this starter project are now redundant as Next.js has evolved considerably over the last few years and now has native support for features such as CSS and SASS and for API routes without requiring a custom server.

For that reason I'm retiring this project and putting it into archive mode.

Thank you to everyone who contributed to this project over the last 3 years!

Where to look for examples


Next.js Starter Project

This is a starter project for React that uses Next.js.

  • Authentication via Email, Facebook, Twitter and Google+
  • Uses Express combined with Passport JS for authentication and route handling
  • Account management - Update details, link/unlink accounts, delete account
  • Session support with secure HTTP Only cookies and CSRF Tokens
  • SASS/SCSS wth Bootstrap 4 and Reactstrap with Bootstrap components for React
  • Comes with Ionicons icon font and shows how to bundle other CSS and font files

You can see a live demo at https://nextjs-starter.now.sh

About

Next.js is a framework that makes it easy to create 'universal' React apps - React apps that do both client and server side rendering.

With Next.js, React pages are automatically rendered on both client and server side, without the hassle of setting up dependancies like webpack or babel and with automatic routing and without the constraints of projects like Create React App.

This is a starter project that provides an example of how to use Next.js with Express, SASS/SCSS, Bootstrap, Reactstrap (Boostrap 4 for React), the Ionicons icon set, examples of how to include data from remote REST APIs and incorporate an authentication system that supports both oAuth and Email using Passport (a popular authentication framework for Node.js).

This project exists to make it easier to get started a creating production app in React. You are invited to use it as a reference or to copy it and use it as a base for your own projects. Contributions to improve this project are welcome.

Running locally in development mode

To get started, just clone the repository and run npm install && npm run dev:

git clone https://github.com/iaincollins/nextjs-starter.git
npm install
npm run dev

Note: If you are running on Windows run install --noptional flag (i.e. npm install --no-optional) which will skip installing fsevents.

Building and deploying in production

If you wanted to run this site in production, you should install modules then build the site with npm run build and run it with npm start:

npm install
npm run build
npm start

You should run npm run build again any time you make changes to the site.

Note: If you are already running a webserver on port 80 (e.g. Macs usually have the Apache webserver running on port 80) you can still start the example in production mode by passing a different port as an Environment Variable when starting (e.g. PORT=3000 npm start).

Configuring

If you configure a .env file (just copy .env.example over to '.env' and fill in the options) you can configure a range of options.

See the AUTHENTICATION.md for how to set up oAuth if you want to do that. It suggested you start with Twitter as it's the easiest to get working.

Deploying to the cloud with now.sh

To deploy to production on Zeit's now.sh cloud platform you will need to install the Now desktop app on your computer. If you don't want to install the Now desktop app, you can use the following command to install it (either approach is fine):

sudo npm i -g --unsafe-perm now

Once installed, open now.json and set a name and alias for your site.

To deploy, just run now in the working directory:

npm install -g now
now

If you configure a .env file now will include it when deploying if you use the -E option to deploy:

now -E

If you want to have your local .env file have variables for local development and have a different sent of variables you use in production, you can create additional .env files and tell now to use a specific file when deploying:

now -E production.env

After deploying

Once you have deployed, now will return a URL where the site when it has been deployed to, you can use this to preview everything works correctly in the browser.

If you have set an alias for the site, you can then make the site live on the alias you have defined using now alias:

now alias

By default, this will point any aliases you have set in now.json to your site.

You can configure now to use aliases with custom domains using the now domain and now dns commands.


Further reading

Database hosting

If you need an instance of MongoDB in the cloud https://mlab.com/ have free and inexpensive options.

Secrets for Environment Variables

Once you are comfortable using .env files for configuration and running and deploying your app, take a look at now secrets to set options in the cloud so you don't have to set them each time you deploy.

GitHub integration

You can integrate now with a GitHub account to trigger automated deployments anytime you push to GitHub. This works great if you have secrets set up!

Now 2.0

When you deploy this project you will see this message as of November 2018:

WARN! You are using an old version of the Now Platform. More: https://zeit.co/docs/v1-upgrade

Now 2.0 was released in November 2018 and works differently from Now 1.0. This project has not been updated for Now 2.0. You may ignore this message for now.

Alternate hosting options

You can host your Next.js site with any hosting provider. Although it works great on Now, it also works great with other providers like Heroku, Amazon Web Service, Google Cloud Platform, Microsoft Azure, DigitalOcean and others.

Comments
  • How to protect routes?

    How to protect routes?

    First, thanks for putting this together. It looks very much like what I need (and what I was about 1/3 of the way through putting together).

    I do have one question, though. I didn't see any examples in the project of how to protect a route from access by unauthenticated users. Maybe I overlooked it?

    I've tried a couple of things, mostly around checking the props.session value in various methods (constructor, render, getInitialProps) of the page component. These work, but there's an annoying flicker as the page is rendered and then the router is redirected to the /auth/signin page. I could do some conditional rendering (eg. an unauthorized message) if the user is not authorized, but there's still going to be that moment where the message is rendered and then the transition is made to the new page.

    Thanks for your help!

    question 
    opened by kryten87 16
  • Fetching data on server & client side

    Fetching data on server & client side

    Hi @iaincollins , Thank you for this starter. I wanna ask about data fetching on async example. i saw you are fetching the data in https://github.com/iaincollins/nextjs-starter/blob/master/pages/async.js#L21 and https://github.com/iaincollins/nextjs-starter/blob/master/pages/async.js#L40. So it will fetch the data twice when user opened that page? L21 will be called on server side and L40 will be called on client side.

    enhancement question 
    opened by adrianha 12
  • Slow page build times in development since update to Next.js 5.0

    Slow page build times in development since update to Next.js 5.0

    Hi,

    Is it normal for the dev compilation to take up to 12 seconds to compile each page?

    Reproduce: npm run dev Click an item from the example drop down menu and wait for page to load.

    Thanks!

    performance 
    opened by khuezy 11
  • XMLHttpRequest is not defined

    XMLHttpRequest is not defined

    Something strange happened to me: suddenly I get an error from the session component, "XMLHttpRequest is not defined". When I added global.XMLHttpRequest = require ("xmlhttprequest"); Back to the file, I get another error: These modules were not found:

    • child_process in ./node_modules/xmlhttprequest/lib/XMLHttpRequest.js
    • fs in ./node_modules/xmlhttprequest/lib/XMLHttpRequest.js
    opened by mulikaminker 9
  • How to get user object on the server when send ajax request via getInitialProps?

    How to get user object on the server when send ajax request via getInitialProps?

    Hello,

    I am trying to fetch user bookmarks from the server.

    when send request on the client side, we can access user object by req.user. Is there any way to get access to the user object when send request via getInitialProps.

    Thanks.

    // model/user.js
    
    const UserSchema = new mongoose.Schema({
      _id: mongoose.Schema.Types.ObjectId,
      bookmarkIds: [{ref:'Bookmark', ...}]
      ......
    });
    
    //pages/index.js
    
    export default class extends Page {
      static async getInitialProps({req}) {
        const props = await super.getInitialProps({ req });
        
        if (isServer) {
          fetch('http://localhost:3000/api/test', { method: 'GET', credentials: 'include' })
            .then((res) => res.json())
            .then(console.log);
        }
        return props
      }
    }
    
    routes/test.js
    
    module.exports = (expressApp) => {
      expressApp.get('/api/test', (req, res) => {
    
        console.log(req.user)        // undefined
    
        const result = {}            // fetch user bookmarks...
    
        res.send(result);
      });
    };
    
    
    question 
    opened by xiaoyu-tamu 8
  • re: next build hangs

    re: next build hangs

    git clone https://github.com/iaincollins/nextjs-starter.git npm install npm run dev

    nextjs-starter@6.0.3 postinstall /www/clients/nextjs/nextjs-starter next build

    waiting, nothing past this point

    any thoughts?

    opened by UltraFlux 7
  • Does not work in IE11

    Does not work in IE11

    Unfortunately, this starter is not compatible with IE11 - it fails both in DEV and PROD modes. It's acceptable for DEV mode, as webpack-hot-middleware is not compatible. However, in PROD mode I'd expect IE11 to work well.

    Steps to reproduce:

    1. Run with npm run start and open in IE11 or simply open https://nextjs-starter.now.sh/ in IE11
    2. First, it shows the website content, then returns "HTTP Error" page with the following error in the console:
    Syntax error
    SyntaxError: Syntax error
       at Anonymous function (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:103573)
       at t (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:102041)
       at eval code (eval code:2:22)
       at Anonymous function (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:102499)
       at t (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:102041)
       at Anonymous function (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:102411)
       at Anonymous function (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:101935)
       at n (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:101591)
       at Anonymous function (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:269:101567)
       at t (https://nextjs-starter.now.sh/_next/8766e2d8101f161d4f7a9eec13b034f3/app.js:1:436)
    

    Perhaps, some polyfill is required but I don't know how to identify it. Could you please fix it or at least help to understand which polyfill is required?

    bug wontfix 
    opened by lagivan 6
  • Documentation on Authentication Setup / Email Setup?

    Documentation on Authentication Setup / Email Setup?

    I cannot seem to find any documentation on how to actually setup the authentication or the email setup. I have filled in the appropriate .env files but I cannot seem to figure out how to get this project to associated my MongoDB with users, or where a model would be to map this information. I filled out the config in the docs and if I try and signup it says it will send an email, however since this does not happen out of the box I assume you have to config sendgrid or some other service that will actually do that. Because of that I cannot login and thus cannot test authentication. I understand I do not know everything about how this works which is why I am hoping for some documentation.

    question 
    opened by cmosboss 6
  • Replace XMLHttpRequest to use unfetch

    Replace XMLHttpRequest to use unfetch

    Hi @iaincollins

    Saw the issue that you made (#45) and I would like to give a hand on it. This PR is pretty much just replacing XMLHttpRequest to use unfetch. Let me know if this is good for you 😃

    opened by efallancy 6
  • It's possible to replace the mongoClient to mongoose?

    It's possible to replace the mongoClient to mongoose?

    I have trouble with connect between collection in mongoclient and i want to use the mongoose populate function. can i replace the mongoclisnt with mongoose?

    question 
    opened by mulikaminker 6
  • Update Session component to add Redux Store and use connect()

    Update Session component to add Redux Store and use connect()

    The Session component works perfectly fine, well am considering refactoring it in a more typical React/Redux pragma by using a Store as a practical usage example.

    The Clock demo that's included (from the official wiki) uses a Store and connect() but it's not the easiest (or most re-useable) example to follow.

    I can't see a huge practical benefit from the point of view of application behaviour and I'm not sure if this would make the logic easier to follow, more bloated, or even make the logic harder to follow, but it's an established pragma so seems worth considering.

    (I already use a Store with connect() for session handling in another project, I'm just not quite sure the pragma is justified over using more easily readable vanilla JS for the same thing).

    I am also tempted to set up an event handler to listen for events on the session store and/or fire server events showing how that if you perform an action (like sign in or out) in one tab/window that it can automatically update other tabs/windows.

    Comments/suggestions around this welcome.

    enhancement 
    opened by iaincollins 6
  • 🚨 This project is now archived

    🚨 This project is now archived

    This project is now archived and is no longer maintained.

    I'm happy so many people found this project useful, but it's now out of date and many of the features of this starter project are now redundant as Next.js has evolved considerably over the last few years and now has native support for features such as CSS and SASS and for API routes without requiring a custom server.

    For that reason I'm retiring this project and putting it into archive mode.

    Thank you to everyone who contributed to this project over the last 3 years!

    Where to look for examples

    • You can find up to date examples of how to use Next.js at https://github.com/vercel/next.js

    • For an example of how to add authentication to Next.js project, check out NextAuth.js at https://next-auth.js.org

      There is a NextAuth.js example project with live demo at http://next-auth-example.now.sh

    opened by iaincollins 0
  • Deployment to Now v2

    Deployment to Now v2

    Describe the bug Deployment attempt produces an error

    To Reproduce Follow instructions in README

    Expected behavior A deployed website

    Node version, NPM version and Operating System and version Node: 13.7.0 NPM: 6.14.1 OS: OSX 10.14.6

    Additional context

    First of all, the project includes a now.json that contains bad information. Names are no longer used and the version is set to 1, causing Now to refuse deployment. I simply deleted the file and ran now but then i puked with the following:

    2020-04-07T00:06:37.615Z Error: Found engines in package.json with an invalid Node.js version range: "8.11.x". 2020-04-07T00:06:37.615Z Please set "engines": { "node": "12.x" } in your package.json file to upgrade to Node.js 12. Learn more: https://zeit.co/docs/runtimes#official-runtimes/node-js/node-js-version

    after patching the package.json as instructed Now fails with the following:

    2020-04-07T00:09:43.170Z Error: No serverless pages were built. https://err.sh/zeit/now/now-next-no-serverless-pages-built 2020-04-07T00:09:43.170Z at Object.module.exports.178.exports.build (/zeit/f8b3553cce6cf4b4/.build-utils/.builder/node_modules/@now/next/dist/index.js:4041:19) 2020-04-07T00:09:43.170Z at async buildStep (/var/task/sandbox-worker.js:20371:20) 2020-04-07T00:09:43.170Z at async mainSub (/var/task/sandbox-worker.js:20116:9) 2020-04-07T00:09:43.170Z at async main (/var/task/sandbox-worker.js:20023:5)

    so I guess Now expects something this project isn't providing. clue anyone?

    opened by ekkis 2
  • Sign in doesn't work - takes to page not found '_error' does not exist.

    Sign in doesn't work - takes to page not found '_error' does not exist.

    Describe the bug Sign in / auth doesn't work for neither google nor email sign up/in.

    To Reproduce Deploying to AWS EC2 ubuntu 18-04 instance: Populate the .env file with real data such as SERVER_URL=http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/ ... GOOGLE_ID GOOGLE_SECRET= ...

    Expected behavior Redirect user to either previous page or logged in page, and show that the user is signed in. Instead it takes user to Page not found '_error' does not exist, and console error with replaceState cannot be executed on the origin.

    Node version, NPM version and Operating System and version nodejs v12.16.1 npm version 6.13.4 Operating system: Ubuntu 18.04

    Additional context

    Logs:

    Failed to load resource: the server responded with a status of 404 (Not Found) main-e42bb1aba7f66664c61d.js:1 Failed to execute 'replaceState' on 'History': A history state object with URL 'http://auth/email/signin/4337b7cf-4aa0-4a5a-85ca-8280890e38e3' cannot be created in a document with origin 'http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com' and URL 'http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com//auth/email/signin/4337b7cf-4aa0-4a5a-85ca-8280890e38e3'. Error: Failed to execute 'replaceState' on 'History': A history state object with URL 'http://auth/email/signin/4337b7cf-4aa0-4a5a-85ca-8280890e38e3' cannot be created in a document with origin 'http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com' and URL 'http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com//auth/email/signin/4337b7cf-4aa0-4a5a-85ca-8280890e38e3'. at e.value (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:72:11510) at new e (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:72:8219) at i (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:72:5262) at t.createRouter (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:18:6669) at http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/runtime/main-e42bb1aba7f66664c61d.js:1:1938 at w (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:48:55892) at Generator._invoke (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:48:55680) at Generator.e. [as next] (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:48:56071) at r (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:18:8454) at l (http://ec2-3-10-198-176.eu-west-2.compute.amazonaws.com/_next/static/chunks/commons.913a7d85cefec260cf27.js:18:8652)

    opened by campbellgoe 0
  • Memory leak in app created from this boilerplate

    Memory leak in app created from this boilerplate

    Bug report

    We have some problem on our server. After some time of execution we have an out of memory error on our server. So I tried to reproduce on my computer. I create a clean project just use nextjs-starter. and build it.run it using pm2, after one three to see if the memory increase. Here is the memory evolution :

    b882ca53-727a-4c84-b014-b1e9dbcd9b61

    pm2 monit show like this:

    64d616e1-1bce-4d22-8311-7c0ef85441a4 6dafeb61-ee62-41c8-af3f-82a3d16eab5c

    Describe the bug

    you can see the heap size awaly increasing when i use loadtest request

    To Reproduce

    1. git clone https://github.com/iaincollins/nextjs-starter

    2. cd nextjs-starter

    3. npm i

    4. add pm2.config.js file

        const pkg = require("./package.json");
      
        module.exports = {
             apps: [
                 {
                      name: pkg.name,
                      script: "index.js",
                      instances: 1,
                      exec_mode: "cluster",
                      watch: false,
                      node_args: "--inspect --expose-gc",
                      max_memory_restart: "1500M",
                      env: {
                           NODE_ENV: "development",
                           BUILD_ENV: "test",
                           RUNTIME_ENV: "test",
                      },
                      env_test: {
                           NODE_ENV: "production",
                           BUILD_ENV: "test",
                           RUNTIME_ENV: "test",
                     },
                },
            ],
      };
      
    5. npm run build

    6. pm2 start pm2.config.js

    7. loadtest -c 30 --rps 20 http://localhost:80

    8. you can use pm2 monit or chrome://inspect See error I also use express test, it is ok!

    system information

     OS: macOS
     Version of pm2: 4.2.1
     Version of loadtest: 4.1.0
    

    Additional context

      use pm2 log see node inspect port
    

    ad03283b-19e2-4928-a34c-e942a22162e3 8b6e20b7-6b9a-469d-bc9b-ccca6019f14e

    opened by dongrh214 0
  • npm install fails

    npm install fails

    Describe the bug A clear and concise description of what the bug is. Running npm install fails and shows the following error

    The engine "node" is incompatible with this module. Expected version "8.11.x". Got "12.14.0"

    To Reproduce Steps to reproduce the behaviour. use latest version of node and try running npm install

    Expected behavior A clear and concise description of what you expected to happen.

    Ideally, it should work as far as it is using version > 8.11.x

    Node version, NPM version and Operating System and version

    node version: 12.14.0 npm version: 6.13.4 OS: macOS Mojave 10.14.6

    Note: If you are using Microsoft Windows please see existing issues before opening a new ticket as it's likely the issue you have is specific to Windows.

    Additional context Add any other context about the problem here.

    opened by ertejaspatel 2
  • Cloning and installing packages is failing because package-lock.json is present

    Cloning and installing packages is failing because package-lock.json is present

    Describe the bug When you run the steps documented under Running locally in development mode, it will fail installing the packages because package-lock.json is present.

    In order to fix this you can either:

    1. Remove package-lock.json before you run npm install
    2. Stop tracking package-lock.json so you don't need to run rm package-lock.json before npm install.

    To Reproduce Run the commands documented under section: Running locally in development mode.

    Expected behavior I want to be able to run the commands documented under section: Running locally in development mode without errors.

    Node version, NPM version and Operating System and version

    Node 13.1.0 npm 6.13.1 macOS 10.15.1

    opened by renatomoya 0
Releases(v4.5.3)
  • v4.5.3(Jan 27, 2018)

    Authentication is now handled by the next-auth library.

    All authentication code - including express and passport integration - has been forked off into this npm module making it easier to manage and providing complete separation of auth configuration and database code.

    • next-auth.config.js <- Basic configuration
    • next-auth.functions.js <- CRUD methods for user management and email sending function
    • next-auth.providers.js <- oAoth provider configuration

    The session handling code is now provided by next-auth-client.

    While authentication is still more complicated to add to a new project than is ideal, future updates to next-auth may provide easier interfaces to do this in future.

    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Jan 6, 2018)

    • Includes Next.js 4.2.1 and React 16
    • Improved examples and documentation
    • Now redirects back to the page you were on when signing in (*Requires client side JavaScript)
    • Refactoring of server side code for better clarity
    • Updated Bootstrap and Reactstrap
    • Added Ionicons icon font
    • A new layout and homepage
    Source code(tar.gz)
    Source code(zip)
  • v2.11.0(May 14, 2017)

    • Includes fixes from 2.10.0 that address issues with the Facebook API oAuth API no longer returning email address (and also improves the error handling around that).
    • Bumps us up to using Next.js 2.0 release version.

    A pre-release 2.0 beta version was previously listed, although it was a recent beta so there are no actual changes to the code for the release version.

    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Mar 17, 2017)

    • Can now link and unlink oAuth accounts and view session info on the sign in page.
    • More robust session handling.
    • Improved compatibility with Internet Explorer (all known issues resolved).
    • Updated clock / redux demo (thanks to @HaNdTriX).

    This is the only supported version and it's is strongly recommended you upgrade to this version, especially for Internet Explorer compatibility.

    Source code(tar.gz)
    Source code(zip)
  • v2.5.3(Feb 13, 2017)

    This release is identical to v2.5.4 but is missing a polyfill for Promise which resolves a problem caused by Internet Explorer lacking native Promise support.

    You should use release v2.5.4 instead of this release.

    Source code(tar.gz)
    Source code(zip)
  • v.2.5.4(Feb 13, 2017)

    This release features email and oAuth based authentication, with CSRF protection and using httpOnly cookies to project against XSS exploits. It also adds support for live reloading of CSS/SCSS and linting with 'xo' and has extended documentation.

    Client and server configuration (including oAuth providers) is easily configurable. A range of options, including oAuth configuration options, are exposed and can be configured in .env (see .env.defaults for examples). Additionally options can be configured within the app in 'auth.js'.

    This release uses Next.js 2.0.0-beta.23. It has been tested in recent versions of all major browsers (Chrome, Firefox, Internet Explorer and Safari).

    Source code(tar.gz)
    Source code(zip)
  • v2.4.4(Feb 9, 2017)

    This release features email only based authentication, with CSRF protection and using httpOnly cookies to project against XSS exploits.

    It is the first release to feature a fully implemented session class, that includes being able to specify how long a client should consider a session valid for before it checks with the server again.

    This value can be 0 (to force the client to check the session state on every page navigation or interaction with the session component, which is how sessions behave normally with server-only rendering) or 30 seconds or longer, to reduce the amount of traffic to the server, which will make navigating between pages faster for users.

    The default value for 'clientMaxAge' been set to 60 seconds and like all other auth options can be configured when 'routes/auth.js' is invoked. Note this is distinct (and less than) the actual session maxAge.

    Note: Regardless of this value, users will always see their session status updated immediately if the sign or out, as that information is shared between tabs and windows.

    Future releases will see updates and refactoring to the authentication to add new features. If you wish to just reference a simpler release, this would be an appropriate release to choose.

    Source code(tar.gz)
    Source code(zip)
Owner
Iain Collins
Hackery, Civic Tech & News Nerdery. Cat herder.
Iain Collins
Next.js Notion Starter Kit - The perfect starter kit for building websites with Next.js and Notion.

Next.js Notion Starter Kit The perfect starter kit for building websites with Next.js and Notion. Intro This repo is what I use to power my personal b

Shirish Veerabattini 23 Sep 26, 2022
Pankod 1.4k Dec 27, 2022
This is a Next.js project bootstrapped with create-next-app.

This is a Next.js project bootstrapped with create-next-app.

DBMS_RMUTL 1 Nov 4, 2021
A developer blog starter for 2020 (Next.js + React + TypeScript + Markdown + syntax highlighting)

Devii A developer blog starter for 2020. Next.js React TypeScript Markdown syntax highlighting SEO RSS generation if you're happy and you know it, sta

Colin McDonnell 463 Dec 20, 2022
This is the Official Starter template for the AMAZON 5 Day challenge (The SECRET Challenge!) - Next.js | React.js | Tailwind CSS | Redux | Tailwind | Firebase

Installation Steps Using npm Run commands npm install npm run dev Or using yarn Run commands npm install --global yarn yarn install yarn run dev If yo

Sonny Sangha 302 Dec 28, 2022
A full-stack dApp starter built on Ethereum (Solidity) with Next.js (React).

A full-stack dApp starter built on Ethereum (Solidity) with Next.js (React).

Tom Hirst 272 Dec 30, 2022
This is a Next.js, Tailwind CSS blogging starter template.

This is a Next.js, Tailwind CSS blogging starter template. Comes out of the box configured with the latest technologies to make technical writing a breeze. Easily configurable and customizable. Perfect as a replacement to existing Jekyll and Hugo individual blogs.

Timothy 3.8k Dec 31, 2022
🚀 Boilerplate and Starter for Next JS 12+, Tailwind CSS 2.0 and TypeScript Twitter

?? Boilerplate and Starter for Next.js 12+, Tailwind CSS 2.0 and TypeScript ⚡️ Made with developer experience first: Next.js + TypeScript + ESLint + Prettier + Husky + Lint-Staged + VSCode + Netlify + PostCSS + Tailwind CSS

Remi W. 3k Jan 5, 2023
Non-opinionated TypeScript starter for Next.js

Non-opinionated TypeScript starter for Next.js Highly scalable foundation with the best DX. All the tools you need to build your next project. Created

Opa Kholis Majid 6 Feb 9, 2022
Non-opinionated TypeScript starter for Next.js

Non-opinionated TypeScript starter for Next.js Highly scalable foundation with the best DX. All the tools you need to build your next project. Created

Opa Kholis Majid 2 Dec 9, 2021
This is a Next.js + Tailwind CSS starter for the very fun Wordle app

Another Wordle - Next.js + Tailwind CSS + Typescript Starter Live Demo • Follow me on Twitter This is a Next.js + Tailwind CSS starter for the very fu

Bilal 3 Apr 21, 2022
A highly opinionated and complete starter for Next.js projects ready to production

Next Starter The aim for this starter is to give you a starting point with everything ready to work and launch to production. Web Vitals with 100% by

Fukuro Studio 28 Nov 27, 2022
Full-stack boilerplate (project/hackathon starter) with Docker/NodeJS/Typescript/GraphQL/React/Material-UI

The KNESTS Stack KNEx.js NEST.js NExT.js TS GraphQL Docker The above libraries and frameworks are the best ones (in my opinion, of course) regarding m

Tudor Constantin 281 Jan 8, 2023
React + GraphQL + Next.js project architecture that I play with right now

React + GraphQL + Next.js + Apollo + Scss + Typescript Starter Project boostrap built with: React.js Next.js Typescript SCSS Apollo GraphQl EsLint Pre

Sebastian 83 Oct 21, 2022
A simple blog project based in NextJS (ReactJS); Next.js Crash Course

First NextJS A simple blog project based in NextJS (ReactJS); Next.js Crash Course This is a Next.js project bootstrapped with create-next-app. Gettin

Max Base 13 Jul 29, 2022
A starting boilerplate for a TS Next.js project with batteries included. Tailwind CSS in JIT mode for styling, Jest and React Testing Library working with path aliases and node-mock-http for API route testing.

This is a Next.js project that includes Tailwind CSS in JIT mode, TypeScript and Jest with @testing-library with working TS path aliases. Getting Star

Antonio Lo Fiego 38 Apr 25, 2022
A sweet Next.js project template

A sweet Next.js project template. Integrates Redux Toolkit with with test support for Mocha + Chai + React Testing Library and release publishing via release-it.

Jason G. Williscroft 3 Dec 15, 2022
A starter library for node projects with user accounts.

Staart - get your project started Join the Slack channel! Staart is a library of components to get a node platform with user accounts quickly started.

Nick Redmark 315 Dec 3, 2022
React + Nextjs + MobX starter

This is my minimal yet functional React starter kit and demo app as of August 2018. If you feel tired of Javascript fatigue, and want to get started q

Tomi Mickelsson 49 Dec 3, 2022