Skip to content

docs: content update and migration - #865

Merged
skevetter merged 24 commits into
mainfrom
punchy-lionfish
Aug 3, 2026
Merged

docs: content update and migration#865
skevetter merged 24 commits into
mainfrom
punchy-lionfish

Conversation

@skevetter

@skevetter skevetter commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Migrates sites/docs-devsy-sh in place from Docusaurus to Fumadocs (Next.js-based), covering all 42 content pages, theme/branding, static assets, the production marketing homepage, and the Netlify build pipeline.
  • Replaces Algolia DocSearch with Fumadocs' built-in ZBSearch/Orama engine — free, self-hosted, no third-party account.

Notable fixes caught during review

  • Homepage port had dropped all SEO/social <head> metadata — restored.
  • Missing metadataBase caused all 42 docs pages' OG/Twitter preview images to resolve to localhost:3000 in the static export — fixed.

Summary by CodeRabbit

  • New Features
    • Introduced a modern Devsy homepage with responsive navigation, theme switching, feature highlights, services, contact form, and calls to action.
    • Added documentation search, dynamic documentation pages, metadata, social sharing images, and machine-readable content endpoints.
    • Added permanent redirects for moved documentation pages.
  • Documentation
    • Migrated the documentation experience to a refreshed platform with improved navigation and presentation.
    • Expanded guidance for workspaces, providers, deployment, secrets, troubleshooting, tutorials, and MCP integration.
    • Added link validation to help keep documentation references accurate.

…/docs

