/portfolio-website

v2 of my Portfolio website.

Primary LanguageTypeScript

Leibowitz.me Portfolio Website v2

Introduction

This is the v2 version of my personal & portfolio website. My original website hasn't been updated since 2014 and still uses jQuery. This new version uses the latest & greatest tech stack: TurboRepo, pnpm, Strapi Headless CMS, Next.js, TailwindCSS, Axios, and more.

Turborepo

This is a monorepo using Turborepo. There are some additional considerations to keep in mind when working in a Turborepo repository.

What's inside?

This turborepo uses pnpm as a package manager. It includes the following packages/apps:

Apps and Packages

  • docs: a Next.js app
  • web: another Next.js app
  • cms: A Strapi Headless CMS Api app
  • ui: a stub React component library shared by both web and docs applications
  • eslint-config-custom: eslint configurations (includes eslint-config-next and eslint-config-prettier)
  • tsconfig: tsconfig.jsons used throughout the monorepo

Each package/app is 100% TypeScript.

Utilities

This turborepo has some additional tools already setup for you:

Build

To build all apps and packages, run the following command:

cd leibowitz.me
pnpm run build

Develop

To develop all apps and packages, run the following command:

cd leibowitz.me
pnpm run dev

Remote Caching

Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.

By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:

cd my-turborepo
pnpm dlx turbo login

This will authenticate the Turborepo CLI with your Vercel account.

Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your turborepo:

pnpm dlx turbo link

Useful Links

Learn more about the power of Turborepo: