aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/docs/content
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content')
-rw-r--r--docs/content/features.ts161
-rw-r--r--docs/content/legacy-features.ts91
-rw-r--r--docs/content/team.ts80
3 files changed, 332 insertions, 0 deletions
diff --git a/docs/content/features.ts b/docs/content/features.ts
new file mode 100644
index 0000000..119fb5b
--- /dev/null
+++ b/docs/content/features.ts
@@ -0,0 +1,161 @@
+import type Image from "next/image";
+import EcosystemIconDark from "../public/images/docs/shared/feature-icons/ecosystem-dark.svg";
+import EcosystemIconLight from "../public/images/docs/shared/feature-icons/ecosystem-light.svg";
+import LightningIconDark from "../public/images/docs/shared/feature-icons/lightning-dark.svg";
+import LightningIconLight from "../public/images/docs/shared/feature-icons/lightning-light.svg";
+import BarsIconDark from "../public/images/docs/shared/feature-icons/bars-dark.svg";
+import BarsIconLight from "../public/images/docs/shared/feature-icons/bars-light.svg";
+import MultiEnvTargetsIconDark from "../public/images/docs/shared/feature-icons/multi-env-targets-dark.svg";
+import MultiEnvTargetsIconLight from "../public/images/docs/shared/feature-icons/multi-env-targets-light.svg";
+import NextJSIconDark from "../public/images/docs/shared/feature-icons/nextjs-dark.svg";
+import NextJSIconLight from "../public/images/docs/shared/feature-icons/nextjs-light.svg";
+import ServerComponentsIconDark from "../public/images/docs/shared/feature-icons/server-components-dark.svg";
+import ServerComponentsIconLight from "../public/images/docs/shared/feature-icons/server-components-light.svg";
+import FingerprintIconDark from "../public/images/docs/shared/feature-icons/fingerprint-dark.svg";
+import FingerprintIconLight from "../public/images/docs/shared/feature-icons/fingerprint-light.svg";
+import CloudIconDark from "../public/images/docs/shared/feature-icons/cloud-dark.svg";
+import CloudIconLight from "../public/images/docs/shared/feature-icons/cloud-light.svg";
+import CpuIconDark from "../public/images/docs/shared/feature-icons/cpu-dark.svg";
+import CpuIconLight from "../public/images/docs/shared/feature-icons/cpu-light.svg";
+import PieconDark from "../public/images/docs/shared/feature-icons/piecon-dark.svg";
+import PieconLight from "../public/images/docs/shared/feature-icons/piecon-light.svg";
+import RefreshIconDark from "../public/images/docs/shared/feature-icons/refresh-dark.svg";
+import RefreshIconLight from "../public/images/docs/shared/feature-icons/refresh-light.svg";
+import ArrowsExpandIconDark from "../public/images/docs/shared/feature-icons/arrows-expand-dark.svg";
+import ArrowsExpandIconLight from "../public/images/docs/shared/feature-icons/arrows-expand-light.svg";
+import BeakerIconDark from "../public/images/docs/shared/feature-icons/beaker-dark.svg";
+import BeakerIconLight from "../public/images/docs/shared/feature-icons/beaker-light.svg";
+
+type NextImageSrc = Parameters<typeof Image>[0]["src"];
+
+export type Feature = {
+ name: string;
+ description: string;
+ iconDark: NextImageSrc;
+ iconLight: NextImageSrc;
+ page: "all" | "home" | "docs";
+};
+
+export type Features = Array<Feature>;
+
+const REPO_FEATURES: Features = [
+ {
+ name: "Incremental builds",
+ description: `Building once is painful enough, Turborepo will remember what you've built and skip the stuff that's already been computed.`,
+ iconDark: RefreshIconDark,
+ iconLight: RefreshIconLight,
+ page: "all",
+ },
+ {
+ name: "Content-aware hashing",
+ description: `Turborepo looks at the contents of your files, not timestamps to figure out what needs to be built.`,
+ iconDark: FingerprintIconDark,
+ iconLight: FingerprintIconLight,
+ page: "home",
+ },
+ {
+ name: "Parallel execution",
+ description: `Execute builds using every core at maximum parallelism without wasting idle CPUs.`,
+ iconDark: LightningIconDark,
+ iconLight: LightningIconLight,
+ page: "all",
+ },
+ {
+ name: "Remote Caching",
+ description: `Share a remote build cache with your teammates and CI/CD for even faster builds.`,
+ iconDark: CloudIconDark,
+ iconLight: CloudIconLight,
+ page: "all",
+ },
+ {
+ name: "Zero runtime overhead",
+ description: `Turborepo won’t interfere with your runtime code or touch your sourcemaps. `,
+ iconDark: CpuIconDark,
+ iconLight: CpuIconLight,
+ page: "all",
+ },
+ {
+ name: "Pruned subsets",
+ description: `Speed up PaaS deploys by generating a subset of your monorepo with only what's needed to build a specific target.`,
+ iconDark: PieconDark,
+ iconLight: PieconLight,
+ page: "all",
+ },
+ {
+ name: "Task pipelines",
+ description: `Define the relationships between your tasks and then let Turborepo optimize what to build and when.`,
+ iconDark: ArrowsExpandIconDark,
+ iconLight: ArrowsExpandIconLight,
+ page: "all",
+ },
+ {
+ name: "Meets you where you’re at",
+ description: `Using Lerna? Keep your package publishing workflow and use Turborepo to turbocharge task running.`,
+ iconDark: BeakerIconDark,
+ iconLight: BeakerIconLight,
+ page: "home",
+ },
+ {
+ name: `Profile in your browser`,
+ description: `Generate build profiles and import them in Chrome or Edge to understand which tasks are taking the longest.`,
+ iconDark: BarsIconDark,
+ iconLight: BarsIconLight,
+ page: "home",
+ },
+];
+
+const PACK_FEATURES: Features = [
+ {
+ name: "Incremental by design",
+ description: `Building once is enough work—once Turbopack performs a task, it never does it again. `,
+ iconDark: BarsIconDark,
+ iconLight: BarsIconLight,
+ page: "all",
+ },
+ {
+ name: "Ecosystem-friendly",
+ description: `Get out-of-the-box support for TypeScript, JSX, CSS, CSS Modules, WebAssembly, and more.`,
+ iconDark: EcosystemIconDark,
+ iconLight: EcosystemIconLight,
+ page: "home",
+ },
+ {
+ name: "Lightning fast HMR",
+ description: `Hot Module Replacement (HMR) stays fast regardless of the size of your app.`,
+ iconDark: LightningIconDark,
+ iconLight: LightningIconLight,
+ page: "all",
+ },
+ {
+ name: "React Server Components",
+ description: `Get native support for React Server Components when using Turbopack. `,
+ iconDark: ServerComponentsIconDark,
+ iconLight: ServerComponentsIconLight,
+ page: "all",
+ },
+ {
+ name: "Simultaneous Multiple Env Targets",
+ description: `Build and optimize for multiple environments together (Browser, Server, Edge, SSR, React Server Components).`,
+ iconDark: MultiEnvTargetsIconDark,
+ iconLight: MultiEnvTargetsIconLight,
+ page: "all",
+ },
+ {
+ name: "Next.js support",
+ description: `Turbopack will also power Next.js production builds, both locally and in the cloud.`,
+ iconDark: NextJSIconDark,
+ iconLight: NextJSIconLight,
+ page: "all",
+ },
+];
+export const REPO_DOCS_FEATURES = REPO_FEATURES.filter(
+ (f) => f.page === "docs" || f.page === "all"
+);
+
+export const REPO_HOME_FEATURES = REPO_FEATURES.filter(
+ (f) => f.page === "home" || f.page === "all"
+);
+
+export const PACK_HOME_FEATURES = PACK_FEATURES.filter(
+ (f) => f.page === "home" || f.page === "all"
+);
diff --git a/docs/content/legacy-features.ts b/docs/content/legacy-features.ts
new file mode 100644
index 0000000..8a25d88
--- /dev/null
+++ b/docs/content/legacy-features.ts
@@ -0,0 +1,91 @@
+// Remove when docs is refactored to use the new icons (see ./features.ts)
+
+import React from "react";
+import {
+ ArrowsExpandIcon,
+ BeakerIcon,
+ ChartBarIcon,
+ ChartPieIcon,
+ ChipIcon,
+ CloudUploadIcon,
+ FingerPrintIcon,
+ LightningBoltIcon,
+ RefreshIcon,
+} from "@heroicons/react/outline";
+import { IconType } from "../components/Icons";
+
+export type Feature = {
+ name: string;
+ description: React.ReactNode;
+ Icon: IconType;
+ page: "all" | "home" | "docs";
+};
+
+export type Features = Array<Feature>;
+
+const LEGACY_REPO_FEATURES: Features = [
+ {
+ name: "Incremental builds",
+ description: `Building once is painful enough, Turborepo will remember what you've built and skip the stuff that's already been computed.`,
+ Icon: RefreshIcon,
+ page: "all",
+ },
+ {
+ name: "Content-aware hashing",
+ description: `Turborepo looks at the contents of your files, not timestamps to figure out what needs to be built.`,
+ Icon: FingerPrintIcon,
+ page: "home",
+ },
+ {
+ name: "Parallel execution",
+ description: `Execute builds using every core at maximum parallelism without wasting idle CPUs.`,
+ Icon: LightningBoltIcon,
+ page: "all",
+ },
+ {
+ name: "Remote Caching",
+ description: `Share a remote build cache with your teammates and CI/CD for even faster builds.`,
+ Icon: CloudUploadIcon,
+ page: "all",
+ },
+ {
+ name: "Zero runtime overhead",
+ description: `Turborepo won’t interfere with your runtime code or touch your sourcemaps. `,
+ Icon: ChipIcon,
+ page: "all",
+ },
+ {
+ name: "Pruned subsets",
+ description: `Speed up PaaS deploys by generating a subset of your monorepo with only what's needed to build a specific target.`,
+ Icon: ChartPieIcon,
+ page: "all",
+ },
+ {
+ name: "Task pipelines",
+ description: `Define the relationships between your tasks and then let Turborepo optimize what to build and when.`,
+ Icon: ArrowsExpandIcon,
+ page: "all",
+ },
+ {
+ name: "Meets you where you’re at",
+ description: `Using Lerna? Keep your package publishing workflow and use Turborepo to turbocharge task running.`,
+ Icon: BeakerIcon,
+ page: "home",
+ },
+ {
+ name: `Profile in your browser`,
+ description: `Generate build profiles and import them in Chrome or Edge to understand which tasks are taking the longest.`,
+ Icon: ChartBarIcon,
+ page: "home",
+ },
+];
+
+export const LEGACY_REPO_DOCS_FEATURES = LEGACY_REPO_FEATURES.filter(
+ (f) => f.page === "docs" || f.page === "all"
+);
+
+export const LEGACY_REPO_HOME_FEATURES = LEGACY_REPO_FEATURES.filter(
+ (f) => f.page === "home" || f.page === "all"
+);
+
+export default LEGACY_REPO_FEATURES;
diff --git a/docs/content/team.ts b/docs/content/team.ts
new file mode 100644
index 0000000..0130589
--- /dev/null
+++ b/docs/content/team.ts
@@ -0,0 +1,80 @@
+const TURBO_TEAM: Record<string, AuthorDetails> = {
+ jaredpalmer: {
+ name: "Jared Palmer",
+ twitterUsername: "jaredpalmer",
+ picture: "/images/people/jaredpalmer.jpeg",
+ },
+ gaspargarcia: {
+ name: "Gaspar Garcia",
+ twitterUsername: "gaspargarcia_",
+ picture: "/images/people/gaspargarcia.jpeg",
+ },
+ becca__z: {
+ name: "Becca Z.",
+ twitterUsername: "becca__z",
+ picture: "/images/people/becca__z.jpeg",
+ },
+ gregsoltis: {
+ name: "Greg Soltis",
+ twitterUsername: "gsoltis",
+ picture: "/images/people/gregsoltis.jpeg",
+ },
+ nathanhammond: {
+ name: "Nathan Hammond",
+ twitterUsername: "nathanhammond",
+ picture: "/images/people/nathanhammond.png",
+ },
+ tomknickman: {
+ name: "Tom Knickman",
+ twitterUsername: "tknickman",
+ picture: "/images/people/tomknickman.jpeg",
+ },
+ mehulkar: {
+ name: "Mehul Kar",
+ twitterUsername: "mehulkar",
+ picture: "/images/people/mehulkar.jpeg",
+ },
+ mattpocock: {
+ name: "Matt Pocock",
+ twitterUsername: "mattpocockuk",
+ picture: "/images/people/mattpocock.jpeg",
+ },
+ tobiaskoppers: {
+ name: "Tobias Koppers",
+ twitterUsername: "wSokra",
+ picture: "/images/people/tobiaskoppers-avatar.jpg",
+ },
+ alexkirsz: {
+ name: "Alex Kirszenberg",
+ twitterUsername: "alexkirsz",
+ picture: "/images/people/alexkirsz.jpg",
+ },
+ anthonyshew: {
+ name: "Anthony Schew",
+ twitterUsername: "anthonysheww",
+ picture: "/images/people/anthonyshew.png",
+ },
+ nicholasyang: {
+ name: "Nicholas Yang",
+ twitterUsername: "nicholaslyang",
+ picture: "/images/people/nicholasyang.png",
+ },
+ chrisolszewski: {
+ name: "Chris Olszewski",
+ picture: "/images/people/chrisolszewski.jpg",
+ },
+ alexanderlyon: {
+ name: "Alexander Lyon",
+ twitterUsername: "_arlyon",
+ picture: "/images/people/alexanderlyon.jpg",
+ },
+};
+
+export type Author = keyof typeof TURBO_TEAM;
+export type AuthorDetails = {
+ name: string;
+ twitterUsername?: string;
+ picture: string;
+};
+
+export default TURBO_TEAM;