diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b512c09d..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index f464b212..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "root": true, // Make sure eslint picks up the config at the root of the directory - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 2020, // Use the latest ecmascript standard - "sourceType": "module", // Allows using import/export statements - "ecmaFeatures": { - "jsx": true // Enable JSX since we're using React - } - }, - "settings": { - "react": { - "version": "detect" // Automatically detect the react version - } - }, - "env": { - "browser": true, // Enables browser globals like window and document - "amd": true, // Enables require() and define() as global variables as per the amd spec. - "node": true, // Enables Node.js global variables and Node.js scoping. - "es6": true // Enables ES6 globals like Promise - }, - "extends": [ - "plugin:@typescript-eslint/recommended", - "next/core-web-vitals", - "plugin:prettier/recommended" // Make this the last element so prettier config overrides other formatting rules - ], - "rules": { - "prettier/prettier": ["error", {}, { "usePrettierrc": true }], // Use our .prettierrc file as source - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-var-requires": "off" - } -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 0ee8388c..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: 2 -updates: - # Enable version updates for npm - - package-ecosystem: "npm" - # Look for `package.json` and `lock` files in the `root` directory - directory: "/" - # Check the npm registry for updates every day (weekdays) - schedule: - interval: "weekly" diff --git a/.github/main.yml b/.github/main.yml new file mode 100644 index 00000000..466a4415 --- /dev/null +++ b/.github/main.yml @@ -0,0 +1,59 @@ +name: CI +on: + pull_request: + push: + branches: [main] +jobs: + lint: + name: ESLint + runs-on: ubuntu-latest + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Install pnpm + uses: pnpm/action-setup@v2.2.2 + with: + version: 7 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 16 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Lint + run: pnpm lint + + typecheck: + name: TypeScript + runs-on: ubuntu-latest + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Install pnpm + uses: pnpm/action-setup@v2.2.2 + with: + version: 7 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 16 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Type check + run: pnpm typecheck diff --git a/.gitignore b/.gitignore index a6f44688..0f8ca814 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,20 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build +node_modules # misc .DS_Store -*.pem # debug npm-debug.log* yarn-debug.log* yarn-error.log* +.pnpm-debug.log* # local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# vercel -.vercel +.env +.env*.local -public/sitemap.xml +# Turborepo +.turbo diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index 31354ec1..00000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 36af2198..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npx lint-staged diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index b512c09d..00000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/apps/collective/.eslintrc.js b/apps/collective/.eslintrc.js new file mode 100644 index 00000000..03ee7431 --- /dev/null +++ b/apps/collective/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['custom'], +}; diff --git a/apps/collective/.gitignore b/apps/collective/.gitignore new file mode 100644 index 00000000..c87c9b39 --- /dev/null +++ b/apps/collective/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/apps/collective/README.md b/apps/collective/README.md new file mode 100644 index 00000000..c87e0421 --- /dev/null +++ b/apps/collective/README.md @@ -0,0 +1,34 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/apps/collective/components/Favicons.tsx b/apps/collective/components/Favicons.tsx new file mode 100644 index 00000000..776f321b --- /dev/null +++ b/apps/collective/components/Favicons.tsx @@ -0,0 +1,13 @@ +import Head from 'next/head'; + +export const Favicons = () => { + return ( + + + + + + + + ); +}; diff --git a/apps/collective/components/Footer.tsx b/apps/collective/components/Footer.tsx new file mode 100644 index 00000000..6937c326 --- /dev/null +++ b/apps/collective/components/Footer.tsx @@ -0,0 +1,3 @@ +export const Footer = () => { + return ; +}; diff --git a/apps/collective/components/Layout.tsx b/apps/collective/components/Layout.tsx new file mode 100644 index 00000000..eb57c3e0 --- /dev/null +++ b/apps/collective/components/Layout.tsx @@ -0,0 +1,44 @@ +import { ReactNode } from 'react'; +import { Favicons } from './Favicons'; +import { Footer } from './Footer'; +import { Navigation } from './Navigation'; +import { SEO } from './SEO'; + +const defaultTitle = 'Life Centered Design Collective'; + +interface Props { + children: ReactNode; + title?: string; + description?: string; + slug?: string; + previewImage?: string; +} + +export const Layout = ({ + children, + title, + description, + slug, + previewImage, +}: Props) => { + const pageTitle = !title ? defaultTitle : `${title} | ${defaultTitle}`; + const pageDescription = description + ? description + : 'Life Centered Design Collective'; + slug = slug ? `/${slug}` : ''; + const pagePreviewImage = previewImage ? previewImage : 'og-image.png'; + return ( + <> + + + +
{children}
+