Giter Club home page Giter Club logo

timmikeladze / next-apollo-joy-starter Goto Github PK

View Code? Open in Web Editor NEW
40.0 4.0 1.0 693 KB

๐Ÿ‡ณ ๐Ÿš€ ๐Ÿ˜Š Spend more time building instead of configuring your next project. A slightly opinionated starter kit for creating fully typed Next.js apps with a pleasant developer experience.

Home Page: https://next-apollo-joy-starter.vercel.app

License: MIT License

Shell 0.46% JavaScript 6.60% HTML 0.29% TypeScript 92.51% CSS 0.14%
apollo graphql graphql-starter joy next starter apollo-starter graphqlstarter next-graphql next-js-graphql

next-apollo-joy-starter's Introduction

๐Ÿ‡ณ ๐Ÿš€ ๐Ÿ˜Š Next.js - Apollo GraphQL - Joy UI

Spend more time building instead of configuring your next project.

๐Ÿšช Intro

This is a slightly opinionated starter kit for developing Next.js apps. It uses the Joy UI library from MUI along with the Apollo stack. All GraphQL are operations are fully typed with GraphQL Codegen and Zeus. The starter kit also includes a fully functional authentication system, localization, and outputs a progressive web app, plus plenty of other goodies for a great developer experience right out of the box.

๐Ÿ‘‹ Hello there! Follow me @linesofcodedev or visit linesofcode.dev for more cool projects like this one.

๐Ÿƒโ€ Get started

To get started clone the repo. Using npx degit is a great way to get this done quickly as it will remove the .git folder plus extra files like the LICENSE.md or this very README.md file.

npx degit TimMikeladze/next-apollo-joy-starter my-app

cd my-app && git init

yarn && yarn dev

Once cloned just install all dependencies with yarn and you are ready to go. Happy coding!

โ— Important note: This project uses yarn for managing dependencies. If you want to use another package manager, remove the yarn.lock and control-f for usages of yarn in the project and replace them with your package manager of choice.

๐Ÿ“ฆ What's included?

Remaining simple at its core, this project is packed with useful tools that enhance your experience while working with Next.js. Here is a list of the main features:

๐Ÿ’ช Starter code

  • ๐Ÿ”’ Next Auth - A complete open source authentication solution for Next.js applications. It is designed from the ground up to support Next.js and Serverless.
  • ๐Ÿš€ Apollo client and server - Apollo is a great way to build your GraphQL stack. It comes with a great community and a lot of features out of the box such as caching, query batching, and more.
  • ๐Ÿค– Zeus + GraphQL Codegen - Type-safety anywhere GraphQL is used.
  • ๐Ÿ˜Š Joy UI - Joy UI is a library of beautifully designed React UI components built to spark joy in the development process.
  • ๐ŸŒ™ Dark mode - Switch between light and dark mode with a single click.
  • ๐Ÿž React Hot Toast - The best toast in town. Smoking hot React notifications.
  • ๐ŸŒ i18next - The easiest way to translate your NextJs apps.
  • ๐Ÿ” Next SEO - The easiest way to add SEO support to your Next.js app.
  • ๐Ÿ“ฑ Next PWA - Zero config PWA plugin for Next.js, with workbox.
  • ๐Ÿชต Axiom logging - Send structured logs directly from your code and query, stream, & analyze. Learn more.

๐Ÿ›  Develop and test

  • ๐Ÿ“– Storybook - Build UI components and pages in isolation. It streamlines UI development, testing, and documentation.
  • ๐Ÿ› Apollo Sandbox - A free, in-browser GraphQL IDE for exploring your schema and making queries.
  • ๐Ÿงช Jest - A testing framework for JavaScript. Preconfigured to work with TypeScript and JSX.
  • ๐Ÿ™ Run tests via Github Actions - CI/CD workflows for your package. Run tests on every commit plus integrate with Github Releases to automate publishing package to NPM and Storybook to Github Pages.
  • ๐Ÿ“Š Bundle analyzer - Visualize the size of Next.js build output files with an interactive zoomable treemap.
๐Ÿง‘โ€๐ŸŽจ Lint and format
  • โ˜‘๏ธ ESLint - A linter for JavaScript. Includes a simple configuration for React projects based on the recommended NextJS ESLint config.
  • ๐ŸŽจ Prettier - An opinionated code formatter.
  • ๐Ÿšซ lint-staged โ€” Run linters on git staged files
  • ๐Ÿถ Husky โ€” Running scripts before committing.
๐Ÿ“ค Commit and release
  • ๐Ÿ“ Commit-it โ€” A CLI tool to help you write stylish commit messages.
  • ๐Ÿ”ผ Release-it - release-it is a command line tool to automatically generate a new GitHub Release and populates it with the changes (commits) made since the last release.
  • ๐Ÿ—๏ธ Renovate - Universal dependency update tool that fits into your workflows. Configured to periodically check your dependencies for updates and send automated pull requests.

๐ŸŽ“ Usage

๐Ÿ‘ทโ€ Developing

Start the Next.js development server and watch GraphQL files for code generation.

yarn dev

Need to test your GraphQL queries or explore your schema? Use Apollo Sandbox by visiting http://localhost:3000/api/graphql in your browser.

Working on the UI? Start Storybook to develop components in isolation.

yarn storybook

๐Ÿ”ฌ Testing

Run tests when changes are detected.

yarn test:watch

Or simply run all the tests

yarn test

๐Ÿ“’ Committing

When you are ready to commit simply run the following command to get a well formatted commit message. All staged files will automatically be linted and fixed as well.

yarn commit

โœ… Releasing & tagging

Create a semantic version tag and publish to Github Releases. As part of this process a git tag will also be created on the current branch.

Learn more about how to use the release-it command here.

yarn release

๐Ÿšง Building & deploying

This project can be deployed anywhere where Next.js can run. I suggest using Vercel with the GitHub integration to quickly deploy an app to production.

If you want to build your app for production on your local machine, within a container, etc, simply run the following command:

yarn build

๐Ÿ”Ž Analyzing bundle size

To analyze the page bundles of your Next.js app, run the following command:

yarn build:analyze

๐Ÿ“ฑ Progressive Web App

This project is configured to be a PWA out of the box, it just needs a few more steps from you to be production ready. Add your image assets and define your manifest files. Start by following the instructions here.

โš™๏ธ Customizing this starter

This project is designed to be a starting point for your project. Each of its features has a small footprint and can be easily removed or replaced with your own.

For example you easily replace Joy UI with Tailwind CSS with minimal effort while keeping the rest of the starter-kit intact.

๐ŸŽŠ Built a project with this starter kit?

That's awesome! Please feel free to open a PR and add your project to the list below.

next-apollo-joy-starter's People

Contributors

dependabot[bot] avatar renovate[bot] avatar timmikeladze avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

theapplegates

next-apollo-joy-starter's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • Update dependency @as-integrations/next to v2
  • Update dependency @graphql-tools/schema to v10
  • Update graphqlcodegenerator monorepo to v4 (major) (@graphql-codegen/cli, @graphql-codegen/typescript, @graphql-codegen/typescript-resolvers)

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/main.yml
  • actions/checkout v3
  • actions/setup-node v3
  • bahmutov/npm-install v1
npm
package.json
  • @apollo/client 3.7.10
  • @apollo/link-error 2.0.0-beta.3
  • @apollo/server 4.5.0
  • @as-integrations/next 1.2.0
  • @emotion/react 11.10.6
  • @emotion/styled 11.10.6
  • @graphql-tools/schema 9.0.17
  • @mui/icons-material 5.11.11
  • @mui/joy 5.0.0-alpha.70
  • @mui/material 5.11.12
  • @next/font 13.2.4
  • apollo-link-debounce 3.0.0
  • dotenv 16.0.3
  • graphql 16.6.0
  • graphql-rate-limit-directive 2.0.3
  • graphql-scalars 1.20.1
  • graphql-tag 2.12.6
  • graphql-zeus 5.3.0
  • i18next 22.4.11
  • i18next-http-backend 2.1.1
  • micro 10.0.1
  • next 13.2.4
  • next-auth 4.20.1
  • next-axiom 0.17.0
  • next-bundle-analyzer 0.6.7
  • next-i18next 13.2.2
  • next-pwa 5.6.0
  • next-seo 5.15.0
  • rate-limiter-flexible 2.4.1
  • react 18.2.0
  • react-dom 18.2.0
  • react-hook-form 7.43.5
  • react-hot-toast 2.4.0
  • react-i18next 12.2.0
  • remark 14.0.2
  • remark-html 15.0.2
  • @babel/core ^7.20.12
  • @commitlint/cli 17.4.4
  • @commitlint/config-conventional 17.4.4
  • @dword-design/eslint-plugin-import-alias 3.0.1
  • @graphql-codegen/cli 3.2.2
  • @graphql-codegen/typescript 3.0.2
  • @graphql-codegen/typescript-resolvers 3.1.1
  • @ngneat/falso 6.4.0
  • @storybook/addon-actions ^6.5.16
  • @storybook/addon-essentials ^6.5.16
  • @storybook/addon-interactions ^6.5.16
  • @storybook/addon-links ^6.5.16
  • @storybook/builder-webpack5 ^6.5.16
  • @storybook/manager-webpack5 ^6.5.16
  • @storybook/react ^6.5.16
  • @storybook/storybook-deployer 2.8.16
  • @storybook/testing-library ^0.0.13
  • @types/graphql 14.5.0
  • @types/jest 29.4.0
  • @types/node 18.15.0
  • @types/react 18.0.28
  • @types/react-dom 18.0.11
  • @types/react-test-renderer 18.0.0
  • @typescript-eslint/eslint-plugin 5.54.1
  • @typescript-eslint/parser 5.54.1
  • babel-loader ^9.1.2
  • commit-it 0.0.11
  • concurrently 7.6.0
  • eslint 8.36.0
  • eslint-config-next 13.2.4
  • eslint-config-prettier 8.7.0
  • eslint-import-resolver-typescript 3.5.3
  • eslint-plugin-import 2.27.5
  • eslint-plugin-prettier 4.2.1
  • eslint-plugin-sort-keys-fix 1.1.2
  • eslint-plugin-typescript-sort-keys 2.1.0
  • eslint-plugin-unused-imports 2.0.0
  • husky 8.0.3
  • i18next-browser-languagedetector 7.0.1
  • jest 29.5.0
  • lint-staged 13.2.0
  • prettier 2.8.4
  • react-test-renderer 18.2.0
  • release-it 15.8.0
  • storybook-addon-turbo-build 1.1.0
  • storybook-dark-mode 2.1.1
  • ts-jest 29.0.5
  • ts-node 10.9.1
  • typescript 4.9.5
  • utility-types 3.10.0
  • json5 >=2.2.2
  • parse-url >=8.1.0
  • trim-newlines >=3.0.1
  • json-schema >=0.4.0
  • glob-parent >=5.1.2
  • trim >=0.0.3
nvm
.nvmrc
  • node 18

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.