Skip to content

Add acronis accelerate event#16

Merged
il10241024 merged 3 commits into
constructorfabric:mainfrom
webmastercu:add-acronis-accelerate-event
Jul 21, 2026
Merged

Add acronis accelerate event#16
il10241024 merged 3 commits into
constructorfabric:mainfrom
webmastercu:add-acronis-accelerate-event

Conversation

@webmastercu

@webmastercu webmastercu commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

What changed

Pages to review

  • index.html
  • foundation.html
  • elements.html
  • learn.html
  • participate.html
  • privacy-policy.html
  • 404.html
  • styles.css
  • partials.jsx
  • assets/
  • Other:

Preview

A preview URL will be posted automatically by GitHub Actions after CI succeeds. The format is:

https://constructorfabric.github.io/website-previews/pr-<NUMBER>/

If you do not see a preview URL on this PR within a few minutes of pushing, see docs/pr-preview-process.md for troubleshooting.

Screenshots

Required for visual changes. Optional for text-only changes.

Desktop:

Mobile:

Checklist

  • I checked the site locally (Live Preview extension or python3 -m http.server)
  • I listed every affected page above
  • I added screenshots for visual changes
  • I avoided unrelated formatting changes
  • I followed the banned-words and no-emojis conventions in CONTRIBUTING.md

Summary by CodeRabbit

  • New Features

    • Added an Acronis Accelerate event landing page with event details, learning benefits, roadmap, FAQs, and registration calls to action.
    • Added the event to the Learn course grid.
  • Bug Fixes

    • Updated header and footer links to use reliable root-relative destinations, improving navigation across pages.

webmastercu and others added 2 commits July 21, 2026 09:21
New campaign page at learn/acronis-accelerate-event.html for the July
30 live Acronis Accelerate event, reusing existing design-system
components/colors only. Adds a matching tile on learn.html.

