From 4372da093ca3338ab0d9be45db31963a44abc439 Mon Sep 17 00:00:00 2001 From: Amine Ilidrissi <38422328+aminevg@users.noreply.github.com> Date: Wed, 25 Mar 2026 09:16:32 +0900 Subject: [PATCH 1/7] chore(docs): move docs app into packages workspace --- README.md | 23 +- biome.json | 11 + package.json | 2 +- packages/docs/LICENSE | 21 + packages/docs/README.md | 41 + packages/docs/astro.config.mjs | 61 + packages/docs/package.json | 30 + packages/docs/prettier.config.js | 17 + packages/docs/public/favicon-96x96.png | Bin 0 -> 5047 bytes packages/docs/public/favicon.svg | 26 + packages/docs/src/assets/mighty.svg | 26 + .../src/components/PackageManagerTabs.astro | 15 + .../docs/src/components/starlight/Hero.astro | 143 ++ .../src/components/starlight/SiteTitle.astro | 93 + packages/docs/src/content.config.ts | 7 + .../docs/guides/backend-adapters/hono.mdx | 235 ++ .../docs/guides/backend-adapters/laravel.mdx | 372 ++++ .../backend-adapters/what-is-an-adapter.mdx | 28 + .../write-your-own-adapter.mdx | 175 ++ .../core-concepts/development-server.mdx | 39 + .../core-concepts/production-server.mdx | 32 + .../docs/guides/hello-world/comparisons.mdx | 147 ++ .../docs/guides/hello-world/installation.mdx | 67 + .../docs/guides/hello-world/introduction.mdx | 36 + .../docs/src/content/docs/guides/roadmap.mdx | 113 + packages/docs/src/content/docs/index.mdx | 15 + packages/docs/src/styles/custom.css | 28 + packages/docs/tsconfig.json | 12 + pnpm-lock.yaml | 1964 ++++++++++++++++- 29 files changed, 3737 insertions(+), 42 deletions(-) create mode 100644 packages/docs/LICENSE create mode 100644 packages/docs/README.md create mode 100644 packages/docs/astro.config.mjs create mode 100644 packages/docs/package.json create mode 100644 packages/docs/prettier.config.js create mode 100644 packages/docs/public/favicon-96x96.png create mode 100644 packages/docs/public/favicon.svg create mode 100644 packages/docs/src/assets/mighty.svg create mode 100644 packages/docs/src/components/PackageManagerTabs.astro create mode 100644 packages/docs/src/components/starlight/Hero.astro create mode 100644 packages/docs/src/components/starlight/SiteTitle.astro create mode 100644 packages/docs/src/content.config.ts create mode 100644 packages/docs/src/content/docs/guides/backend-adapters/hono.mdx create mode 100644 packages/docs/src/content/docs/guides/backend-adapters/laravel.mdx create mode 100644 packages/docs/src/content/docs/guides/backend-adapters/what-is-an-adapter.mdx create mode 100644 packages/docs/src/content/docs/guides/backend-adapters/write-your-own-adapter.mdx create mode 100644 packages/docs/src/content/docs/guides/core-concepts/development-server.mdx create mode 100644 packages/docs/src/content/docs/guides/core-concepts/production-server.mdx create mode 100644 packages/docs/src/content/docs/guides/hello-world/comparisons.mdx create mode 100644 packages/docs/src/content/docs/guides/hello-world/installation.mdx create mode 100644 packages/docs/src/content/docs/guides/hello-world/introduction.mdx create mode 100644 packages/docs/src/content/docs/guides/roadmap.mdx create mode 100644 packages/docs/src/content/docs/index.mdx create mode 100644 packages/docs/src/styles/custom.css create mode 100644 packages/docs/tsconfig.json diff --git a/README.md b/README.md index 02618b2..6771076 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,26 @@ -# core +# Mighty -To install dependencies: +Monorepo for Mighty packages and docs. + +## Install ```bash -bun install +pnpm install ``` -To run: +## Workspace checks ```bash -bun run index.ts +pnpm build +pnpm run typecheck +pnpm run ci:biome +pnpm test ``` -This project was created using `bun init` in bun v1.2.12. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. +## Docs + +The docs site lives in [`packages/docs/`](./packages/docs). + +```bash +pnpm --dir packages/docs dev +``` diff --git a/biome.json b/biome.json index 770e3da..7a2c7cc 100644 --- a/biome.json +++ b/biome.json @@ -47,6 +47,17 @@ } } } + }, + { + "includes": ["packages/docs/src/styles/custom.css"], + "linter": { + "rules": { + "correctness": { + "noUnknownProperty": "off", + "noUnknownTypeSelector": "off" + } + } + } } ] } diff --git a/package.json b/package.json index 795f608..f9501f6 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ }, "scripts": { "ci:biome": "biome ci", - "build": "tsdown", + "build": "tsdown && pnpm --filter @gomighty/docs run build", "typecheck": "pnpm -r run typecheck", "test": "vitest run" } diff --git a/packages/docs/LICENSE b/packages/docs/LICENSE new file mode 100644 index 0000000..82c533c --- /dev/null +++ b/packages/docs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Amine Ilidrissi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/docs/README.md b/packages/docs/README.md new file mode 100644 index 0000000..fb372ba --- /dev/null +++ b/packages/docs/README.md @@ -0,0 +1,41 @@ +# Mighty Docs + +This directory contains the Mighty documentation site migrated from `gomighty/docs` into the `gomighty/mighty` monorepo. + +## Package manager + +This project now uses **pnpm** (not Bun). + +## Run locally + +From the repository root: + +```bash +pnpm install +pnpm --dir packages/docs dev +``` + +## Build and preview + +```bash +pnpm --dir packages/docs build +pnpm --dir packages/docs preview +``` + +## Update Vercel project settings via Vercel CLI + +Use the Vercel CLI to re-link this docs project and sync/update configuration: + +```bash +pnpm dlx vercel@latest login +pnpm dlx vercel@latest link --cwd packages/docs +pnpm dlx vercel@latest pull --yes --environment=production --cwd packages/docs +``` + +To deploy from the CLI: + +```bash +pnpm dlx vercel@latest deploy --prod --cwd packages/docs +``` + +If your existing Vercel project still points to the old `gomighty/docs` repo, run `vercel link` again and select the `gomighty/mighty` repository plus the `packages/docs` root directory when prompted. diff --git a/packages/docs/astro.config.mjs b/packages/docs/astro.config.mjs new file mode 100644 index 0000000..aedd866 --- /dev/null +++ b/packages/docs/astro.config.mjs @@ -0,0 +1,61 @@ +// @ts-check + +import starlight from "@astrojs/starlight"; +import { defineConfig } from "astro/config"; +import starlightLinksValidator from "starlight-links-validator"; + +// https://astro.build/config +export default defineConfig({ + experimental: { + clientPrerender: true, + }, + integrations: [ + starlight({ + title: "Mighty", + plugins: [starlightLinksValidator()], + logo: { + src: "@/assets/mighty.svg", + }, + components: { + SiteTitle: "@/components/starlight/SiteTitle.astro", + Hero: "@/components/starlight/Hero.astro", + }, + customCss: ["./src/styles/custom.css"], + social: [ + { + icon: "github", + label: "GitHub", + href: "https://github.com/gomighty/mighty", + }, + ], + head: [ + { + tag: "link", + attrs: { + rel: "icon", + type: "image/png", + href: "/favicon-96x96.png", + sizes: "96x96", + }, + }, + ], + sidebar: [ + { + label: "Hello, World!", + autogenerate: { directory: "guides/hello-world" }, + }, + { + label: "Core Concepts", + autogenerate: { directory: "guides/core-concepts" }, + }, + { + label: "Backend Adapters", + autogenerate: { directory: "guides/backend-adapters" }, + }, + { + slug: "guides/roadmap", + }, + ], + }), + ], +}); diff --git a/packages/docs/package.json b/packages/docs/package.json new file mode 100644 index 0000000..0fc4fdf --- /dev/null +++ b/packages/docs/package.json @@ -0,0 +1,30 @@ +{ + "name": "@gomighty/docs", + "private": true, + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro", + "typecheck": "astro check" + }, + "engines": { + "node": "22.x" + }, + "dependencies": { + "@astrojs/starlight": "^0.38.2", + "astro": "catalog:", + "motion": "^12.23.12", + "sharp": "^0.34.2", + "starlight-links-validator": "^0.20.1" + }, + "devDependencies": { + "prettier": "3.6.2", + "prettier-plugin-astro": "0.14.1", + "@astrojs/check": "^0.9.4", + "typescript": "^5.9.3" + } +} diff --git a/packages/docs/prettier.config.js b/packages/docs/prettier.config.js new file mode 100644 index 0000000..281cb91 --- /dev/null +++ b/packages/docs/prettier.config.js @@ -0,0 +1,17 @@ +// @ts-check + +/** + * @see https://prettier.io/docs/configuration + * @type {import("prettier").Config} + */ +export default { + plugins: ["prettier-plugin-astro"], + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/packages/docs/public/favicon-96x96.png b/packages/docs/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..fe9573907d52f80cff2c593e286bd3c9c76c1db0 GIT binary patch literal 5047 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 N002ovPDHLkV1i<(;uHV? literal 0 HcmV?d00001 diff --git a/packages/docs/public/favicon.svg b/packages/docs/public/favicon.svg new file mode 100644 index 0000000..8febb82 --- /dev/null +++ b/packages/docs/public/favicon.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/docs/src/assets/mighty.svg b/packages/docs/src/assets/mighty.svg new file mode 100644 index 0000000..39e133d --- /dev/null +++ b/packages/docs/src/assets/mighty.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/docs/src/components/PackageManagerTabs.astro b/packages/docs/src/components/PackageManagerTabs.astro new file mode 100644 index 0000000..b7e5bd4 --- /dev/null +++ b/packages/docs/src/components/PackageManagerTabs.astro @@ -0,0 +1,15 @@ +--- +import { TabItem, Tabs } from "@astrojs/starlight/components"; +--- + + + + + + + + + + + + diff --git a/packages/docs/src/components/starlight/Hero.astro b/packages/docs/src/components/starlight/Hero.astro new file mode 100644 index 0000000..fe67f35 --- /dev/null +++ b/packages/docs/src/components/starlight/Hero.astro @@ -0,0 +1,143 @@ +--- +import { LinkButton } from "@astrojs/starlight/components"; +import MightyLogo from "@/assets/mighty.svg"; + +const { data } = Astro.locals.starlightRoute.entry; +const { title = data.title, tagline, actions = [] } = data.hero || {}; + +const PAGE_TITLE_ID = "_top"; +--- + +
+