Meet drouk.as, the world's most overengineered personal site.
drouk.as is a monorepo backed by Turborepo and pnpm.
This repository includes the following apps and packages:
App/Package | Contents |
---|---|
site |
A Next.js 14 app powering the main drouk.as site. |
workshop |
A Storybook 7 deployment running on Vite 5 for component development. |
ui |
A React component library consumed by all applications in the apps directory. |
eslint-config-custom |
eslint configurations (includes eslint-config-next and eslint-config-prettier ). |
tsconfig |
tsconfig.json s used throughout the monorepo. |
Each package is pure TypeScript, and (where applicable) uses SWC for super fast compilation and bundling.
Really living in the future, here.
This repository contains the following utilities:
- TypeScript for static type checking.
- ESLint for code linting.
- Prettier for code formatting.
To install all project dependencies, run the following command:
pnpm install
To add dependencies to a package, run one of the following commands:
# Saves to dependencies
pnpm add <package>
# Saves the next-tagged version to dependencies
pnpm add <package>@next
# Saves the specified version to dependencies
pnpm add <package>@1.0.0
# Saves to devDependencies
pnpm add -D <package>
# Saves to optionalDependencies
pnpm add -O <package>
Prefer specific (1.7.3
) instead of approximate or compatible ( ~1.7.0
or ^1.7.0
) versioning, and use Renovate to keep dependencies up-to-date.
To develop all apps and packages, run the following command:
pnpm run dev
Alternatively, cd
into individual packages and run this command for each package you want to run.
To build all apps and packages, run the following command:
pnpm run build
This repository uses Turborepo's Remote Caching to share cache artifacts across machines, enabling shared build caches locally and in CI/CD pipelines.
Remote Caching requires a Vercel account. Once created, authenticate the Turborepo CLI with your Vercel account:
pnpm dlx turbo login
Next, link the repository to the Remote Cache by running the following command from the project root:
pnpm dlx turbo link