Conversation
rjbeers
commented
May 29, 2026
- Minimal Astro 5 → Astro 6 conversion
- Latest devlink updates
…nk features - Updated webflow.json to adjust root directory and add telemetry settings. - Refactored index.astro to replace webflow component imports with standard HTML elements. - Introduced new DevLinkProvider and IX3Provider components for improved interactions. - Added utility functions and styles for better component integration. - Created new CSS files for global styles, variables, and normalization.
- Removed options object from the anchor tag in index.astro for cleaner code. - Directly set the href attribute for improved readability.
The homepage in src/pages/index.astro imported Section, Container, Block, and Link from ../../devlink/_Builtin/Basic. Those files are user-generated by the DevLink export (which runs automatically after init), so a fresh clone failed to build. This swap to native section/div/a elements lets the project build out of the box, with styles kept in the existing <style> block. Layout.astro still imports DevLinkProvider and global.css from the devlink directory — those resolve correctly once the auto-run export populates ./devlink. Mirrors the equivalent change to the Next.js scaffold in webflow/webflow-cli#589 and Webflow-Examples/hello-world-nextjs-devlink#2. Also updated the docs link to /data-clients/docs/getting-started.
webflow.json's active config is `devlink-export.rootDir: "./webflow"`, so the export populates ./webflow/ (project root), not ./devlink/. The legacy `devlink` block is unused. Update Layout.astro to import from the correct path: - DevLinkProvider: ../../webflow/DevLinkProvider - global.css: ../../webflow/css/global.css Also update the example-import hint in index.astro to match.
- Deleted telemetry section from webflow.json for a cleaner configuration. - Ensured the file maintains proper structure and formatting.
Drops the <style> block and inlines the equivalent styles directly on the section, heading, paragraph, and link elements. Matches the inline- style convention used for the same fix in hello-world-nextjs-devlink#2.
… setting - Removed the treeShake setting from webflow.json for a more streamlined configuration. - Maintained the overall structure and formatting of the file.
The exported global.css wraps every rule in @scope (.wf-devlink-<hash>), so without an ancestor carrying that class, normalize and Webflow defaults never match. DevLinkProvider is a React Context provider and doesn't render any DOM wrapper, so the scope class was effectively unreachable for native HTML in the page. Imports DEVLINK_SCOPE_CLASS from the generated webflow/devlinkScope.ts and applies it to <body>, so Webflow's normalize + defaults now cover the whole page (including native HTML elements). The constant updates automatically on each re-export, so the hash stays in sync.
- Added detailed steps for installing and configuring the Webflow CLI. - Included commands for logging in, installing dependencies, and syncing Webflow components. - Provided a link to the DevLink documentation for further reference.
- Deleted unused CSS files related to the previous DevLink configuration. - Updated the DEVLINK_SCOPE_CLASS in devlinkScope.js to use a placeholder for site ID. - Cleaned up global CSS imports to reflect the removal of obsolete styles.
CSS @scope matches descendants of the scope-root, not the scope-root itself. With the class on <body>, rules like `body { background-color }` inside @scope (.wf-devlink-<hash>) never matched body (body IS the scope-root) — so body-level Webflow defaults (background, font-family, font-size, color) never applied. Moving the class to <html> makes body a descendant of the scope-root, so all body and below selectors inside the scope now match. Verified locally: `body` now picks up Arial 14px / #333 / #fff background from defaults.css.
Mirrors the dark-mode handling in the Next.js scaffold's globals.css. Without this, body falls back to Webflow defaults (background #fff, color #333) even when the OS is in dark mode, so the page stays light while the Next.js sibling switches to a dark background. Adds --background / --foreground custom properties on :root with a prefers-color-scheme: dark override, and applies them to body.
…omponent-imports CLD-1736: Replace DevLink _Builtin imports with native HTML
- Eliminated the DEVLINK_SCOPE_CLASS import and its application to the <html> tag. - This change simplifies the layout structure while maintaining the necessary Webflow styles through global CSS.
- Deleted multiple unused files including DevLinkProvider, IX3Provider, and associated utility modules. - Cleaned up global CSS and font management components to streamline the project structure. - This removal enhances maintainability by eliminating legacy code and unused dependencies.
Migrate hello-world-astro-devlink to DevLink v2 export
Minimal Astro 5 → Astro 6 conversion: - package.json: bump astro to ^6.1.4, @astrojs/cloudflare to ^13.5.0, @astrojs/react to ^5.0.0. Add engines.node >=22.12.0 and overrides.vite ^7 (Astro 6 + @cloudflare/vite-plugin require vite v7). - wrangler.json: drop the `main` field (@cloudflare/vite-plugin@1.37+ validates main as an existing file before build runs; the plugin computes the entry itself for Astro 6 SSR output). Point assets.directory at ./dist/client to match the Astro 6 output layout. webflow.json#devlink stays unchanged — the devlink integration config is orthogonal to the Astro version bump.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 447f1cf1b2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "@astrojs/cloudflare": "^13.5.0", | ||
| "@astrojs/react": "^5.0.0", | ||
| "@types/react": "^19.1.2", | ||
| "@types/react-dom": "^19.1.2", | ||
| "astro": "^5.17.2", | ||
| "astro": "^6.1.4", |
There was a problem hiding this comment.
Update the lockfile with the Astro 6 dependency graph
These dependency bumps are not accompanied by a package-lock.json update; the committed lockfile still records the root package as @astrojs/cloudflare ^12.6.6, @astrojs/react ^4.2.5, and astro ^5.17.2. In clean Webflow/CI deployments that install from the lockfile with npm ci, the install is no longer reproducible for the Astro 6 scaffold and will have to resolve missing v13/v5/v6 package entries instead of using the committed dependency graph, which can block or skew builds. Please regenerate and commit the lockfile together with these version changes.
Useful? React with 👍 / 👎.