Also fixes SiteHeader/SiteFooter nav links in partials.jsx to be
root-absolute rather than page-relative, so they resolve correctly
from pages nested one directory deep (e.g. learn/*.html).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
utm_source=constructor, utm_medium=referral,
utm_campaign=FY26-Q3-constructorfabric-lp

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

Next review available in: 49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0fc5dba5-d2fb-4f5a-8501-fc6090966150

📥 Commits

Reviewing files that changed from the base of the PR and between bffedbd and f5fab95.

📒 Files selected for processing (2)
  • learn/acronis-accelerate-event.html
  • partials.jsx
📝 Walkthrough

Walkthrough

Changes

Acronis event experience

Layer / File(s) Summary
Event page foundation
learn/acronis-accelerate-event.html
Adds the HTML metadata, styling, shared layout root, reusable React helpers, React mounting, and hash-based scrolling.
Event page content composition
learn/acronis-accelerate-event.html
Composes the event hero, learning sections, roadmap, FAQ, CTAs, header, and footer.
Learn-page event entry
learn.html
Adds ElementLinkCard and links a new Acronis Accelerate card to the event page.
Root-relative site navigation
partials.jsx
Updates header and footer destinations to root-relative URLs.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: vzhuman

Sequence Diagram(s)

sequenceDiagram
  participant Visitor
  participant LearnPage
  participant EventPage
  participant ReactComponents
  Visitor->>LearnPage: select Acronis Accelerate card
  LearnPage->>EventPage: navigate to event URL
  EventPage->>ReactComponents: render event sections and CTAs
  ReactComponents->>Visitor: display landing page and registration links
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is only the template and does not describe the changes, affected pages, or review details. Fill in What changed, list the affected pages, and add screenshots/checklist items relevant to the new event page and link updates.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the main change: adding the Acronis Accelerate event page.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@constructorfabric

Copy link
Copy Markdown

Preview deployment is ready:

https://constructorfabric.github.io/website-previews/pr-16/

This preview is built from the latest commit on this PR. It is regenerated automatically on every push. Old previews are cleaned up after 30 days.

@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: 2

🧹 Nitpick comments (2)
learn.html (1)

122-126: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Align link with root-absolute path strategy.

Using a relative path here works correctly if the current page is strictly accessed as /learn.html. However, to align with the PR objective of using root-absolute paths for robust resolution across nested configurations (e.g., in case of URL rewriting like /learn/), consider using an absolute path from the root.

♻️ Proposed fix
                 <ElementLinkCard
                   title="Acronis Accelerate: The Journey to Autonomous IT"
                   body="Join a live virtual event where Constructor Fabric is introduced as part of Acronis's Autonomous IT platform — learn to build applications with AI, qualify for free dev infrastructure, and reach a market of 500 million SMBs."
-                  href="learn/acronis-accelerate-event.html"
+                  href="/learn/acronis-accelerate-event.html"
                   linkLabel="Learn more →" />
🤖 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 `@learn.html` around lines 122 - 126, Update the href on the ElementLinkCard
for “Acronis Accelerate: The Journey to Autonomous IT” to use a root-absolute
path, preserving the existing destination while ensuring it resolves correctly
from nested or rewritten URLs.
learn/acronis-accelerate-event.html (1)

23-23: 🚀 Performance & Scalability | 🔵 Trivial

Consider pre-compiling JSX for production.

Using @babel/standalone to transpile JSX natively in the browser is convenient for prototyping but introduces a major performance bottleneck for real users. Visitors have to download a ~2MB Babel compiler and wait for their browser to parse and compile the JSX before the page can render.

If this landing page is meant for production traffic, consider using a build step (like Vite, Webpack, or a simple Babel CLI script) to pre-compile the React components so you can serve static JavaScript.

🤖 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 `@learn/acronis-accelerate-event.html` at line 23, Replace the browser-side
`@babel/standalone` dependency in the landing page with a production build step
that pre-compiles the JSX and serves the resulting static JavaScript. Update the
page to load the compiled bundle instead of relying on Babel to transpile JSX at
runtime, while preserving the existing React component behavior.
🤖 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 `@learn/acronis-accelerate-event.html`:
- Around line 261-266: Update the location.hash handling in the setTimeout
callback to retrieve the target with document.getElementById instead of
document.querySelector, using the hash value without its leading #. Preserve the
existing conditional scrollIntoView behavior when a matching element is found.
- Around line 21-22: Replace the development React and ReactDOM CDN scripts in
the page’s script includes with the corresponding production.min.js builds,
updating each integrity hash to match the production asset while preserving
defer and crossorigin attributes.

---

Nitpick comments:
In `@learn.html`:
- Around line 122-126: Update the href on the ElementLinkCard for “Acronis
Accelerate: The Journey to Autonomous IT” to use a root-absolute path,
preserving the existing destination while ensuring it resolves correctly from
nested or rewritten URLs.

In `@learn/acronis-accelerate-event.html`:
- Line 23: Replace the browser-side `@babel/standalone` dependency in the landing
page with a production build step that pre-compiles the JSX and serves the
resulting static JavaScript. Update the page to load the compiled bundle instead
of relying on Babel to transpile JSX at runtime, while preserving the existing
React component behavior.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 53a5f6ba-ab7b-4275-ade3-0e2ff6022538

📥 Commits

Reviewing files that changed from the base of the PR and between 64d092c and bffedbd.

📒 Files selected for processing (3)
  • learn.html
  • learn/acronis-accelerate-event.html
  • partials.jsx

Comment on lines +21 to +22
<script defer src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
<script defer src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚀 Performance & Scalability | 🟠 Major | ⚡ Quick win

Use React production builds for public-facing environments.

The development.js versions of React and ReactDOM are significantly larger, slower, and will expose development warnings in the browser console. For a public landing page, these should be replaced with the optimized production.min.js versions.

⚡ Proposed fix
-<script defer src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
-<script defer src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
+<!-- Note: Ensure you update or temporarily remove the integrity attributes, as the production file hashes will differ. -->
+<script defer src="https://unpkg.com/[email protected]/umd/react.production.min.js" crossorigin="anonymous"></script>
+<script defer src="https://unpkg.com/[email protected]/umd/react-dom.production.min.js" crossorigin="anonymous"></script>
📝 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
<script defer src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
<script defer src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
<!-- Note: Ensure you update or temporarily remove the integrity attributes, as the production file hashes will differ. -->
<script defer src="https://unpkg.com/[email protected]/umd/react.production.min.js" crossorigin="anonymous"></script>
<script defer src="https://unpkg.com/[email protected]/umd/react-dom.production.min.js" crossorigin="anonymous"></script>
🤖 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 `@learn/acronis-accelerate-event.html` around lines 21 - 22, Replace the
development React and ReactDOM CDN scripts in the page’s script includes with
the corresponding production.min.js builds, updating each integrity hash to
match the production asset while preserving defer and crossorigin attributes.

Comment on lines +261 to +266
if (location.hash) {
setTimeout(() => {
const el = document.querySelector(location.hash);
if (el) el.scrollIntoView();
}, 0);
}

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 | 🟡 Minor | ⚡ Quick win

Prevent SyntaxError from invalid CSS selectors in location.hash.

If the URL hash contains a value that starts with a number (e.g., #1) or includes special characters, document.querySelector will throw a SyntaxError because it treats the input as a CSS selector. Using document.getElementById bypasses CSS syntax rules and is the safer standard approach for fetching elements by ID.

🛠️ Proposed fix
     if (location.hash) {
       setTimeout(() => {
-        const el = document.querySelector(location.hash);
+        const el = document.getElementById(location.hash.slice(1));
         if (el) el.scrollIntoView();
       }, 0);
     }
📝 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
if (location.hash) {
setTimeout(() => {
const el = document.querySelector(location.hash);
if (el) el.scrollIntoView();
}, 0);
}
if (location.hash) {
setTimeout(() => {
const el = document.getElementById(location.hash.slice(1));
if (el) el.scrollIntoView();
}, 0);
}
🤖 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 `@learn/acronis-accelerate-event.html` around lines 261 - 266, Update the
location.hash handling in the setTimeout callback to retrieve the target with
document.getElementById instead of document.querySelector, using the hash value
without its leading #. Preserve the existing conditional scrollIntoView behavior
when a matching element is found.

The PR preview build injects <base href="/website-previews/pr-N/">
so plain relative links resolve under that path regardless of a
page's own nesting. That broke this page in two ways:

- learn/acronis-accelerate-event.html referenced ../styles.css,
  ../partials.jsx, and ../assets/img/favicon.svg, which resolve
  correctly with no base tag (production) but escape one directory
  too far once a base tag is present (preview) -- this crashed the
  page entirely in the PR preview (partials.jsx never loaded).
- partials.jsx's nav/brand/footer links were hardcoded to a leading
  "/", correct in production but wrong under the preview base tag
  (which needs bare relative filenames instead).

Both now detect base-tag presence at runtime and choose the right
form so the same source works in production and in preview, from any
page depth.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@constructorfabric

Copy link
Copy Markdown

Preview deployment is ready:

https://constructorfabric.github.io/website-previews/pr-16/

This preview is built from the latest commit on this PR. It is regenerated automatically on every push. Old previews are cleaned up after 30 days.

@il10241024
il10241024 merged commit 1f6c40d into constructorfabric:main Jul 21, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants