# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage
cypress.env.json

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem
	
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local

# vercel
.vercel

# ide & workspace files
/.nova
*.sublime*
