Portfolio was bootstrapped with Next.js. Please, read the docs to get up to speed with how pages, routing, server-side functions and more works.
yarn dev
or npm run dev
- starts the development environment with auto reloading and all that good stuff.
Open http://localhost:3000 to view it in the browser.
Besides the development script, there are many more scripts set up:
build
- Creates buildexport
- Creates exportdeploy
- Creates build and exportgenerate
- Starts interactive CLI tool to generate a component or utility with everything that is neededstorybook
- Starts the development environment for storybookstorybook:build
- Builds the storybook for production to be hosted by youtest
- Runs the Jest and Enzyme test suitetest:watch
- Runs the Jest and Enzyme test suite in watch modetest:coverage
- Runs the Jest and Enzyme test suite and shows test coverageeslint
- Runs ESLint for all TypeScript filesstylelint
- Runs Stylelint for all SCSS files
Portfolio uses Next.js to
- provide SSR and SSG React.js. Pages are automatically optimised to deliver the best experience.
- handle routing
- generate builds
- and more
Portfolio used TypeScript for static checking and documentation. You can view the Typescript config in ./tsconfig.json.
Portfolio uses Jest and Enzyme as the testing suite. All tests can be found in the component and utilities folders with .test.
postfix. As you may notice, we don't import Jest and Enzyme in the test files. Some things are setup in config/tests
. Next to that, mock content and components can be found in config/tests/mocks
.
Portfolio uses Storybook for showcasing components. Storybook has its own webpack configuration. You can find this configuration in .storybook/webpack.config.js
together with all other Storybook specific items.
Portfolio uses Husky to automatically run ESLint, Stylelint, LintStaged and the test suite for every commit. This is done by using the precommit
script found in package.json
. Never run --no-verify
as you don't want to ignore these settings. If you have an issue with the config, please update the config file of that linter accordingly.
Portfolio uses Netlify (
Portfolio uses Netlify CMS. All content is stored as MarkDown in content/
and directly loaded throughout the application. You can alter the content here and make a new deploy to have it relfect on the live site. The data structure configuration can be found in ./public/admin/config.yml. The GUI can be accessed at /admin/index.html
on both the local and live version. Netlify Identity Service is used to authenticate.