Skip to content

Beta.28#170

Merged
Adammatthiesen merged 5 commits into
mainfrom
beta.28
Oct 29, 2025
Merged

Beta.28#170
Adammatthiesen merged 5 commits into
mainfrom
beta.28

Conversation

@Adammatthiesen
Copy link
Copy Markdown
Member

@Adammatthiesen Adammatthiesen commented Oct 28, 2025

This pull request removes all TypeDoc-related functionality and dependencies from the project, updates StudioCMS-related packages to use preview builds, and introduces documentation and configuration improvements for the latest StudioCMS release. The changes streamline the codebase by eliminating unused submodules, scripts, and plugins, while also updating documentation for new features and breaking changes.

BEFORE MERGE:

  • Update with real studiocms release versions and not the pkg.pr.new placeholders

TypeDoc and plugin removal:

  • All TypeDoc-related plugins, configuration, and sidebar items have been removed from astro.config.mts, package.json, and knip.config.ts, including custom plugins in src/plugins/frontmatter.js and src/plugins/readmes.js. [1] [2] [3] [4] [5] [6] [7]
  • The studiocms git submodule and setup scripts (.gitmodules, setup-gitmodules.bat, setup-gitmodules.sh) have been removed, reflecting the move away from submodule-based development. [1] [2] [3] [4]

Dependency and configuration updates:

  • StudioCMS and related packages are now sourced from preview builds via pkg.pr.new, and @studiocms/ui is updated to version 1.0.0-beta.3.
  • The deprecated getCoolifyURL utility and its references have been removed; site URL is now set using the DOKPLOY_DEPLOY_URL environment variable. [1] [2]

Documentation improvements:

  • Added comprehensive upgrade documentation for 0.1.0-beta.28, including breaking changes, new features, and bug fixes.
  • Added new documentation for renderer plugins and updated plugin documentation with translation examples and sidebar badges. [1] [2] [3]

Minor configuration changes:

  • Added error code 2345 to the TypeScript twoslash handbook options in ec.config.mjs.
  • Removed the sidebar badge from the previous upgrade guide for 0.1.0-beta.27.

Summary by CodeRabbit

  • Documentation
    • Added upgrade guide for 0.1.0-beta.28 and renderer plugin docs; updated extended plugin docs with translations and badge; removed TypeDoc sections from the sidebar.
  • Configuration
    • Site URL now respects DOKPLOY_DEPLOY_URL when set.
  • Chores
    • Removed StudioCMS submodule and its setup scripts; pruned TypeDoc tooling and related package entries; bumped several @studiocms packages and added a component registry package.

…sion 0.1.0-beta.28

feat: add renderer plugin documentation and examples
- Introduced new renderer plugin capabilities in the documentation.
- Added examples for creating a renderer plugin, including main plugin file, renderer component, and editor component.
- Updated sidebar badges for improved visibility of new content.
@netlify
Copy link
Copy Markdown

netlify Bot commented Oct 28, 2025

Deploy Preview for studiocms-dev-docs ready!

Name Link
🔨 Latest commit 9e225b2
🔍 Latest deploy log https://app.netlify.com/projects/studiocms-dev-docs/deploys/6902947ce414ba0008a0db6f
😎 Deploy Preview https://deploy-preview-170--studiocms-dev-docs.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
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Oct 28, 2025

📝 Walkthrough

Walkthrough

Removes the studiocms git submodule and its setup scripts; deletes TypeDoc configuration and related plugins; removes Coolify URL helpers; updates build/site config to use DOKPLOY_DEPLOY_URL; updates dependencies and adds/edits documentation pages and frontmatter metadata.

Changes

Cohort / File(s) Summary
Submodule & setup scripts
\.gitmodules, setup-gitmodules\.bat, setup-gitmodules\.sh, studiocms
Removes the studiocms submodule entry and deletes the submodule setup scripts; removes the repository submodule pointer.
TypeDoc config & plugins
typedoc.config.ts, src/plugins/frontmatter.js, src/plugins/readmes.js
Deletes the central TypeDoc configuration and two TypeDoc-related plugin files (frontmatter injection and README cleanup), removing their exported helpers and plugin registrations.
Astro/site config
astro.config.mts
Replaces getCoolifyURL usage with environment-driven DOKPLOY_DEPLOY_URL logic for site URL, removes inclusion of typedoc plugin array and removes Typedoc sidebar entries.
Host utilities
hostUtils.ts
Removes getCoolifyURL and all URL normalization helper functions and its default export.
Build / lint config
ec.config.mjs, knip.config.ts
Adds error code 2345 to ec.config.mjs errors array; modifies knip.ignoreDependencies (re-adds @astrojs/db, removes some typedoc plugins from ignore list).
Dependencies
package.json
Bumps @studiocms/* packages to 0.1.0-beta.28, adds @withstudiocms/component-registry@0.1.0-beta.4, updates @studiocms/ui to beta.3, and removes typedoc and related typedoc plugin deps.
Docs — additions
src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-28.mdx, src/content/docs/en/plugins/renderers.mdx
Adds an upgrade guide for 0.1.0-beta.28 and a new renderer plugins documentation page with examples.
Docs — updates
src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-27.mdx, src/content/docs/en/plugins/extended.mdx
Removes a NEW badge from beta-27 guide; adds Updated badge and translation examples in extended plugins doc.
Removed helper scripts / small files
setup-gitmodules\.bat, setup-gitmodules\.sh
Deletes scripts used to initialize submodules.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Astro as Astro Config
  participant Env as Environment
  participant HostUtils as Host Utilities (removed)
  Note over HostUtils: Previously provided getCoolifyURL
  Env->>Astro: DOKPLOY_DEPLOY_URL (new)
  Astro->>Astro: build site URL from DOKPLOY_DEPLOY_URL or default
  note right of Astro #f9f3d7: Typedoc plugins removed\n(no plugin factory call)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Files/areas to examine closely:
    • astro.config.mts — ensure site URL fallback and environment var usage are correct.
    • typedoc.config.ts removal — confirm no other code expects exported typeDocPlugins or helpers.
    • hostUtils.ts removal — identify call sites that may rely on getCoolifyURL.
    • package.json dependency changes — validate CI/build resolution and that removed typedoc deps don’t break docs generation.
    • src/plugins/* deletions — ensure no remaining TypeDoc plugin wiring refers to these.

Possibly related PRs

  • beta.25 docs #160 — edits TypeDoc configuration and studiocms submodule references; strongly related to TypeDoc/submodule changes.
  • Beta.23 #151 — modifies TypeDoc config and docs/sidebar wiring that this PR removes; relevant to sidebar/plugin removal.
  • StudioCMS Beta.16 release docs #73 — touches hostUtils/getCoolifyURL environment logic; relevant to removal of Coolify helpers.

Suggested labels

i18n

Suggested reviewers

  • RATIU5
  • dreyfus92
  • louisescher

Poem

🐰 In burrows neat I hopped and read,

Submodules gone, the old paths shed,
Typedoc scripts I gently cleared,
New docs and badges now appear,
A tidy hop — all changes cheered! 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title Check ❓ Inconclusive The PR title "Beta.28" is a version number without any context describing what actually changed in the changeset. While the PR does involve updating packages to beta.28 versions, the title fails to communicate the primary changes such as the removal of TypeDoc functionality, deletion of the studiocms submodule, removal of related setup scripts, and the deprecation of the getCoolifyURL utility. A teammate scanning the repository history would have no meaningful understanding of what this PR accomplishes based solely on a version number. The title is overly generic and lacks the specificity needed to summarize the main changeset. Consider updating the title to clearly describe the primary changes, such as "Remove TypeDoc and studiocms submodule for beta.28" or "Update to beta.28: remove TypeDoc integration and submodule dependencies." This would give context to the version bump and help reviewers quickly understand the scope and intent of the changeset.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch beta.28

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a32d277 and 9e225b2.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • package.json (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Redirect rules - studiocms-dev-docs
  • GitHub Check: Header rules - studiocms-dev-docs
  • GitHub Check: Pages changed - studiocms-dev-docs
  • GitHub Check: Run Starlight Link Check
🔇 Additional comments (2)
package.json (2)

25-36: Verify studiocms package versions are final before merge.

The PR objectives note that studiocms release versions should be updated and pkg.pr.new placeholders replaced with real versions before merge. The current package.json shows concrete version numbers (0.1.0-beta.28, 1.0.0-beta.3, 0.1.0-beta.4), but please confirm these are the intended final versions and not placeholder values that still need updating.


25-36: Dependency updates align with PR objectives.

The studiocms package family has been consistently updated to version 0.1.0-beta.28, @studiocms/ui has been bumped to 1.0.0-beta.3, and the new @withstudiocms/component-registry at 0.1.0-beta.4 has been added to support component discovery across the StudioCMS ecosystem. These changes align with the stated PR objectives.


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 and usage tips.

@studiocms-no-reply
Copy link
Copy Markdown
Member

studiocms-no-reply commented Oct 28, 2025

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
en/guides/upgrade/version-guides/0-1-0-beta-27.mdx Source changed, localizations will be marked as outdated.
en/guides/upgrade/version-guides/0-1-0-beta-28.mdx Localization added, will be marked as complete.
en/plugins/extended.mdx Source changed, localizations will be marked as outdated.
en/plugins/renderers.mdx Localization added, will be marked as complete.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@Adammatthiesen Adammatthiesen marked this pull request as ready for review October 28, 2025 16:20
@Adammatthiesen Adammatthiesen requested a review from a team as a code owner October 28, 2025 16:20
@coderabbitai coderabbitai Bot added the i18n label Oct 28, 2025
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (8)
src/content/docs/en/plugins/renderers.mdx (5)

12-12: Remove unused import.

ReadMore isn’t used on this page. Drop the import to avoid MDX/TS warnings.

-import ReadMore from '~/components/ReadMore.astro'

24-31: Clean up unused import and add usage guidance.

  • AstroIntegration is unused in this snippet. Remove to reduce noise.
  • Consider adding a short “Register the plugin” snippet for astro.config.mjs so readers know how to enable it.
 import { definePlugin } from 'studiocms/plugins';
 import { createResolver } from 'astro-integration-kit';
-import { AstroIntegration } from 'astro';
 
 const { resolve } = createResolver(import.meta.url);

Add to the doc (outside this block) for clarity:

import studiocms from 'studiocms';
import { myPlugin } from './src/plugins/my-plugin';

export default {
  integrations: [
    studiocms({
      plugins: [myPlugin()],
    }),
  ],
};

41-45: Fix TS/JS mismatch in renderer sample.

The sample is titled “render.js” but uses import type and satisfies, which are TypeScript-only. Either:

  • Rename to .ts and keep the types, and update the reference in the plugin, or
  • Keep .js and switch to JSDoc types without satisfies.

Option A (TypeScript, preferred):

-              rendererComponent: resolve('./components/render.js'),
+              rendererComponent: resolve('./components/render.ts'),
import type { PluginRenderer } from 'studiocms/types';

const render: PluginRenderer = {
  name: 'my-custom-renderer',
  renderer: async (content: string) => {
    return content;
  },
  sanitizeOpts: {},
};

export default render;

Option B (JavaScript with JSDoc):

/** @typedef {import('studiocms/types').PluginRenderer} PluginRenderer */

/** @type {PluginRenderer} */
const render = {
  name: 'my-custom-renderer',
  renderer: async (content) => {
    return content;
  },
  sanitizeOpts: {},
};

export default render;

Also applies to: 57-70


76-83: Use the imported prop type (or remove it).

Currently PluginPageTypeEditorProps is imported but not applied. Either type the destructure or remove the type import.

-import type { PluginPageTypeEditorProps } from 'studiocms/types';
-
-interface Props extends PluginPageTypeEditorProps {}
-
-const { content } = Astro.props;
+import type { PluginPageTypeEditorProps } from 'studiocms/types';
+type Props = PluginPageTypeEditorProps;
+const { content }: Props = Astro.props;

72-75: Minor copy edit for variation.

Replace repeated “you need to” phrasing for style variety.

-For the editor component, you need to create an Astro component that provides a user interface for editing the content of your custom page type.
+For the editor component, create an Astro component that provides a UI for editing your custom page type’s content.
src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-28.mdx (3)

15-16: Remove unused import.

Aside isn’t used on this page.

-import { Aside } from '@astrojs/starlight/components'

21-22: Provide concise migration steps for renderer changes.

Linking to the doc is good; adding a 2–3 step checklist here will reduce friction for plugin authors.

-  <ReadMore>See the [Plugin Renderer Documentation][plugin-renderer-docs] for more details on how to migrate existing renderers to the new system.</ReadMore>
+  <ReadMore>
+    See the [Plugin Renderer Documentation][plugin-renderer-docs]. Migration at a glance:
+    1) Update your plugin hook to use `setRendering({ pageTypes: [...] })`.
+    2) Provide a `rendererComponent` (TS/JS module) and `pageContentComponent` (Astro) per page type.
+    3) If on JS, use JSDoc types instead of TS `satisfies`; if on TS, prefer `.ts` modules.
+  </ReadMore>

32-43: Consistency and capitalization nits.

Unify tense and capitalize proper nouns for polish.

