From 4838df315931bb883f704ec3e1abe2685f296cdf Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Sat, 22 Apr 2023 19:52:26 +0800 Subject: 😀 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/content/features.ts | 161 ++++++++++++++++++++++++++++++++++++++++ docs/content/legacy-features.ts | 91 +++++++++++++++++++++++ docs/content/team.ts | 80 ++++++++++++++++++++ 3 files changed, 332 insertions(+) create mode 100644 docs/content/features.ts create mode 100644 docs/content/legacy-features.ts create mode 100644 docs/content/team.ts (limited to 'docs/content') 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[0]["src"]; + +export type Feature = { + name: string; + description: string; + iconDark: NextImageSrc; + iconLight: NextImageSrc; + page: "all" | "home" | "docs"; +}; + +export type Features = Array; + +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; + +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 = { + 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; -- cgit v1.2.3-70-g09d2