Copies the 44-page legacy pages/** tree into content/docs/**, adds
meta.json per folder to restore the old sidebars.js nav order, converts
Docusaurus Tabs/TabItem to fumadocs-ui Tabs/Tab and admonitions to
Callout, and excludes content/docs/fragments/ (MDX partials) from
routing via defineDocs' files glob in lib/source.ts.
Swaps the placeholder nav title for the light/dark Devsy logo, wires
light-default/OS-respecting color mode via RootProvider, and remaps the
brand primary color from custom.css into Fumadocs' --color-fd-primary.
Drops custom.css and custom.js entirely: their component overrides
have native Fumadocs equivalents (Tabs, Callout, sidebar, copy button)
and the hand-rolled active-TOC/scroll-spy highlighting is fully
superseded by Fumadocs' built-in IntersectionObserver-based TOC.
Copy static/media/* to public/docs/media/ and devsy-favicon.svg to
app/icon.svg so hardcoded /docs/media/... MDX references resolve
correctly under Fumadocs' default routing (no basePath). Remove the
now-unused static/ directory.
…x port

Add a Next.js Metadata export to app/(home)/layout.tsx carrying the title,
description, and Open Graph/Twitter Card tags from the original static
public/index.html <head>, which had no JSX equivalent after the port.
Adds scripts/check-links.mts (registered via fumadocs-mdx's Node ESM
loader since the macro-based source config can't run under a plain
tsx invocation) to catch broken relative links and stale heading
anchors from the Fumadocs migration. Enables checkRelativePaths and
populates TOC-derived hashes, since next-validate-link silently skips
both checks by default.
Task 10 verification found sites/docs-devsy-sh/README.md still described
the old Docusaurus/yarn setup and a since-deleted gen-docs.go versioning
script. Replace it with the current npm-based Fumadocs commands (dev,
build, check-links).
The plan document driving the migration executed in this branch's
subsequent commits.
- Set metadataBase on the root layout so OG/Twitter image URLs on all
  docs pages resolve to https://www.devsy.sh instead of falling back
  to http://localhost:3000 in production.
- Declare next-themes as an explicit dependency instead of relying on
  it being hoisted transitively via fumadocs-ui.
- Correct the stale next.config.mjs comment referencing the deleted
  legacy Docusaurus pages/ directory.
@netlify

netlify Bot commented Aug 3, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev ready!

Name Link
🔨 Latest commit 8dec7ec
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a70d1141ebdac00087fa7ff
😎 Deploy Preview https://deploy-preview-865--devsydev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@skevetter, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 10 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 60e9f0a9-5a48-4211-95a1-596da11cb123

📥 Commits

Reviewing files that changed from the base of the PR and between 9d54e75 and 8dec7ec.

⛔ Files ignored due to path filters (1)
  • sites/docs-devsy-sh/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (15)
  • sites/docs-devsy-sh/README.md
  • sites/docs-devsy-sh/app/(home)/home.css
  • sites/docs-devsy-sh/app/(home)/page.tsx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/devcontainer-json.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/inactivity-timeout.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/agent.mdx
  • sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx
  • sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx
  • sites/docs-devsy-sh/content/docs/fragments/virtualbox-ubuntu-22.04.mdx
  • sites/docs-devsy-sh/content/docs/managing-machines/manage-machines.mdx
  • sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/reduce-build-times-with-cache.mdx
  • sites/docs-devsy-sh/content/docs/what-is-devsy.mdx
  • sites/docs-devsy-sh/package.json
📝 Walkthrough

Walkthrough

The documentation site migrates from Docusaurus to Next.js and Fumadocs. It adds a new Devsy homepage, documentation routes, search and LLM endpoints, updated content and navigation, link checking, redirects, and static Netlify deployment.

Changes

Devsy documentation migration

Layer / File(s) Summary
Next.js and Fumadocs foundation
sites/docs-devsy-sh/package.json, next.config.mjs, lib/*, tsconfig.json, netlify.toml, scripts/check-links.mts
Replaces Docusaurus configuration with Next.js, Fumadocs, TypeScript, static export, shared source helpers, link checking, and out/ deployment.
Application shell and routes
sites/docs-devsy-sh/app/*, components/*
Adds layouts, metadata, MDX rendering, search, documentation pages, Open Graph images, and LLM endpoints.
Devsy homepage
sites/docs-devsy-sh/app/(home)/*
Adds responsive navigation, theme switching, product sections, services, contact markup, CTAs, and complete homepage styling.
Documentation content migration
sites/docs-devsy-sh/content/docs/*
Adds navigation metadata and updates workspace, provider, installation, architecture, machine, troubleshooting, and tutorial documentation for Fumadocs.
Legacy URL handling
sites/docs-devsy-sh/public/_redirects
Adds permanent redirects from legacy documentation URLs to replacement pages and anchors.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

  • devsy-org/devsy#285: Migrates overlapping Devsy documentation content from Docusaurus to Fumadocs.
  • devsy-org/devsy#631: Adds the previous static landing page replaced by the new Next.js homepage.
  • devsy-org/devsy#754: Covers overlapping homepage services, contact, theme, and navigation content.

Suggested labels: review

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately identifies the documentation content updates and framework migration in the pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Aug 3, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit 8dec7ec
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a70d11418ac1500082ff9ef

@skevetter
skevetter marked this pull request as ready for review August 3, 2026 14:00
@skevetter
skevetter marked this pull request as draft August 3, 2026 14:05
@github-actions github-actions Bot added size/xs and removed size/xl labels Aug 3, 2026
Fixes 32 findings from an automated CodeRabbit CLI review: 1 critical
(unauthenticated Docker daemon TCP exposure in the WSL provider
tutorial, replaced with SSH-based Docker contexts), 7 major (security
guidance on credential/SSH-agent forwarding, Podman socket/compose
setup corrections, inconsistent duration format), and 24 minor
(broken links, grammar, an invalid devcontainer.json example, a
missing nav aria-label, an unsupported next start script under static
export, and missing provider entries).
Executes the content-review workstream: cross-references doc claims
(commands, flags, error codes, provider schemas, architecture) against
current Go source rather than trusting existing prose.

- Replaces fabricated structured CLI error codes (DOCKER_NOT_RUNNING,
  PODMAN_SOCKET_UNAVAILABLE, KUBE_CONFIG_MISSING, AWS_*, etc.) with the
  actual 4-member error code enum from pkg/clierr/errors.go, and
  corrects which flag/mode actually triggers JSON error output.
- Adds missing devsy machine start/describe/inspect subcommands.
- Corrects stale architecture claims across how-it-works/*: removes an
  inaccurate "wraps kubectl" claim (the Kubernetes driver uses
  client-go directly) and a nonexistent "kaniko" build driver
  reference, replacing both with the real build/driver mechanisms.
- Fixes provider-schema documentation drift in developing-providers/*
  (missing option fields, missing Apple/Microsandbox/Custom driver
  sections, stale Kubernetes driver field list) and corrects
  Kubernetes' misclassification as an external provider repo when
  it's actually a first-party embedded built-in.
- Adds notes for two real, recent behavior changes (platform-pin and
  Docker-env propagation in compose builds) that shipped without a
  corresponding doc update.
- Fixes a placeholder IP octet left in an example command output.
- Normalizes rename-provider.md to .mdx for consistency with the rest
  of the tree.
@skevetter
skevetter marked this pull request as ready for review August 3, 2026 16:50
@skevetter skevetter changed the title Migrate docs site from Docusaurus to Fumadocs docs: content update and migrate to fumadocs Aug 3, 2026
@skevetter skevetter changed the title docs: content update and migrate to fumadocs docs: content update and migration Aug 3, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 16

🧹 Nitpick comments (2)
sites/docs-devsy-sh/app/(home)/page.tsx (1)

485-524: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Add post-submit feedback for the contact form.

The form posts without an action target or client-side handling. After a successful Netlify Forms submission, the user gets no visible confirmation beyond a page reload. Add an action attribute pointing to a thank-you route, or add a client-side submit handler that shows a success state.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/app/`(home)/page.tsx around lines 485 - 524, Add
post-submit feedback to the contact form by setting its action attribute to an
existing thank-you route, or implement client-side submission handling that
displays a clear success state after Netlify accepts the form. Update the form
element identified by name="contact" while preserving its existing Netlify and
honeypot configuration.
sites/docs-devsy-sh/app/(home)/home.css (1)

155-163: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove or apply the unused .nav-link-single CSS rule.

home.css defines .nav-link-single styling for a standalone nav-cta link, but no element in page.tsx uses this class. This indicates either leftover dead CSS from an earlier design iteration, or a missed class assignment on the "Docs" link.

  • sites/docs-devsy-sh/app/(home)/home.css#L155-L163: Remove this rule if it is unused, or apply it as intended.
  • sites/docs-devsy-sh/app/(home)/home.css#L260-L265: Remove the .nav-cta .nav-link-single selector if .nav-link-single is not used, or keep it consistent with the intended element.
  • sites/docs-devsy-sh/app/(home)/page.tsx#L69-L74: If the "Docs" link was meant to be visually distinct in the mobile nav-cta area, move it out of .nav-links and add className="nav-link-single".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/app/`(home)/home.css around lines 155 - 163, Resolve the
unused nav-link-single styling consistently across
sites/docs-devsy-sh/app/(home)/home.css lines 155-163 and 260-265 and
sites/docs-devsy-sh/app/(home)/page.tsx lines 69-74: either remove both CSS
rules when the class is not intended, or move the Docs link out of nav-links in
page.tsx and assign className nav-link-single so both selectors apply to the
intended mobile nav-cta link.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@sites/docs-devsy-sh/app/`(home)/page.tsx:
- Line 84: Replace the home page’s useTheme/setTheme dependency around the theme
toggle with a supported approach: either move the control into a client
component that owns and applies its theme state, or consistently add and use a
shared next-themes ThemeProvider through the app layout Provider. Ensure the
onClick handler is connected to the selected theme implementation and remove
unavailable useTheme usage from the home page.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/devcontainer-json.mdx`:
- Around line 145-149: Update the `devsy workspace up` example in the workspace
devcontainer documentation to explicitly select the SSH provider by adding the
documented `--provider ssh` option, while preserving the existing repository URL
and `--ide=none` arguments.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/dotfiles-in-a-workspace.mdx`:
- Around line 29-31: Restore the recognized installer path to script/setup in
the documented setup-location list, replacing setup/setup, so repositories using
script/setup are detected and executed before falling back to hidden-file
linking.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/inactivity-timeout.mdx`:
- Line 27: Update the inactivity-timeout documentation paragraph to use “it's”
for the contractions and remove the redundant “again” from “restart the
container again,” while preserving the existing meaning.

In `@sites/docs-devsy-sh/content/docs/developing-providers/agent.mdx`:
- Line 49: Update the path option description in the agent configuration
documentation to state that path controls the remote agent location, while local
execution requires setting local: true; remove the implication that using
${DEVSY} alone selects the local machine.

In `@sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx`:
- Around line 4-13: Update the alt attributes on the two images in the provider
setup instructions so each conveys its distinct screen: provider selection for
add-provider-1.png and provider configuration/add-provider action for
add-provider-2.png. Do not retain the generic “Devsy Flow” text; use empty alt
text only if the adjacent figcaptions fully describe the images.

In `@sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx`:
- Around line 4-15: Update the “Recommended machine requirements” table to
require at least 16GB of host RAM, matching the 8192 MB guest allocation
described in the related VirtualBox walkthrough; keep the other minimum
requirements unchanged.

In `@sites/docs-devsy-sh/content/docs/fragments/virtualbox-ubuntu-22.04.mdx`:
- Line 7: Update the Ubuntu 22.04 ISO download instruction to explicitly state
that this tutorial requires an x86-64 host and guest image, or provide a tested
arm64 VirtualBox installation path instead. Keep the existing Ubuntu 22.04
download guidance aligned with the supported architecture.

In `@sites/docs-devsy-sh/content/docs/managing-machines/manage-machines.mdx`:
- Line 58: Update the description near the machine configuration JSON output to
remove the claim that it is the “full configuration.” State that it prints the
machine configuration, including provider and provider options, with sensitive
values redacted and hidden options omitted.

In `@sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx`:
- Line 12: Correct the spelling in the troubleshooting documentation by
replacing “neccesary” with “necessary” in the explanatory sentence.
- Around line 96-113: Correct the Podman provider guidance in
sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx lines
96-113 and sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx
lines 205-222: remove docker-compose-plugin as the default Option 2, document
only podman-compose or a real docker-compose executable, and update each
verification command to check the provider actually installed.

In `@sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx`:
- Around line 70-74: Update both Podman API service examples in
podman-provider-setup.mdx at lines 70-74 and 187-191 to use a detached or
persistent launcher instead of relying on trailing “&” alone, so the service
survives terminal closure. Retain “--time=0” solely to disable the API
inactivity shutdown timeout.

In
`@sites/docs-devsy-sh/content/docs/tutorials/reduce-build-times-with-cache.mdx`:
- Around line 35-39: Update the containerd verification command in the “Verify
the active storage driver” section to query Docker’s DriverStatus using the
formatted docker info output, rather than grepping the storage driver field.
Keep the check focused on confirming the containerd snapshotter status.

In `@sites/docs-devsy-sh/content/docs/what-is-devsy.mdx`:
- Line 9: Update the img element’s alt text to summarize the workflow
information shown in devsy-flow.gif; if the surrounding content already conveys
it, use an empty alt attribute to mark the image decorative.

In `@sites/docs-devsy-sh/lib/cn.ts`:
- Line 1: Declare cnfast as a direct dependency in the site’s package manifest
so the existing cn re-export remains backed by an explicitly installed package;
alternatively, replace the import in the cn module with an equivalent dependency
already declared by the site.

In `@sites/docs-devsy-sh/README.md`:
- Around line 5-30: Update the Installation, Local Development, Build, and Check
Links headings to level 2, mark each command fence as sh, and remove the leading
$ prompts from the commands while preserving the surrounding documentation.

---

Nitpick comments:
In `@sites/docs-devsy-sh/app/`(home)/home.css:
- Around line 155-163: Resolve the unused nav-link-single styling consistently
across sites/docs-devsy-sh/app/(home)/home.css lines 155-163 and 260-265 and
sites/docs-devsy-sh/app/(home)/page.tsx lines 69-74: either remove both CSS
rules when the class is not intended, or move the Docs link out of nav-links in
page.tsx and assign className nav-link-single so both selectors apply to the
intended mobile nav-cta link.

In `@sites/docs-devsy-sh/app/`(home)/page.tsx:
- Around line 485-524: Add post-submit feedback to the contact form by setting
its action attribute to an existing thank-you route, or implement client-side
submission handling that displays a clear success state after Netlify accepts
the form. Update the form element identified by name="contact" while preserving
its existing Netlify and honeypot configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fa22e096-2a0c-47d8-a1bc-442ee4edd059

📥 Commits

Reviewing files that changed from the base of the PR and between 564708e and 9d54e75.

⛔ Files ignored due to path filters (20)
  • sites/docs-devsy-sh/app/icon.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/package-lock.json is excluded by !**/package-lock.json
  • sites/docs-devsy-sh/public/docs/media/add-provider-1.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/add-provider-2.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_build.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_build_k8s.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_k8s.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_machines.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_workspaces.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/cluster-compatibility.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/devsy-dark.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/devsy-favicon.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/devsy-flow.gif is excluded by !**/*.gif
  • sites/docs-devsy-sh/public/docs/media/devsy-icon.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/devsy-logo-horizontal-dark.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/devsy-logo-horizontal.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/devsy.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/slack.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/up_sequence.png is excluded by !**/*.png
  • sites/docs-devsy-sh/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (96)
  • sites/docs-devsy-sh/.gitignore
  • sites/docs-devsy-sh/README.md
  • sites/docs-devsy-sh/app/(home)/home.css
  • sites/docs-devsy-sh/app/(home)/layout.tsx
  • sites/docs-devsy-sh/app/(home)/page.tsx
  • sites/docs-devsy-sh/app/api/search/route.ts
  • sites/docs-devsy-sh/app/docs/[[...slug]]/page.tsx
  • sites/docs-devsy-sh/app/docs/layout.tsx
  • sites/docs-devsy-sh/app/global.css
  • sites/docs-devsy-sh/app/layout.tsx
  • sites/docs-devsy-sh/app/llms-full.txt/route.ts
  • sites/docs-devsy-sh/app/llms.mdx/docs/[[...slug]]/route.ts
  • sites/docs-devsy-sh/app/llms.txt/route.ts
  • sites/docs-devsy-sh/app/og/docs/[...slug]/route.tsx
  • sites/docs-devsy-sh/components/mdx.tsx
  • sites/docs-devsy-sh/components/provider.tsx
  • sites/docs-devsy-sh/components/search.tsx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/connect-to-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/continuous-integration.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/create-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/credentials.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/devcontainer-json.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/dotfiles-in-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/inactivity-timeout.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/mcp-server.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/meta.json
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/prebuild-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/secrets.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/stop-and-delete-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/workspace-snapshots.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/agent.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/binaries.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/driver.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/meta.json
  • sites/docs-devsy-sh/content/docs/developing-providers/options.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/quickstart.mdx
  • sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx
  • sites/docs-devsy-sh/content/docs/fragments/meta.json
  • sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx
  • sites/docs-devsy-sh/content/docs/fragments/virtualbox-ubuntu-22.04.mdx
  • sites/docs-devsy-sh/content/docs/getting-started/install.mdx
  • sites/docs-devsy-sh/content/docs/getting-started/meta.json
  • sites/docs-devsy-sh/content/docs/getting-started/quickstart.mdx
  • sites/docs-devsy-sh/content/docs/getting-started/update.mdx
  • sites/docs-devsy-sh/content/docs/how-it-works/deploying-workspaces.mdx
  • sites/docs-devsy-sh/content/docs/how-it-works/meta.json
  • sites/docs-devsy-sh/content/docs/how-it-works/overview.mdx
  • sites/docs-devsy-sh/content/docs/managing-machines/manage-machines.mdx
  • sites/docs-devsy-sh/content/docs/managing-machines/meta.json
  • sites/docs-devsy-sh/content/docs/managing-machines/what-are-machines.mdx
  • sites/docs-devsy-sh/content/docs/managing-providers/manage-providers.mdx
  • sites/docs-devsy-sh/content/docs/managing-providers/meta.json
  • sites/docs-devsy-sh/content/docs/managing-providers/what-are-providers.mdx
  • sites/docs-devsy-sh/content/docs/meta.json
  • sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx
  • sites/docs-devsy-sh/content/docs/troubleshooting/meta.json
  • sites/docs-devsy-sh/content/docs/troubleshooting/troubleshooting.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/docker-provider-via-wsl.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/meta.json
  • sites/docs-devsy-sh/content/docs/tutorials/minikube-vscode-browser.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/reduce-build-times-with-cache.mdx
  • sites/docs-devsy-sh/content/docs/what-is-devsy.mdx
  • sites/docs-devsy-sh/docusaurus.config.js
  • sites/docs-devsy-sh/lib/cn.ts
  • sites/docs-devsy-sh/lib/layout.shared.tsx
  • sites/docs-devsy-sh/lib/shared.ts
  • sites/docs-devsy-sh/lib/source.ts
  • sites/docs-devsy-sh/netlify.toml
  • sites/docs-devsy-sh/next.config.mjs
  • sites/docs-devsy-sh/package.json
  • sites/docs-devsy-sh/pages/developing-in-workspaces/delete-a-workspace.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/environment-variables-in-devcontainer-json.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx
  • sites/docs-devsy-sh/pages/developing-providers/driver.mdx
  • sites/docs-devsy-sh/pages/how-it-works/building-workspaces.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploy-k8s.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploy-machines.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploying-workspaces.mdx
  • sites/docs-devsy-sh/pages/managing-providers/remove-provider.mdx
  • sites/docs-devsy-sh/pages/managing-providers/rename-provider.md
  • sites/docs-devsy-sh/pages/managing-providers/set-source.mdx
  • sites/docs-devsy-sh/postcss.config.mjs
  • sites/docs-devsy-sh/public/_redirects
  • sites/docs-devsy-sh/public/index.html
  • sites/docs-devsy-sh/scripts/check-links.mts
  • sites/docs-devsy-sh/sidebars.js
  • sites/docs-devsy-sh/src/components/Highlight/Highlight.js
  • sites/docs-devsy-sh/src/components/Highlight/styles.module.css
  • sites/docs-devsy-sh/src/components/Step/Step.js
  • sites/docs-devsy-sh/src/components/Step/styles.module.css
  • sites/docs-devsy-sh/src/css/custom.css
  • sites/docs-devsy-sh/src/pages/index.js
  • sites/docs-devsy-sh/src/pages/styles.module.css
  • sites/docs-devsy-sh/static/js/custom.js
  • sites/docs-devsy-sh/tsconfig.json
💤 Files with no reviewable changes (23)
  • sites/docs-devsy-sh/content/docs/getting-started/update.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/delete-a-workspace.mdx
  • sites/docs-devsy-sh/pages/managing-providers/rename-provider.md
  • sites/docs-devsy-sh/pages/how-it-works/deploying-workspaces.mdx
  • sites/docs-devsy-sh/pages/how-it-works/building-workspaces.mdx
  • sites/docs-devsy-sh/src/components/Highlight/styles.module.css
  • sites/docs-devsy-sh/docusaurus.config.js
  • sites/docs-devsy-sh/pages/developing-providers/driver.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploy-k8s.mdx
  • sites/docs-devsy-sh/src/pages/index.js
  • sites/docs-devsy-sh/pages/developing-in-workspaces/environment-variables-in-devcontainer-json.mdx
  • sites/docs-devsy-sh/public/index.html
  • sites/docs-devsy-sh/src/components/Step/styles.module.css
  • sites/docs-devsy-sh/pages/how-it-works/deploy-machines.mdx
  • sites/docs-devsy-sh/pages/managing-providers/remove-provider.mdx
  • sites/docs-devsy-sh/pages/managing-providers/set-source.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx
  • sites/docs-devsy-sh/src/components/Highlight/Highlight.js
  • sites/docs-devsy-sh/src/css/custom.css
  • sites/docs-devsy-sh/src/components/Step/Step.js
  • sites/docs-devsy-sh/src/pages/styles.module.css
  • sites/docs-devsy-sh/static/js/custom.js
  • sites/docs-devsy-sh/sidebars.js

type="button"
aria-label={themeLabel}
title={themeLabel}
onClick={() => setTheme(isDark ? 'light' : 'dark')}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Confirm the ThemeProvider is configured with attribute="class".
rg -n -C4 'ThemeProvider' sites/docs-devsy-sh/components/provider.tsx

Repository: devsy-org/devsy

Length of output: 153


🏁 Script executed:

#!/bin/bash
set -u

echo "Candidate provider files:"
fd -i 'provider' sites/docs-devsy-sh || true

echo
echo "ThemeProvider occurrences in sites/docs-devsy-sh:"
rg -n -C5 'ThemeProvider|next-themes|setTheme|dark|isDark' sites/docs-devsy-sh || true

echo
echo "Page relevant lines if present:"
fd -a 'page\.tsx' sites/docs-devsy-sh/app | while read -r f; do
  if rg -q 'setTheme|useTheme|theme' "$f"; then
    echo "--- $f"
    rg -n -C8 'setTheme|useTheme|theme' "$f"
  fi
done

Repository: devsy-org/devsy

Length of output: 13305


🏁 Script executed:

#!/bin/bash
set -u

echo "Layout and page imports/usages:"
fd -a 'layout\.tsx$|page\.tsx$' sites/docs-devsy-sh/app | sort | while read -r f; do
  if [ -f "$f" ]; then
    echo "--- $f"
    sed -n '1,220p' "$f"
  fi
done

echo
echo "All next-themes imports/usages in sites/docs-devsy-sh:"
rg -n -C3 'next-themes|ThemeProvider|useTheme' sites/docs-devsy-sh || true

echo
echo "Package metadata for next-themes 0.4.6:"
python3 - <<'PY'
import json, urllib.request
url='https://unpkg.com/next-themes@0.4.6/package.json'
try:
    raw=urllib.request.urlopen(url, timeout=10).read()
    data=json.loads(raw)
    print(data.get('name'), data.get('version'), data.get('main'), data.get('types'))
except Exception as e:
    print("package-fetch-error", repr(e))
PY

Repository: devsy-org/devsy

Length of output: 17683


🌐 Web query:

next-themes 0.4.6 ThemeProvider attribute default data-theme

💡 Result:

In next-themes version 0.4.6, the default value for the attribute prop in ThemeProvider is 'data-theme' [1][2][3]. When the ThemeProvider is used without a custom attribute prop, it automatically modifies the 'data-theme' attribute on the element of the document based on the currently active theme [1][4][5]. This allows you to target the theme in your CSS using attribute selectors, such as [data-theme='dark'] [3][6]. Key points regarding the attribute behavior: - Default Attribute: The default attribute is 'data-theme' [1][2]. - Customization: You can change the attribute to 'class' (often used with Tailwind CSS) or any other custom data attribute (e.g., 'data-mode', 'data-color') by passing the attribute prop to the ThemeProvider [1][4][3]. - Value Mapping: If you need the DOM attribute value to differ from the theme name stored in localStorage, you can use the value prop to provide a mapping object (e.g., <ThemeProvider value={{ light: 'light-mode', dark: 'dark-mode' }}>) [3][6].

Citations:


Don’t apply useTheme to this home page layout.

site/docs-devsy-sh app layout wraps content with Provider, not a next-themes ThemeProvider, and there is no shared ThemeProvider usage in the site. This makes useTheme()/setTheme() unavailable and leaves the theme toggle unmapped to setTheme. Move the home-specific theme control into a client component that owns its own theme state or wire a shared ThemeProvider consistently before calling useTheme().

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/app/`(home)/page.tsx at line 84, Replace the home page’s
useTheme/setTheme dependency around the theme toggle with a supported approach:
either move the control into a client component that owns and applies its theme
state, or consistently add and use a shared next-themes ThemeProvider through
the app layout Provider. Ensure the onClick handler is connected to the selected
theme implementation and remove unavailable useTheme usage from the home page.

Comment thread sites/docs-devsy-sh/content/docs/developing-in-workspaces/devcontainer-json.mdx Outdated
Comment on lines +29 to +31
- setup/setup

If none of the previous location are found, Devsy will just link every hidden file (files starting with `.`)
If none of the previous locations are found, Devsy will just link every hidden file (files starting with `.`)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Restore the recognized script/setup path.

setup/setup is not listed as a recognized installer path. Current Devsy documentation and GitHub Codespaces documentation list script/setup instead. (devsy.sh)

With this change, repositories that contain script/setup can fall through to hidden-file linking instead of running their setup script.

Proposed fix
-setup/setup
+script/setup
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- setup/setup
If none of the previous location are found, Devsy will just link every hidden file (files starting with `.`)
If none of the previous locations are found, Devsy will just link every hidden file (files starting with `.`)
- script/setup
If none of the previous locations are found, Devsy will just link every hidden file (files starting with `.`)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/dotfiles-in-a-workspace.mdx`
around lines 29 - 31, Restore the recognized installer path to script/setup in
the documented setup-location list, replacing setup/setup, so repositories using
script/setup are detected and executed before falling back to hidden-file
linking.

Comment thread sites/docs-devsy-sh/content/docs/developing-in-workspaces/inactivity-timeout.mdx Outdated
Comment thread sites/docs-devsy-sh/content/docs/developing-providers/agent.mdx Outdated
Comment thread sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx Outdated
Comment thread sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx Outdated
Comment thread sites/docs-devsy-sh/lib/cn.ts
Comment thread sites/docs-devsy-sh/README.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 16

🧹 Nitpick comments (2)
sites/docs-devsy-sh/app/(home)/page.tsx (1)

485-524: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Add post-submit feedback for the contact form.

The form posts without an action target or client-side handling. After a successful Netlify Forms submission, the user gets no visible confirmation beyond a page reload. Add an action attribute pointing to a thank-you route, or add a client-side submit handler that shows a success state.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/app/`(home)/page.tsx around lines 485 - 524, Add
post-submit feedback to the contact form by setting its action attribute to an
existing thank-you route, or implement client-side submission handling that
displays a clear success state after Netlify accepts the form. Update the form
element identified by name="contact" while preserving its existing Netlify and
honeypot configuration.
sites/docs-devsy-sh/app/(home)/home.css (1)

155-163: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove or apply the unused .nav-link-single CSS rule.

home.css defines .nav-link-single styling for a standalone nav-cta link, but no element in page.tsx uses this class. This indicates either leftover dead CSS from an earlier design iteration, or a missed class assignment on the "Docs" link.

  • sites/docs-devsy-sh/app/(home)/home.css#L155-L163: Remove this rule if it is unused, or apply it as intended.
  • sites/docs-devsy-sh/app/(home)/home.css#L260-L265: Remove the .nav-cta .nav-link-single selector if .nav-link-single is not used, or keep it consistent with the intended element.
  • sites/docs-devsy-sh/app/(home)/page.tsx#L69-L74: If the "Docs" link was meant to be visually distinct in the mobile nav-cta area, move it out of .nav-links and add className="nav-link-single".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/app/`(home)/home.css around lines 155 - 163, Resolve the