-- Fixes zod error parsing for first-time setup api route responses.
+- Fixes Zod error parsing for first-time setup API route responses.
-- Improve page creation and edit data processing for better consistency and reliability.
-- Move avatar loading to client-side to eliminate render blocking.
+- Improves page creation and edit data processing for better consistency and reliability.
+- Moves avatar loading to client-side to eliminate render blocking.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8c9322d and a32d277.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (16)
  • .gitmodules (0 hunks)
  • astro.config.mts (1 hunks)
  • ec.config.mjs (1 hunks)
  • hostUtils.ts (0 hunks)
  • knip.config.ts (1 hunks)
  • package.json (1 hunks)
  • setup-gitmodules.bat (0 hunks)
  • setup-gitmodules.sh (0 hunks)
  • src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-27.mdx (0 hunks)
  • src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-28.mdx (1 hunks)
  • src/content/docs/en/plugins/extended.mdx (2 hunks)
  • src/content/docs/en/plugins/renderers.mdx (1 hunks)
  • src/plugins/frontmatter.js (0 hunks)
  • src/plugins/readmes.js (0 hunks)
  • studiocms (0 hunks)
  • typedoc.config.ts (0 hunks)
💤 Files with no reviewable changes (9)
  • .gitmodules
  • studiocms
  • src/plugins/frontmatter.js
  • setup-gitmodules.sh
  • hostUtils.ts
  • src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-27.mdx
  • src/plugins/readmes.js
  • setup-gitmodules.bat
  • typedoc.config.ts
🧰 Additional context used
🪛 LanguageTool
src/content/docs/en/plugins/renderers.mdx

[style] ~74-~74: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...omponent For the editor component, you need to create an Astro component that provides...

(REP_NEED_TO_VB)

🔇 Additional comments (8)
src/content/docs/en/plugins/extended.mdx (3)

7-9: Sidebar badge appropriately added.

The "Updated" badge with "success" variant correctly indicates this documentation section has been refreshed. The YAML syntax is proper and placement is correct.


95-108: Translation structure is well-designed and exemplary.

The translations object demonstrates solid i18n practices: clear language-scoped structure (en, fr), parallel keys between translations, and alignment with the dashboard grid item identifier ('example' on line 116). The nested structure with kebab-case property names ('other-text') follows convention. This is a helpful example for developers implementing multi-language plugin dashboards.


1-5: Verify i18nReady flag consistency.

Line 2 declares i18nReady: true, and the documentation now includes translation examples. Confirm that this flag accurately reflects the page's translation-ready state and that localized versions will be properly tracked in Lunaria (as noted in the PR comments about localization updates).

ec.config.mjs (1)

15-15: LGTM!

The addition of TypeScript error code 2345 (argument type mismatch) to the handbook options is appropriate and expands error handling coverage for the twoslash plugin.

knip.config.ts (1)

24-24: LGTM!

The re-addition of @astrojs/db to ignoreDependencies is appropriate, and the removal of TypeDoc-related plugins aligns with the broader TypeDoc cleanup in this PR.

package.json (2)

36-36: LGTM!

The version update for @studiocms/ui from 1.0.0-beta.1 to 1.0.0-beta.3 is appropriate for the beta.28 release.


25-34: Verify whether pkg.pr.new dependencies are intended for merge to main or temporary branch testing.

The review concern is technically sound: pkg.pr.new publishes temporary preview package releases for commits/PRs, typically used in CI/workflows to test unreleased code before npm publishing. All 11 dependencies (10 @studiocms packages + @lunariajs/core) point to commit hash af43330, which will expire.

However, context shows:

  • This is on review branch coderabbit_170 (not main)
  • Project is in active beta (0.1.0-beta.28)
  • Other dependencies use semantic versioning (e.g., @studiocms/ui@1.0.0-beta.3)

Confirm whether these preview URLs are intended for a permanent merge or temporary testing. If merging to main, ensure a documented plan exists to replace them with published npm versions before release.

astro.config.mts (1)

13-15: No changes needed - code is correctly implemented.

The code properly handles the DOKPLOY_DEPLOY_URL environment variable with an appropriate fallback. DOKPLOY_DEPLOY_URL is automatically provided by Dokploy's platform in preview deployment environments and does not require manual configuration in .env files. The ternary operator correctly uses this variable when available and falls back to the StudioCMS documentation URL otherwise, covering all deployment scenarios (Dokploy preview deployments, local development, and production environments).

Likely an incorrect or invalid review comment.

Comment thread src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-28.mdx
@coderabbitai coderabbitai Bot added the i18n label Oct 29, 2025
@Adammatthiesen Adammatthiesen merged commit dd5fdd9 into main Oct 29, 2025
12 checks passed
@Adammatthiesen Adammatthiesen deleted the beta.28 branch October 29, 2025 22:31
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.

5 participants