Coder Social home page Coder Social logo

blazity / next-enterprise Goto Github PK

View Code? Open in Web Editor NEW
5.5K 23.0 1.2K 3.48 MB

πŸ’Ό An enterprise-grade Next.js boilerplate for high-performance, maintainable apps. Packed with features like Tailwind CSS, TypeScript, ESLint, Prettier, testing tools, and more to accelerate your development.

Home Page: https://next-enterprise.vercel.app

License: MIT License

JavaScript 27.16% TypeScript 72.67% CSS 0.17%
boilerplate chatgpt cva eslint jamstack javascript-ai next next-js next-theme nextjs

next-enterprise's Introduction

Next.js Enterprise Boilerplate
GitHub Actions Workflow Status GitHub License GitHub contributors Discord Blazity

Welcome to the Next.js Enterprise Boilerplate, an open-source template for enterprise projects! It's loaded with features that'll help you build a high-performance, maintainable, and enjoyable app. We've done all the heavy lifting for you, so sit back, relax, and get ready to conquer the world with your incredible app! 🌍

Note

Blazity is a group of Next.js/Headless experts. Contact us at [email protected] if you’d like to talk about your project or just to have a chat with us

Features

With this template, you get all the awesomeness you need:

  • 🏎️ Next.js - Fast by default, with config optimized for performance (with App Directory)
  • πŸ’… Tailwind CSS - A utility-first CSS framework for rapid UI development
  • ✨ ESlint and Prettier - For clean, consistent, and error-free code
  • πŸ› οΈ Extremely strict TypeScript - With ts-reset library for ultimate type safety
  • πŸš€ GitHub Actions - Pre-configured actions for smooth workflows, including Bundle Size and performance stats
  • πŸ’― Perfect Lighthouse score - Because performance matters
  • Bundle analyzer plugin - Keep an eye on your bundle size
  • Jest and React Testing Library - For rock-solid unit and integration tests
  • Playwright - Write end-to-end tests like a pro
  • Storybook - Create, test, and showcase your components
  • Smoke Testing and Acceptance Tests - For confidence in your deployments
  • Conventional commits git hook - Keep your commit history neat and tidy
  • Observability - Open Telemetry integration for seamless monitoring
  • Absolute imports - No more spaghetti imports
  • Health checks - Kubernetes-compatible for robust deployments
  • Radix UI - Headless UI components for endless customization
  • CVA - Create a consistent, reusable, and atomic design system
  • Renovate BOT - Auto-updating dependencies, so you can focus on coding
  • Patch-package - Fix external dependencies without losing your mind
  • Components coupling and cohesion graph - A tool for managing component relationships
  • Automated ChatGPT Code Reviews - Stay on the cutting edge with AI-powered code reviews!
  • Semantic Release - for automatic changelog
  • T3 Env - Manage your environment variables with ease

Table of Contents

🎯 Getting Started

To get started with this boilerplate, follow these steps:

  1. Fork & clone repository:
## Don't forget to ⭐ star and fork it first :)
git clone https://github.com/<your_username)/next-enterprise.git
  1. Install the dependencies:
yarn install --frozen-lockfile
  1. Run the development server:
yarn dev
  1. Open http://localhost:3000 with your browser to see the result.

  2. This project uses a git hook to enforce conventional commits. To install the git hook, run the following command in the root directory of the project:

brew install pre-commit
pre-commit install -t commit-msg

πŸš€ Deployment

Easily deploy your Next.js app with Vercel by clicking the button below:

Vercel

πŸ“ƒ Scripts Overview

The following scripts are available in the package.json:

  • dev: Starts the development server with colorized output
  • build: Builds the app for production
  • start: Starts the production server
  • lint: Lints the code using ESLint
  • lint:fix: Automatically fixes linting errors
  • prettier: Checks the code for proper formatting
  • prettier:fix: Automatically fixes formatting issues
  • analyze: Analyzes the bundle sizes for Client, Server and Edge environments
  • storybook: Starts the Storybook server
  • build-storybook: Builds the Storybook for deployment
  • test: Runs unit and integration tests
  • e2e:headless: Runs end-to-end tests in headless mode
  • e2e:ui: Runs end-to-end tests with UI
  • format: Formats the code with Prettier
  • postinstall: Applies patches to external dependencies
  • preinstall: Ensures the project is installed with Yarn
  • coupling-graph: Generates a coupling and cohesion graph for the components

πŸ”— Coupling Graph

The coupling-graph script is a useful tool that helps visualize the coupling and connections between your project's internal modules. It's built using the Madge library. To generate the graph, simply run the following command:

yarn coupling-graph

This will create a graph.svg file, which contains a graphical representation of the connections between your components. You can open the file with any SVG-compatible viewer.

graph

πŸ§ͺ Testing

This boilerplate comes with various testing setups to ensure your application's reliability and robustness.

Running Tests

  • Unit and integration tests: Run Jest tests using yarn test
  • End-to-end tests (headless mode): Run Playwright tests in headless mode with yarn e2e:headless
  • End-to-end tests (UI mode): Run Playwright tests with UI using yarn e2e:ui

image

Acceptance Tests

To write acceptance tests, we leverage Storybook's play function. This allows you to interact with your components and test various user flows within Storybook.

/*
 * See https://storybook.js.org/docs/react/writing-stories/play-function#working-with-the-canvas
 * to learn more about using the canvasElement to query the DOM
 */
export const FilledForm: Story = {
  play: async ({ canvasElement }) => {
    const canvas = within(canvasElement)

    const emailInput = canvas.getByLabelText("email", {
      selector: "input",
    })

    await userEvent.type(emailInput, "[email protected]", {
      delay: 100,
    })

    const passwordInput = canvas.getByLabelText("password", {
      selector: "input",
    })

    await userEvent.type(passwordInput, "ExamplePassword", {
      delay: 100,
    })
    // See https://storybook.js.org/docs/react/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
    const submitButton = canvas.getByRole("button")

    await userEvent.click(submitButton)
  },
}

Smoke Testing

In this boilerplate, we use Storybook's out-of-the-box support for smoke testing to verify that components render correctly without any errors. Just run yarn test-storybook to perform smoke testing. Remember to write stories in JSX or TSX format only. Smoke testing and a lot of other functionalities dont work well with MDX stories.

🎨 Styling and Design System

This boilerplate uses Tailwind CSS for styling and CVA for creating a powerful, easy-to-use design system. If you want to learn more about the setup, check out this fantastic video by Vercel:

Styling and Design System

CVA - A New Approach to Variants

While CSS-in-TS libraries such as Stitches and Vanilla Extract are great for building type-safe UI components, they might not be the perfect fit for everyone. You may prefer more control over your stylesheets, need to use a framework like Tailwind CSS, or simply enjoy writing your own CSS.

Creating variants using traditional CSS can be a tedious task, requiring you to manually match classes to props and add types. CVA is here to take that pain away, allowing you to focus on the enjoyable aspects of UI development. By providing an easy and type-safe way to create variants, CVA simplifies the process and helps you create powerful design systems without compromising on the flexibility and control of CSS.

πŸ’Ύ State Management

While this boilerplate doesn't include a specific state management library, we believe it's essential for you to choose the one that best suits your project's needs. Here are some libraries we recommend for state management:

Zustand

Zustand is a small, fast, and scalable state management library. It's designed to be simple and intuitive, making it a great choice for small to medium-sized projects. It's also optimized for bundle size, ensuring minimal impact on your app's performance.

Jotai

Jotai is an atom-based state management library for React that focuses on providing a minimal and straightforward API. Its atom-based approach allows you to manage your state in a granular way while still being highly optimized for bundle size.

Recoil

Recoil is a state management library developed by Facebook, specifically designed for React applications. By utilizing atoms and selectors, Recoil allows you to efficiently manage state and derived state. Its key benefit is the ability to update components only when the state they're subscribed to changes, reducing unnecessary re-renders and keeping your application fast and efficient. Recoil also offers great developer experience with built-in debugging tools.

Choose the library that best fits your requirements and project structure to ensure an efficient state management solution for your application.

πŸ€– ChatGPT Code Review

We've integrated the innovative ChatGPT Code Review for AI-powered, automated code reviews. This feature provides real-time feedback on your code, helping improve code quality and catch potential issues.

To use ChatGPT Code Review, add an OPENAI_API_KEY environment variable with an appropriate key from the OpenAI platform. For setup details, refer to the Using GitHub Actions section in the documentation.

image

πŸ’» Environment Variables handling

T3 Env is a library that provides environmental variables checking at build time, type validation and transforming. It ensures that your application is using the correct environment variables and their values are of the expected type. You’ll never again struggle with runtime errors caused by incorrect environment variable usage.

Config file is located at env.mjs. Simply set your client and server variables and import env from any file in your project.

export const env = createEnv({
  server: {
    // Server variables
    SECRET_KEY: z.string(),
  },
  client: {
    // Client variables
    API_URL: z.string().url(),
  },
  runtimeEnv: {
    // Assign runtime variables
    SECRET_KEY: process.env.SECRET_KEY,
    API_URL: process.env.NEXT_PUBLIC_API_URL,
  },
})

If the required environment variables are not set, you'll get an error message:

  ❌ Invalid environment variables: { SECRET_KEY: [ 'Required' ] }

🀝 Contribution

Contributions are always welcome! To contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch with a descriptive name.
  3. Make your changes, and commit them using the Conventional Commits format.
  4. Push your changes to the forked repository.
  5. Create a pull request, and we'll review your changes.

Support

If you're looking for help or simply want to share your thoughts about the project, we encourage you to join our Discord community. Here's the link: https://blazity.com/discord. It's a space where we exchange ideas and help one another. Everyone's input is appreciated, and we look forward to welcoming you.


Blazity Discord Banner

πŸ“œ License

This project is licensed under the MIT License. For more information, see the LICENSE file.

Contributors

Bart Stefanski
Bart Stefanski

πŸ’»
Jakub JabΕ‚oΕ„ski
Jakub JabΕ‚oΕ„ski

πŸš‡
Igor Klepacki
Igor Klepacki

πŸ“–
Add your contributions

next-enterprise's People

Contributors

allcontributors[bot] avatar bmstefanski avatar busybox11 avatar filmon-arefayne avatar hirenchauhan2 avatar jan-lewandoski-htd avatar jjablonski-it avatar neg4n avatar renovate[bot] avatar serekkiri avatar tophatcroat 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

next-enterprise's Issues

Tooltip/Radix-UI - Fetch Primitive error

I am trying to implement the ToolTip component that comes with Next-Enterprise. I added the explainer and the children - but when I to my browser it is having trouble pulling Primitive from /nextjs-enterprise-boilerplate/node_modules/@radix-ui/react-popper/dist/index.mjs (7)

import pkg from '@radix-ui/react-primitive';
const {Primitive: $kY93V$Primitive} = pkg;

SyntaxError: Named export 'Primitive' not found. The requested module '@radix-ui/react-primitive' is a CommonJS module, which may not support all module.exports as named exports.

Issue with icons on MacOS and iOS safari

Hi,
This project is awesome!
Good job guys.

I am facing issue with the icons. It happens only on safari (desktop + mobile)

It is fine on desktop chrome & firefox.

safari-desktop-icons

IMG_5249

Integration with user signals(Likes, upvotes,...) and feedback components

Hi, I created an react plugin to easily integrate Like buttons, Emoji reactions, "Is this page useful?" widgets with up/downvote or custom feedback forms to receive signals from users.

Are you open to integrate it in your template? I can create a PR to setup the integration. It will be just a few line of code. I will make the integration optional, meaning that if the setting_key is missing (the user doesn't want to use the plugin), nothing is affected and nothing will change.

In general, the plugin allows to receive any kind of feedback, but I think a Like button for blog posts and a Is this page useful? with up/downvotes for documentation pages will be useful. Nonetheless, it's very easy and customizable.

Let me know.
Thanks.

enforcing jira id in git-conventional-commits.yaml

Hi there, first of all this is an amazing repo. thanks a lot. Quick question: How can I enforce below in my commits:

issueRegexPattern: "[A-Z][A-Z0-9]+-[0-9]+"
issueUrl: https://WORKSPACE.atlassian.net/browse/%issue%

uncommenting them did not help...
Thank you,

Warnings about incorrect peer dependencies and unsupported typescript version, and lint warnings

In evaluating this project, I am met with a noisy output. Is this to be expected?

$ yarn install --frozen-lockfile
yarn install v1.22.19
$ npx only-allow yarn
Need to install the following packages:
[email protected]
Ok to proceed? (y) y
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
warning Pattern ["wrap-ansi@^7.0.0"] is trying to unpack in the same destination "/home/dean/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" as pattern ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"]. This could result in non-deterministic behavior, skipping.
[4/5] Linking dependencies...
warning "@vercel/otel > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.3.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/exporter-trace-otlp-grpc > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/exporter-trace-otlp-grpc > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.3.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/exporter-trace-otlp-grpc > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/exporter-trace-otlp-grpc > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/resources > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.3.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-node > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-node > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@vercel/otel > @opentelemetry/sdk-node > @opentelemetry/sdk-trace-node > @opentelemetry/[email protected]" has incorrect peer dependency "@opentelemetry/api@>=1.0.0 <1.5.0".
warning "@storybook/nextjs > [email protected]" has unmet peer dependency "webpack@^5.0.0".
warning "@storybook/nextjs > [email protected]" has unmet peer dependency "webpack@>=5".
warning "@storybook/nextjs > [email protected]" has unmet peer dependency "webpack@^5.0.0".
warning "@storybook/nextjs > [email protected]" has unmet peer dependency "webpack@^5.0.0".
warning "@storybook/nextjs > [email protected]" has unmet peer dependency "webpack@^5.0.0".
warning "eslint-config-react-app > [email protected]" has unmet peer dependency "@babel/plugin-syntax-flow@^7.14.5".
warning "eslint-config-react-app > [email protected]" has unmet peer dependency "@babel/plugin-transform-react-jsx@^7.14.9".
warning Workspaces can only be enabled in private projects.
warning Workspaces can only be enabled in private projects.
[5/5] Building fresh packages...
$ npx patch-package -y
patch-package 8.0.0
Applying patches...
No patch files found
Done in 108.20s.
$ yarn lint
yarn run v1.22.19
$ next lint
- warn You have enabled experimental feature (instrumentationHook) in next.config.mjs.
- warn Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.

=============

WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.

You may find that it works just fine, or you may not.

SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <5.2.0

YOUR TYPESCRIPT VERSION: 5.2.2

Please only submit bug reports when using the officially supported version.

=============

./pages/index.tsx
62:49  Warning: 'res' is defined but never used. Allowed unused args must match /^_/u.  @typescript-eslint/no-unused-vars

./components/Button/Button.tsx
5:16  Warning: Classname 'delay-50' is not a Tailwind CSS class!  tailwindcss/no-custom-classname
5:16  Warning: Classname 'min-w-20' is not a Tailwind CSS class!  tailwindcss/no-custom-classname
5:16  Warning: Classname 'min-h-10' is not a Tailwind CSS class!  tailwindcss/no-custom-classname
5:16  Warning: Classname 'min-w-32' is not a Tailwind CSS class!  tailwindcss/no-custom-classname
5:16  Warning: Classname 'min-h-12' is not a Tailwind CSS class!  tailwindcss/no-custom-classname

./components/Tooltip/Tooltip.tsx
6:24  Warning: Classname 'rounded-0.5md' is not a Tailwind CSS class!  tailwindcss/no-custom-classname
6:24  Warning: Classname 'font-open-sans' is not a Tailwind CSS class!  tailwindcss/no-custom-classname
6:24  Warning: Classname 'text-2xs' is not a Tailwind CSS class!  tailwindcss/no-custom-classname

info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
Done in 4.93s.

npm ERR! maxAge must be a number

I get this error A LOT when trying to install packages.. I don't know if it's related to my own device or this repo; normally I use npm.. But I wanted to try something new and this package seems full of security and good coding standards, the better for me to learn..

examples:

yarn add notistack
yarn add v1.22.19
$ npx only-allow yarn
npm ERR! maxAge must be a number
yarn add react-toastify
yarn add v1.22.19
$ npx only-allow yarn
npm ERR! maxAge must be a number
yarn add firebase 
yarn add v1.22.19
$ npx only-allow yarn
npm ERR! maxAge must be a number
yarn add @react-native-firebase/app   
yarn add v1.22.19
$ npx only-allow yarn
npm ERR! maxAge must be a number

and more..

I did notice; that removing "preinstall": "npx only-allow yarn", from the package.json will enable the installation via yarn; but it did give errors on those specific packages, when I went onto deploying it to Azure (even though it worked on localhost).

When deploying via Github Actions to Azure, it'll give the following error..

Failed to compile.

./pages/_app.tsx:4:32
Type error: Cannot find module 'react-toastify' or its corresponding type declarations.

  2 | import { AppProps } from "next/app"
  3 | import NavBar from "components/Navbar/Navbar"
> 4 | import { ToastContainer } from "react-toastify"
    |                                ^
  5 | 
  6 | function MyApp({ Component, pageProps }: AppProps) {
  7 |   return (
error Command failed with exit code 1.

What can I do to resolve these errors?

App Dir & Tailwind SoC questions

Great project! A lot of work went into this.

  • Why not use the new app directory?
  • Why not use a tailwind ui library like Chakra? The problem with base tailwind is the tsx can be too crowded with tailwind classes.

Suggestion: add `eslint-plugin-tailwindcss`

Hi everyone! Thanks for this amazing template πŸ”₯

I would like to suggest adding the eslint-plugin-tailwindcss.

The prettier-plugin-tailwindcss does a great job sorting the classes. However, it does not warn you whenever you use a class that does not exist.

Adding the eslint plugin could save developers some time whenever they make a typo in the classname.

What do you guys think? If you agree this could be helpful, I'm more than happy to submit a pull request.

Suggestion: App router Version

Nice Project here.

It would be awesome if you have a version with the new App router and Server Side Components since it's more stable now.

Thank you.

Atolog

Blazity/next-enterprise

Switch not available in theme components dist

I installed the switch component as a single component and updated content in tailwind config, but neither the glob or single pattern worked:

'./node_modules/@nextui-org/theme/dist/components/(button|switch).js'
'./node_modules/@nextui-org/theme/dist/components/switch.js'

I checked the /theme/dist/components/ dir and couldn't find the switch component in there.

Also tried:

'./node_modules/@nextui-org/switch/dist/index.js',
'./node_modules/@nextui-org/switch/dist/switch.js',

but that didn't work either.

Dependency Dashboard

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

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/check.yml
.github/workflows/cr.yml
.github/workflows/nextjs_bundle_analysis.yml
.github/workflows/playwright.yml
npm
package.json

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

Suggestion: Monorepo

First of all, great job!

Would be amazing to have this as a boilerplate (or an equivalent) adapted to a monorepo.

Tailwind configuration, absolute paths… there are a lot of things that require hours of configuration. Mixing the good picks of this boilerplate with a monorepo structure.

Coupling Graph doesn't work as expected

I was trying to create the graph.svg with the dependencies, but the command returns an error. Is it just me or does that implementation requires something more or its broken?

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.