unused nav-link-single styling consistently across
sites/docs-devsy-sh/app/(home)/home.css lines 155-163 and 260-265 and
sites/docs-devsy-sh/app/(home)/page.tsx lines 69-74: either remove both CSS
rules when the class is not intended, or move the Docs link out of nav-links in
page.tsx and assign className nav-link-single so both selectors apply to the
intended mobile nav-cta link.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@sites/docs-devsy-sh/app/`(home)/page.tsx:
- Line 84: Replace the home page’s useTheme/setTheme dependency around the theme
toggle with a supported approach: either move the control into a client
component that owns and applies its theme state, or consistently add and use a
shared next-themes ThemeProvider through the app layout Provider. Ensure the
onClick handler is connected to the selected theme implementation and remove
unavailable useTheme usage from the home page.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/devcontainer-json.mdx`:
- Around line 145-149: Update the `devsy workspace up` example in the workspace
devcontainer documentation to explicitly select the SSH provider by adding the
documented `--provider ssh` option, while preserving the existing repository URL
and `--ide=none` arguments.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/dotfiles-in-a-workspace.mdx`:
- Around line 29-31: Restore the recognized installer path to script/setup in
the documented setup-location list, replacing setup/setup, so repositories using
script/setup are detected and executed before falling back to hidden-file
linking.

In
`@sites/docs-devsy-sh/content/docs/developing-in-workspaces/inactivity-timeout.mdx`:
- Line 27: Update the inactivity-timeout documentation paragraph to use “it's”
for the contractions and remove the redundant “again” from “restart the
container again,” while preserving the existing meaning.

In `@sites/docs-devsy-sh/content/docs/developing-providers/agent.mdx`:
- Line 49: Update the path option description in the agent configuration
documentation to state that path controls the remote agent location, while local
execution requires setting local: true; remove the implication that using
${DEVSY} alone selects the local machine.

In `@sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx`:
- Around line 4-13: Update the alt attributes on the two images in the provider
setup instructions so each conveys its distinct screen: provider selection for
add-provider-1.png and provider configuration/add-provider action for
add-provider-2.png. Do not retain the generic “Devsy Flow” text; use empty alt
text only if the adjacent figcaptions fully describe the images.

In `@sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx`:
- Around line 4-15: Update the “Recommended machine requirements” table to
require at least 16GB of host RAM, matching the 8192 MB guest allocation
described in the related VirtualBox walkthrough; keep the other minimum
requirements unchanged.

In `@sites/docs-devsy-sh/content/docs/fragments/virtualbox-ubuntu-22.04.mdx`:
- Line 7: Update the Ubuntu 22.04 ISO download instruction to explicitly state
that this tutorial requires an x86-64 host and guest image, or provide a tested
arm64 VirtualBox installation path instead. Keep the existing Ubuntu 22.04
download guidance aligned with the supported architecture.

In `@sites/docs-devsy-sh/content/docs/managing-machines/manage-machines.mdx`:
- Line 58: Update the description near the machine configuration JSON output to
remove the claim that it is the “full configuration.” State that it prints the
machine configuration, including provider and provider options, with sensitive
values redacted and hidden options omitted.

In `@sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx`:
- Line 12: Correct the spelling in the troubleshooting documentation by
replacing “neccesary” with “necessary” in the explanatory sentence.
- Around line 96-113: Correct the Podman provider guidance in
sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx lines
96-113 and sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx
lines 205-222: remove docker-compose-plugin as the default Option 2, document
only podman-compose or a real docker-compose executable, and update each
verification command to check the provider actually installed.

In `@sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx`:
- Around line 70-74: Update both Podman API service examples in
podman-provider-setup.mdx at lines 70-74 and 187-191 to use a detached or
persistent launcher instead of relying on trailing “&” alone, so the service
survives terminal closure. Retain “--time=0” solely to disable the API
inactivity shutdown timeout.

In
`@sites/docs-devsy-sh/content/docs/tutorials/reduce-build-times-with-cache.mdx`:
- Around line 35-39: Update the containerd verification command in the “Verify
the active storage driver” section to query Docker’s DriverStatus using the
formatted docker info output, rather than grepping the storage driver field.
Keep the check focused on confirming the containerd snapshotter status.

In `@sites/docs-devsy-sh/content/docs/what-is-devsy.mdx`:
- Line 9: Update the img element’s alt text to summarize the workflow
information shown in devsy-flow.gif; if the surrounding content already conveys
it, use an empty alt attribute to mark the image decorative.

In `@sites/docs-devsy-sh/lib/cn.ts`:
- Line 1: Declare cnfast as a direct dependency in the site’s package manifest
so the existing cn re-export remains backed by an explicitly installed package;
alternatively, replace the import in the cn module with an equivalent dependency
already declared by the site.

In `@sites/docs-devsy-sh/README.md`:
- Around line 5-30: Update the Installation, Local Development, Build, and Check
Links headings to level 2, mark each command fence as sh, and remove the leading
$ prompts from the commands while preserving the surrounding documentation.

---

Nitpick comments:
In `@sites/docs-devsy-sh/app/`(home)/home.css:
- Around line 155-163: Resolve the unused nav-link-single styling consistently
across sites/docs-devsy-sh/app/(home)/home.css lines 155-163 and 260-265 and
sites/docs-devsy-sh/app/(home)/page.tsx lines 69-74: either remove both CSS
rules when the class is not intended, or move the Docs link out of nav-links in
page.tsx and assign className nav-link-single so both selectors apply to the
intended mobile nav-cta link.

In `@sites/docs-devsy-sh/app/`(home)/page.tsx:
- Around line 485-524: Add post-submit feedback to the contact form by setting
its action attribute to an existing thank-you route, or implement client-side
submission handling that displays a clear success state after Netlify accepts
the form. Update the form element identified by name="contact" while preserving
its existing Netlify and honeypot configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fa22e096-2a0c-47d8-a1bc-442ee4edd059

📥 Commits

Reviewing files that changed from the base of the PR and between 564708e and 9d54e75.

⛔ Files ignored due to path filters (20)
  • sites/docs-devsy-sh/app/icon.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/package-lock.json is excluded by !**/package-lock.json
  • sites/docs-devsy-sh/public/docs/media/add-provider-1.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/add-provider-2.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_build.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_build_k8s.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_k8s.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_machines.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/c4_workspaces.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/cluster-compatibility.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/devsy-dark.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/devsy-favicon.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/devsy-flow.gif is excluded by !**/*.gif
  • sites/docs-devsy-sh/public/docs/media/devsy-icon.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/devsy-logo-horizontal-dark.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/devsy-logo-horizontal.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/devsy.png is excluded by !**/*.png
  • sites/docs-devsy-sh/public/docs/media/slack.svg is excluded by !**/*.svg
  • sites/docs-devsy-sh/public/docs/media/up_sequence.png is excluded by !**/*.png
  • sites/docs-devsy-sh/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (96)
  • sites/docs-devsy-sh/.gitignore
  • sites/docs-devsy-sh/README.md
  • sites/docs-devsy-sh/app/(home)/home.css
  • sites/docs-devsy-sh/app/(home)/layout.tsx
  • sites/docs-devsy-sh/app/(home)/page.tsx
  • sites/docs-devsy-sh/app/api/search/route.ts
  • sites/docs-devsy-sh/app/docs/[[...slug]]/page.tsx
  • sites/docs-devsy-sh/app/docs/layout.tsx
  • sites/docs-devsy-sh/app/global.css
  • sites/docs-devsy-sh/app/layout.tsx
  • sites/docs-devsy-sh/app/llms-full.txt/route.ts
  • sites/docs-devsy-sh/app/llms.mdx/docs/[[...slug]]/route.ts
  • sites/docs-devsy-sh/app/llms.txt/route.ts
  • sites/docs-devsy-sh/app/og/docs/[...slug]/route.tsx
  • sites/docs-devsy-sh/components/mdx.tsx
  • sites/docs-devsy-sh/components/provider.tsx
  • sites/docs-devsy-sh/components/search.tsx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/connect-to-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/continuous-integration.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/create-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/credentials.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/devcontainer-json.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/dotfiles-in-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/inactivity-timeout.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/mcp-server.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/meta.json
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/prebuild-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/secrets.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/stop-and-delete-a-workspace.mdx
  • sites/docs-devsy-sh/content/docs/developing-in-workspaces/workspace-snapshots.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/agent.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/binaries.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/driver.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/meta.json
  • sites/docs-devsy-sh/content/docs/developing-providers/options.mdx
  • sites/docs-devsy-sh/content/docs/developing-providers/quickstart.mdx
  • sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx
  • sites/docs-devsy-sh/content/docs/fragments/meta.json
  • sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx
  • sites/docs-devsy-sh/content/docs/fragments/virtualbox-ubuntu-22.04.mdx
  • sites/docs-devsy-sh/content/docs/getting-started/install.mdx
  • sites/docs-devsy-sh/content/docs/getting-started/meta.json
  • sites/docs-devsy-sh/content/docs/getting-started/quickstart.mdx
  • sites/docs-devsy-sh/content/docs/getting-started/update.mdx
  • sites/docs-devsy-sh/content/docs/how-it-works/deploying-workspaces.mdx
  • sites/docs-devsy-sh/content/docs/how-it-works/meta.json
  • sites/docs-devsy-sh/content/docs/how-it-works/overview.mdx
  • sites/docs-devsy-sh/content/docs/managing-machines/manage-machines.mdx
  • sites/docs-devsy-sh/content/docs/managing-machines/meta.json
  • sites/docs-devsy-sh/content/docs/managing-machines/what-are-machines.mdx
  • sites/docs-devsy-sh/content/docs/managing-providers/manage-providers.mdx
  • sites/docs-devsy-sh/content/docs/managing-providers/meta.json
  • sites/docs-devsy-sh/content/docs/managing-providers/what-are-providers.mdx
  • sites/docs-devsy-sh/content/docs/meta.json
  • sites/docs-devsy-sh/content/docs/troubleshooting/linux-troubleshooting.mdx
  • sites/docs-devsy-sh/content/docs/troubleshooting/meta.json
  • sites/docs-devsy-sh/content/docs/troubleshooting/troubleshooting.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/docker-provider-via-wsl.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/meta.json
  • sites/docs-devsy-sh/content/docs/tutorials/minikube-vscode-browser.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/podman-provider-setup.mdx
  • sites/docs-devsy-sh/content/docs/tutorials/reduce-build-times-with-cache.mdx
  • sites/docs-devsy-sh/content/docs/what-is-devsy.mdx
  • sites/docs-devsy-sh/docusaurus.config.js
  • sites/docs-devsy-sh/lib/cn.ts
  • sites/docs-devsy-sh/lib/layout.shared.tsx
  • sites/docs-devsy-sh/lib/shared.ts
  • sites/docs-devsy-sh/lib/source.ts
  • sites/docs-devsy-sh/netlify.toml
  • sites/docs-devsy-sh/next.config.mjs
  • sites/docs-devsy-sh/package.json
  • sites/docs-devsy-sh/pages/developing-in-workspaces/delete-a-workspace.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/environment-variables-in-devcontainer-json.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx
  • sites/docs-devsy-sh/pages/developing-providers/driver.mdx
  • sites/docs-devsy-sh/pages/how-it-works/building-workspaces.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploy-k8s.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploy-machines.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploying-workspaces.mdx
  • sites/docs-devsy-sh/pages/managing-providers/remove-provider.mdx
  • sites/docs-devsy-sh/pages/managing-providers/rename-provider.md
  • sites/docs-devsy-sh/pages/managing-providers/set-source.mdx
  • sites/docs-devsy-sh/postcss.config.mjs
  • sites/docs-devsy-sh/public/_redirects
  • sites/docs-devsy-sh/public/index.html
  • sites/docs-devsy-sh/scripts/check-links.mts
  • sites/docs-devsy-sh/sidebars.js
  • sites/docs-devsy-sh/src/components/Highlight/Highlight.js
  • sites/docs-devsy-sh/src/components/Highlight/styles.module.css
  • sites/docs-devsy-sh/src/components/Step/Step.js
  • sites/docs-devsy-sh/src/components/Step/styles.module.css
  • sites/docs-devsy-sh/src/css/custom.css
  • sites/docs-devsy-sh/src/pages/index.js
  • sites/docs-devsy-sh/src/pages/styles.module.css
  • sites/docs-devsy-sh/static/js/custom.js
  • sites/docs-devsy-sh/tsconfig.json
💤 Files with no reviewable changes (23)
  • sites/docs-devsy-sh/content/docs/getting-started/update.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/delete-a-workspace.mdx
  • sites/docs-devsy-sh/pages/managing-providers/rename-provider.md
  • sites/docs-devsy-sh/pages/how-it-works/deploying-workspaces.mdx
  • sites/docs-devsy-sh/pages/how-it-works/building-workspaces.mdx
  • sites/docs-devsy-sh/src/components/Highlight/styles.module.css
  • sites/docs-devsy-sh/docusaurus.config.js
  • sites/docs-devsy-sh/pages/developing-providers/driver.mdx
  • sites/docs-devsy-sh/pages/how-it-works/deploy-k8s.mdx
  • sites/docs-devsy-sh/src/pages/index.js
  • sites/docs-devsy-sh/pages/developing-in-workspaces/environment-variables-in-devcontainer-json.mdx
  • sites/docs-devsy-sh/public/index.html
  • sites/docs-devsy-sh/src/components/Step/styles.module.css
  • sites/docs-devsy-sh/pages/how-it-works/deploy-machines.mdx
  • sites/docs-devsy-sh/pages/managing-providers/remove-provider.mdx
  • sites/docs-devsy-sh/pages/managing-providers/set-source.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx
  • sites/docs-devsy-sh/src/components/Highlight/Highlight.js
  • sites/docs-devsy-sh/src/css/custom.css
  • sites/docs-devsy-sh/src/components/Step/Step.js
  • sites/docs-devsy-sh/src/pages/styles.module.css
  • sites/docs-devsy-sh/static/js/custom.js
  • sites/docs-devsy-sh/sidebars.js
🛑 Comments failed to post (3)
sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx (1)

4-13: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Replace the generic image alternative text.

Both images use alt="Devsy Flow". Screen reader users cannot distinguish the provider-selection screen from the provider-configuration screen. Use specific alternative text for each image, or use empty alt text only if the caption fully provides the needed description.

Proposed fix
-  <img src="/docs/media/add-provider-1.png" alt="Devsy Flow" />
+  <img src="/docs/media/add-provider-1.png" alt="Provider selection screen" />
...
-  <img src="/docs/media/add-provider-2.png" alt="Devsy Flow" />
+  <img src="/docs/media/add-provider-2.png" alt="Provider configuration screen" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

<figure>
  <img src="/docs/media/add-provider-1.png" alt="Provider selection screen" />
  <figcaption>Select Provider</figcaption>
</figure>

After selecting a provider, fill out the options (if necessary) and click on 'Add Provider'

<figure>
  <img src="/docs/media/add-provider-2.png" alt="Provider configuration screen" />
  <figcaption>Add Provider</figcaption>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/content/docs/fragments/add-provider.mdx` around lines 4 -
13, Update the alt attributes on the two images in the provider setup
instructions so each conveys its distinct screen: provider selection for
add-provider-1.png and provider configuration/add-provider action for
add-provider-2.png. Do not retain the generic “Devsy Flow” text; use empty alt
text only if the adjacent figcaptions fully describe the images.
sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx (1)

4-15: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Increase the host memory requirement.

The related walkthrough assigns 8192 MB to the guest VM. A host with only 8GB cannot retain memory for the host OS and VirtualBox. Require host memory above the guest allocation, such as 16GB, or reduce the guest-memory recommendation and align both documents.

🧰 Tools
🪛 LanguageTool

[grammar] ~12-~12: Use a hyphen to join words.
Context: ...imum requirement| |---|---| | CPU | dual core CPU | | RAM | 8GB | | Storage | 30G...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/content/docs/fragments/setup-virtualbox.mdx` around lines
4 - 15, Update the “Recommended machine requirements” table to require at least
16GB of host RAM, matching the 8192 MB guest allocation described in the related
VirtualBox walkthrough; keep the other minimum requirements unchanged.
sites/docs-devsy-sh/content/docs/what-is-devsy.mdx (1)

9-9: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Describe the workflow image in the alt text.

alt="Devsy Flow" does not describe the information in the image. Use alt text that summarizes the workflow, or mark the image as decorative if the surrounding text provides the same information.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sites/docs-devsy-sh/content/docs/what-is-devsy.mdx` at line 9, Update the img
element’s alt text to summarize the workflow information shown in
devsy-flow.gif; if the surrounding content already conveys it, use an empty alt
attribute to mark the image decorative.

@skevetter
skevetter marked this pull request as draft August 3, 2026 17:08
Fixes 13 legitimate findings from a follow-up CodeRabbit review; 3
findings (useTheme lacking a provider ancestor, a dotfiles install
script name, the "39 vs 33 pages" count) were verified against actual
source/wiring and confirmed to be false positives or already correct,
so left unchanged:

- SSH provider example command now passes --provider ssh explicitly.
- Clarified that ${DEVSY} alone doesn't select local execution; the
  separate `local` field does.
- Fixed grammar (its/it's, "an workspace", "neccesary") and redundant
  wording.
- Corrected VirtualBox minimum host RAM (was equal to the guest VM's
  own allocation, leaving no headroom) and flagged the walkthrough as
  x86-64-only.
- Fixed generic alt text on 3 images to describe their actual content.
- Corrected podman-compose guidance: docker-compose-plugin ships a
  Docker CLI subcommand, not the standalone docker-compose binary
  Podman's compose delegation looks for.
- Backgrounded podman system service with setsid/nohup instead of a
  bare `&`, which doesn't survive terminal closure.
- Switched a storage-driver check from grepping docker info's text
  output to querying the structured DriverStatus field.
- Softened an "inspect" command's "full configuration" claim to match
  its actual redacted/hidden-field behavior.
- Declared cnfast as an explicit dependency (was resolving only
  transitively via fumadocs-ui).
- Removed a dead, unused .nav-link-single CSS rule.
- Normalized README.md heading levels, code fence language tags, and
  removed shell-prompt characters from copyable commands.
The original static homepage (public/index.html on main) had a plain
html { scroll-behavior: smooth } rule, which was dropped during the
Fumadocs port since the whole document's <html> is now shared with
the docs pages. Scope it to only apply while the homepage is mounted,
via html:has(.home-page), so nav anchor clicks (#features, #agents,
etc.) animate again without affecting docs-page scrolling.
Trim "Migrating off an abandoned tool like DevPod" to "Migrating off
an abandoned tool" — avoid naming a specific competing tool directly.
@skevetter
skevetter marked this pull request as ready for review August 3, 2026 17:40
@skevetter
skevetter merged commit 6021737 into main Aug 3, 2026
25 of 26 checks passed
@skevetter
skevetter deleted the punchy-lionfish branch August 3, 2026 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant