diff --git a/src/docs-hardware/request-new-hardware.md b/src/docs-hardware/request-new-hardware.md new file mode 100644 index 00000000..126d88da --- /dev/null +++ b/src/docs-hardware/request-new-hardware.md @@ -0,0 +1,46 @@ +--- +hide_table_of_contents: true +sidebar_position: 1 +title: 'Request New Hardware Support' +description: 'Want Avocado OS on a target we do not list yet? See how we prioritize new hardware, try Avocado OS in QEMU today, and tell us what you want supported.' +--- + +# Request New Hardware Support + +Don't see your hardware yet? You're in the right place. Avocado OS focuses on the most widely used platforms across edge AI and embedded deployments, and our support matrix keeps expanding — we evaluate new targets all the time based on customer demand, ecosystem adoption, and engineering feasibility. + +Before submitting a request, check the [Support Matrix](/hardware/support-matrix) to see what's supported and what's already [under evaluation](/hardware/support-matrix#additional-hardware-under-evaluation). Support for your target may already be on the way. + +## How we prioritize new hardware + +With hundreds of boards, SOMs, and gateways out there, we focus first on the platforms that deliver the most value to the most users. When we weigh a new target, we look at: + +- Customer demand +- Community interest +- Ecosystem maturity +- Availability of BSPs and vendor support +- Long-term maintenance requirements + +## Request hardware support + +If you'd like us to evaluate a specific target, we'd genuinely love to hear about it — every request helps us prioritize what to support next. You can: + +- [Reach out to us](https://www.peridio.com/contact) with your target and use case +- [Join our Discord](https://www.peridio.com/join-our-discord) to share your use case, see what others are asking for, and add your voice to existing requests + +Our engineering team reviews requests regularly when planning future platform support. + +## Try Avocado OS today with QEMU + +In the meantime, you don't need supported hardware to start exploring. You can run Avocado OS right now in an emulator with QEMU — no board required. It's the fastest way to experience the workflow, build a runtime, and get a real feel for the platform while we work on your target. + +Head over to [Getting Started with QEMU](/developer-reference/getting-started/qemu) to spin up Avocado OS in minutes. + +## Custom hardware + +Using a custom carrier board, or hardware derived from a platform we already support? In many cases support can be added with board-specific configuration or overlay work, provided the required BSP and vendor resources are available. + +- **Custom boards** — typically supported as part of a paid engagement. [Contact us](https://www.peridio.com/contact) and we'll map out the path. +- **Off-the-shelf SOMs, Gateways, and Boxes** — if your hardware is based on a target we already support, it's usually straightforward overlay work once we have access to the BSP. + +For commercial deployments, [get in touch](https://www.peridio.com/contact) to discuss support options. diff --git a/src/docs-overview/avocado-connect/overview.mdx b/src/docs-overview/avocado-connect/overview.mdx index a544fedf..1376f714 100644 --- a/src/docs-overview/avocado-connect/overview.mdx +++ b/src/docs-overview/avocado-connect/overview.mdx @@ -2,17 +2,15 @@ title: 'Overview' --- +import CalloutButton from '@site/src/components/CalloutButton' + # Avocado Connect Your OS is managed, patched, and compliant. Your application layer is independent. Update models, pipelines, and configs on your schedule without touching firmware. Your engineers build product, not infrastructure. Avocado Connect is the fleet management and device operations platform for Avocado OS. It handles OTA updates, remote access, device monitoring, and compliance tracking — so the operating system you built with Avocado OS stays healthy, current, and auditable once it's deployed to the field. -{/* Keep on one line — Prettier line breaks create visible whitespace in MDX */} -
-Free developer account -Sign up → -
+ --- diff --git a/src/docs-overview/community.mdx b/src/docs-overview/community.mdx new file mode 100644 index 00000000..99d1de17 --- /dev/null +++ b/src/docs-overview/community.mdx @@ -0,0 +1,28 @@ +--- +title: 'Community' +sidebar_position: 4 +description: 'Join the Avocado OS Discord community - feature requests, reference requests, technical support, early access, and previews of new features and tools.' +--- + +import CalloutButton from '@site/src/components/CalloutButton' + +# Community + +Our Discord is where the day-to-day conversation happens. It's the best place to connect with the team and with other developers building on Avocado OS. + +We'd love for you to join. We use Discord to: + +- Discuss **feature requests** and help shape the roadmap +- Field **reference requests** for new hardware and use cases +- Provide **technical support** and answer questions +- **Soft launch** new features and tools before they go wide +- Offer **early access** and previews to the community +- Share what we're working on and hear what you're building + +Whether you have a question, an idea, or just want to see what's coming next, you'll find us there. + + diff --git a/src/docs-overview/open-source.mdx b/src/docs-overview/open-source.mdx new file mode 100644 index 00000000..758dfa57 --- /dev/null +++ b/src/docs-overview/open-source.mdx @@ -0,0 +1,25 @@ +--- +title: 'Open Source' +sidebar_position: 3 +description: 'Avocado OS is developed in the open on GitHub - explore the core OS, CLI, references, Yocto layer, and the rest of the avocado-linux ecosystem.' +--- + +# Open Source + +Avocado OS is built in the open. The OS and its tooling are developed on GitHub under the avocado-linux organization, so you can read the source, file issues, and contribute. The best place to start is the core OS repository: + +- **avocado-os** — The core Avocado OS distribution and its built extensions. Start here. + +From there, explore the rest of the ecosystem: + +- **avocado-cli** — The `avocado` command-line tool for building, provisioning, and deploying. +- **references** — Example projects and reference configurations for working with Avocado OS. +- **meta-avocado** — The Avocado distro layer for Yocto. +- **avocadoctl** — On-device runtime control and commands. +- **avocado-mcp** — The MCP server that turns your AI assistant into an Avocado OS co-pilot. +- **stone** — A CLI for managing Avocado stones. +- **docs** — The source for these documentation pages (under the `peridio` organization). + +:::tip Pull requests welcome! +Found a bug, a typo, or have an improvement in mind? We'd love your contributions. Open an issue or send a PR on any of these repos — and if you're not sure where to start, [join our Discord](https://www.peridio.com/join-our-discord) and we'll happily point you in the right direction. +::: diff --git a/src/docusaurus.config.js b/src/docusaurus.config.js index 610f9903..0b4e6421 100644 --- a/src/docusaurus.config.js +++ b/src/docusaurus.config.js @@ -115,7 +115,8 @@ const config = { to: '/', label: 'Product Documentation', position: 'left', - activeBaseRegex: '^/(about|features|core-concepts|security|faqs|policies)?$', + activeBaseRegex: + '^/(about|features|core-concepts|open-source|community|security|faqs|policies)?$', }, { to: '/hardware/support-matrix', diff --git a/src/package-lock.json b/src/package-lock.json index dddbd963..c47b1592 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -21052,9 +21052,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", + "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -22412,7 +22412,7 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", diff --git a/src/package.json b/src/package.json index f0e0df3a..20a94c60 100644 --- a/src/package.json +++ b/src/package.json @@ -77,6 +77,7 @@ "node": ">=20.0" }, "overrides": { - "prismjs": "1.29.0" + "prismjs": "1.29.0", + "shell-quote": "1.8.4" } } diff --git a/src/sidebars-hardware.js b/src/sidebars-hardware.js index a368babd..d7315d38 100644 --- a/src/sidebars-hardware.js +++ b/src/sidebars-hardware.js @@ -3,7 +3,14 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { hardware: [ - 'support-matrix', + { + type: 'category', + label: 'Support Matrix', + collapsible: false, + collapsed: false, + link: { type: 'doc', id: 'support-matrix' }, + items: ['request-new-hardware'], + }, { type: 'category', label: 'NVIDIA', diff --git a/src/sidebars-overview.js b/src/sidebars-overview.js index 5f1418bf..abb40401 100644 --- a/src/sidebars-overview.js +++ b/src/sidebars-overview.js @@ -8,7 +8,7 @@ const sidebars = { label: 'About Avocado OS', collapsible: false, collapsed: false, - items: ['resources', 'about', 'features', 'core-concepts'], + items: ['resources', 'about', 'features', 'core-concepts', 'open-source', 'community'], }, { type: 'category', diff --git a/src/src/components/CalloutButton/index.tsx b/src/src/components/CalloutButton/index.tsx new file mode 100644 index 00000000..ef376014 --- /dev/null +++ b/src/src/components/CalloutButton/index.tsx @@ -0,0 +1,51 @@ +import React from 'react' +import Link from '@docusaurus/Link' + +interface CalloutButtonProps { + /** Text shown to the left of the button (the callout label). */ + label: string + /** Button text. */ + cta: string + /** Button link target. */ + href: string +} + +/** + * Pill callout with a label and a primary-color button. + * Originally inlined on the Avocado Connect overview; extracted so the same + * exact button can be reused (e.g. the Community page Discord CTA). + */ +export default function CalloutButton({ label, cta, href }: CalloutButtonProps) { + return ( +
+ {label} + + {cta} + +
+ ) +} diff --git a/src/src/css/custom.css b/src/src/css/custom.css index c84e169d..aca30878 100644 --- a/src/src/css/custom.css +++ b/src/src/css/custom.css @@ -52,6 +52,21 @@ html { text-decoration-color: #fff; } +/* "Request New Hardware Support" page — make in-content links obviously purple. + --ifm-color-primary is theme-adjusted (brand-700 light / brand-400 dark). */ +.docs-doc-id-request-new-hardware .theme-doc-markdown a { + color: var(--ifm-color-primary); + font-weight: 500; + text-decoration: underline; +} + +/* Keep the underline the link color on hover — the global + `.theme-doc-markdown a:hover` repaints it white, which would make it + disappear on the light background. */ +.docs-doc-id-request-new-hardware .theme-doc-markdown a:hover { + text-decoration-color: var(--ifm-color-primary); +} + h2, .schema-container h2 { font-family: "Spline Sans", sans-serif; @@ -481,6 +496,30 @@ button[title="Collapse sidebar"], padding-left: var(--ifm-menu-link-padding-horizontal) !important; } +/* …but a top-level category that LINKS to a real page (e.g. Support Matrix) must + still show the active accent when you're on that page. `aria-current="page"` + appears only on the genuinely-active link — never on linkless section headers + that merely contain an active descendant, and never on this header when one of + its child pages is active — so it cleanly re-enables the highlight without + undoing the suppression above. Header weight/size are inherited from that rule. */ +.theme-doc-sidebar-menu + > .menu__list-item + > .menu__list-item-collapsible + > .menu__link--active[aria-current="page"] { + color: var(--ifm-color-primary) !important; + background-color: rgba(52, 36, 238, 0.06) !important; + border-left: 3px solid var(--ifm-color-primary) !important; + padding-left: calc(var(--ifm-menu-link-padding-horizontal) - 3px) !important; +} + +html[data-theme="dark"] + .theme-doc-sidebar-menu + > .menu__list-item + > .menu__list-item-collapsible + > .menu__link--active[aria-current="page"] { + background-color: rgba(123, 111, 240, 0.1) !important; +} + /* Nested (collapsible) category labels — match regular child items */ .menu__list .menu__list .menu__list-item-collapsible .menu__link { font-weight: 400 !important;