Skip to content

Conversation

@Gowiem
Copy link
Member

@Gowiem Gowiem commented Oct 29, 2025

what

why

  • Reworking following our recent marketing changes

references

  • N/A

Summary by CodeRabbit

  • New Features

    • Added multiple new homepage sections (Efficient Platforms, Turn Chaos, Make Infrastructure) and three-step workflow pages (Audit, Innovate, Operate)
  • Style

    • New gradient buttons, numbered-list markers, decorative gradients/overlays, and refined responsive spacing for many sections
  • Documentation

    • Updated hero banner messaging, CTAs (including "Book A Call"), banner link additions, and content/ordering tweaks across home sections

@Gowiem Gowiem requested a review from a team as a code owner October 29, 2025 23:10
@netlify
Copy link

netlify bot commented Oct 29, 2025

Deploy Preview for masterpoint ready!

Name Link
🔨 Latest commit 224eb0a
🔍 Latest deploy log https://app.netlify.com/projects/masterpoint/deploys/6904ee1df7294c00084ac548
😎 Deploy Preview https://deploy-preview-85--masterpoint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 35
Accessibility: 86
Best Practices: 100
SEO: 79
PWA: 70
View the detailed breakdown and full score reports

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 29, 2025

Walkthrough

Homepage and styling updates: new CSS components and visual refinements; new content sections and step definitions; banner copy and CTA adjusted; templates updated to render steps (shortcode) and simplified banner CTA markup.

Changes

Cohort / File(s) Summary
CSS Styling
assets/css/custom.scss
Added .numbered-list, .btn-gradient, .rowLinks; new platform/banner/footer blocks (#turn-chaos-operations, .audit-home-tile, .platform-row, .platform-tile, #make-infrastructure, #efficient-platforms); many layout, spacing, responsive and decorative gradient/overlay adjustments; removed .serviceBadge and moved some decorative before-elements to .serviceIcon.
Homepage Content & Messaging
content/_index.md
Rewrote hero: banner_title, banner_tagline, banner_text; CTA changed to "Book A Call" and added "Audit Your IaC →" link; minor front-matter/formatting adjustments.
New Homepage Sections
content/sections/home-efficient-platforms.md, content/sections/home-make-infrastructure.md, content/sections/home-turn-chaos.md
Added three new sections: Efficient Platforms (three tiles), Make Infrastructure (workshop/Workflow Library), Turn Chaos into Reliable Operations (audit highlight + CTA).
Homepage Section Updates
content/sections/home-join-clients.md, content/sections/home-our-word.md, content/sections/home-specialized-services.md, content/sections/home-what-is-masterpoint.md
Adjusted home-join-clients.md layout (added col-xl-6) and weight (3→1) and text styling; changed home-our-word.md weight 4→5; marked home-specialized-services.md and home-what-is-masterpoint.md as draft: true.
Step Definitions
content/steps/audit.md, content/steps/innovate.md, content/steps/operate.md
Added three step files with front-matter: Audit, Innovate, Operate (titles, descriptions, weights, icons).
Template Rendering (Banner)
layouts/index.html
Moved tagline after title, adjusted banner title fallback logic, replaced div.bannerBtn/div.bannerLink with direct anchor CTAs (.btn-gradient / .btn-outline-gradient), removed signup-section partial; minor structural/whitespace changes.
Shortcode Logic
layouts/shortcodes/services.html
Switched data source from services to steps; changed grid from md-6 to md-4 (3-column); always render .serviceIcon container, moved conditional icon inside; removed serviceBadge; use home_title fallback and .homeServiceTitle class; use .Params.home_description for descriptions.

Sequence Diagram(s)

sequenceDiagram
  participant Template as layouts/index.html
  participant Shortcode as layouts/shortcodes/services.html
  participant Content as content/*
  participant Browser as Client

  Note over Template, Shortcode: New flow - homepage renders with steps and updated CTA

  Template->>Content: load page front-matter (banner_title, banner_tagline, banner_btn, links)
  Template->>Shortcode: render services shortcode (now sources `steps`)
  Shortcode->>Content: query content where type == "steps"
  Shortcode->>Shortcode: build 3-column grid, use `home_title` / `home_description`
  Template->>Browser: emit banner (title → tagline → CTA anchors)
  Shortcode->>Browser: emit platform/step tiles (icons, titles, descriptions)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Pay attention to:
    • assets/css/custom.scss — many visual rules and responsive adjustments that can overlap or conflict; test across breakpoints.
    • layouts/shortcodes/services.html — data source change (servicessteps) and field fallbacks (home_title, .Params.home_description) may affect rendered content.
    • layouts/index.html — CTA markup changes and removal of signup-section partial; verify accessibility and link targets.
    • New content files — ensure front-matter weights and draft flags produce intended ordering and visibility.

Suggested reviewers

  • gberenice
  • oycyc

Pre-merge checks and finishing touches

❌ 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%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The PR title "feat: homepage rework from @kristopherray" directly and accurately describes the primary change in the changeset. The PR objectives confirm that the purpose is "reworking the homepage following recent marketing changes," and the raw summary demonstrates comprehensive homepage updates including new CSS components, content sections, step definitions, and layout template modifications. The title is concise, specific, and clearly communicates the main change—a developer scanning the history would immediately understand that this PR contains a homepage redesign effort.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/homepage-rework-kris

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.

Copy link
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: 7

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 56d0d21 and c90232c.

⛔ Files ignored due to path filters (5)
  • static/img/bg_audit_home.png is excluded by !**/*.png
  • static/img/bg_make_infrastructure.png is excluded by !**/*.png
  • static/img/noun-cycle-7222105.svg is excluded by !**/*.svg
  • static/img/noun-developer-7187679.svg is excluded by !**/*.svg
  • static/img/noun-reduction-7894266.svg is excluded by !**/*.svg
📒 Files selected for processing (14)
  • assets/css/custom.scss (14 hunks)
  • content/_index.md (1 hunks)
  • content/sections/home-efficient-platforms.md (1 hunks)
  • content/sections/home-join-clients.md (1 hunks)
  • content/sections/home-make-infrastructure.md (1 hunks)
  • content/sections/home-our-word.md (1 hunks)
  • content/sections/home-specialized-services.md (1 hunks)
  • content/sections/home-turn-chaos.md (1 hunks)
  • content/sections/home-what-is-masterpoint.md (1 hunks)
  • content/steps/audit.md (1 hunks)
  • content/steps/innovate.md (1 hunks)
  • content/steps/operate.md (1 hunks)
  • layouts/index.html (4 hunks)
  • layouts/shortcodes/services.html (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
content/**/*.md

📄 CodeRabbit inference engine (CLAUDE.md)

content/**/*.md: Place all site content in Markdown files under /content/
Use absolute URLs in content (paths should start with "/", e.g., /blog/ not blog/)
Reference images in content using the /img/ path (which maps to /static/img/)
Use front matter draft: true to hide in-progress content from production
Use provided Hugo shortcodes (button, buttonout, form, testimonials, faqs, team, services, process, supports, client-logos) in content instead of duplicating HTML

Files:

  • content/sections/home-efficient-platforms.md
  • content/steps/operate.md
  • content/steps/innovate.md
  • content/sections/home-make-infrastructure.md
  • content/sections/home-what-is-masterpoint.md
  • content/sections/home-specialized-services.md
  • content/_index.md
  • content/sections/home-turn-chaos.md
  • content/sections/home-our-word.md
  • content/steps/audit.md
  • content/sections/home-join-clients.md
🧠 Learnings (3)
📚 Learning: 2025-08-11T18:01:10.378Z
Learnt from: westonplatter
PR: masterpointio/masterpoint.io#73
File: content/blog/ai-meets-tf-prompt-strategies-for-test-generation.md:2-3
Timestamp: 2025-08-11T18:01:10.378Z
Learning: For the masterpointio/masterpoint.io repository, blog post visibility is controlled by the publish date rather than the draft flag in the front matter. The draft flag can be set to false even for unpublished posts, as the publish date determines when content becomes visible.

Applied to files:

  • content/sections/home-what-is-masterpoint.md
📚 Learning: 2025-09-19T19:21:07.260Z
Learnt from: CR
PR: masterpointio/masterpoint.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-09-19T19:21:07.260Z
Learning: Applies to content/**/*.md : Use front matter draft: true to hide in-progress content from production

Applied to files:

  • content/sections/home-what-is-masterpoint.md
  • content/sections/home-specialized-services.md
📚 Learning: 2025-09-19T19:21:07.260Z
Learnt from: CR
PR: masterpointio/masterpoint.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-09-19T19:21:07.260Z
Learning: Applies to assets/css/style.scss : Place custom styles in assets/css/style.scss (requires Hugo Extended for SCSS compilation)

Applied to files:

  • assets/css/custom.scss
🪛 GitHub Check: Trunk Check
content/sections/home-efficient-platforms.md

[notice] 21-21: markdownlint(MD045)
[new] Images should have alternate text (alt text)


[notice] 30-30: markdownlint(MD045)
[new] Images should have alternate text (alt text)


[notice] 39-39: markdownlint(MD045)
[new] Images should have alternate text (alt text)


[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

content/steps/operate.md

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

content/steps/innovate.md

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

content/sections/home-make-infrastructure.md

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

content/sections/home-turn-chaos.md

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

content/steps/audit.md

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

🪛 LanguageTool
content/steps/operate.md

[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: Platform Engineering as a Service title: Operate description: >- Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward. weight: 3 icon: /img/services/icon_engineering.svg ---

(QB_NEW_DE)

content/steps/innovate.md

[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: Innovate description: >- Our team tackles the heavy lifting, turning recommendations into real platform improvements. weight: 2 icon: /img/services/icon_masterpoint.svg ---

(QB_NEW_DE)

content/steps/audit.md

[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: Audit description: >- Uncover the inefficiencies in your platform and get practical recommendations to fix them. weight: 1 icon: /img/services/icon_assessment.svg ---

(QB_NEW_DE)

🪛 markdownlint-cli2 (0.18.1)
content/sections/home-efficient-platforms.md

21-21: Images should have alternate text (alt text)

(MD045, no-alt-text)


30-30: Images should have alternate text (alt text)

(MD045, no-alt-text)


39-39: Images should have alternate text (alt text)

(MD045, no-alt-text)

⏰ 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). (3)
  • GitHub Check: Redirect rules - masterpoint
  • GitHub Check: Header rules - masterpoint
  • GitHub Check: Pages changed - masterpoint
🔇 Additional comments (17)
content/sections/home-specialized-services.md (1)

1-19: Verify draft status is intentional.

Line 8 marks this entire "Get support at every level" section as draft, which will hide it from the production homepage. Confirm this is intentional—is this section temporarily disabled during the rework, or permanently removed from the new design?

content/sections/home-what-is-masterpoint.md (1)

1-18: Verify draft status for core "who we are" section.

Line 8 marks the "What is Masterpoint?" section as draft, which will hide this foundational company introduction from the production homepage. This appears to be core content—confirm this is intentional and not an accidental suppression during the rework.

content/sections/home-our-word.md (1)

1-14: LGTM.

Weight adjustment is consistent with the homepage section reordering strategy. Shortcode usage is appropriate.

content/steps/innovate.md (1)

1-7: Front matter structure is correct.

The step definition follows Hugo conventions and image path uses the correct absolute URL format per guidelines. Run trunk fmt to auto-fix the prettier formatting notice.

content/steps/audit.md (1)

1-7: LGTM.

Front matter structure follows Hugo conventions correctly, and image path uses the proper absolute URL format per guidelines. Run trunk fmt to auto-fix the prettier formatting notice.

content/sections/home-join-clients.md (1)

1-17: LGTM.

The weight adjustment is consistent with the homepage section reordering, and the updated responsive breakpoint (col-xl-6) and content refinements align well with the design rework objectives. The use of the provided client-logos shortcode is appropriate per guidelines.

content/sections/home-make-infrastructure.md (1)

17-17: Verify placeholder link destination.

The CTA button links to /#, which appears to be a placeholder. Confirm this is the intended destination or update to the actual URL. Based on the coding guidelines, all site links should use absolute URLs starting with "/".

layouts/index.html (2)

21-25: ✓ Tagline rendering properly conditional.

The bannerTagline block is correctly wrapped in a conditional check for .Params.banner_tagline, which prevents rendering errors if the field is not present in front matter.


29-35: Button markup refactoring verified; CSS styling is complete and responsive.

The .rowLinks CSS definition correctly implements:

  • Flex layout with center alignment for desktop
  • Responsive stacking (flex-direction: column) at 575px
  • Appropriate button margins across all viewports (1.4em desktop, 0.7em at 767px, 10px at 575px)

The simplified anchor structure is well-supported by the CSS, and all concerns regarding flex layout, responsive behavior, and button styling are properly addressed.

content/_index.md (2)

3-3: HTML in front matter properly sanitized in templates.

The banner_title contains inline HTML with a span element and CSS class. Verify that the template renders this with safeHTML to prevent XSS issues. ✓ Confirmed in layouts/index.html line 16 uses |safeHTML.


8-11: Verify placeholder link destinations.

Both banner_btn_link: /# and banner_link: /# are placeholder URLs. Confirm these should be actual destination URLs. Per the coding guidelines, all site links should use absolute paths starting with "/".

assets/css/custom.scss (6)

115-161: ✓ Numbered list component well-implemented with CSS counters.

The .numbered-list component uses CSS counters and pseudo-elements effectively. Gradient background on numbers uses consistent color values, responsive sizing is appropriate, and media queries handle smaller screens well.


274-282: ✓ Button gradient styling consistent with theme.

The .btn-gradient modifier applies the same gradient used across the design (ede497→2ad9c2→d891ce) with appropriate text color for contrast. This maintains visual consistency.


1059-1078: ✓ Responsive button layout with .rowLinks.

The .rowLinks flexbox layout properly handles:

  • Desktop: buttons in row with right margin
  • Tablet (≤767px): centered with reduced margin
  • Mobile (≤575px): stacked vertically with consistent margin

This aligns with button rendering changes in layouts/index.html.


1593-1644: ✓ Audit home tile styling supports complex layout.

The .audit-home-tile component properly handles:

  • Layered background with opacity control
  • Positioned button at bottom center with transform
  • Responsive border-radius and padding
  • Proper z-index stacking (content at z-index 9, image behind)

Button positioning with negative margin-bottom creates the overlay effect correctly.


1645-1725: ✓ Platform row and tile styling well-designed.

The .platform-row and .platform-tile components:

  • Use consistent gradient system (3 variants)
  • Include decorative ::before line element
  • Responsive padding/sizing at all breakpoints
  • Proper color contrast for text on gradient backgrounds (#0f393b text on light gradients)

Three gradient variants provide good visual variety.


1759-1782: Verify #make-infrastructure gradient overlay works on mobile.

The #make-infrastructure section uses a complex gradient overlay (lines 1766-1770) that differs on mobile (lines 1778-1779). On mobile, the overlay changes from horizontal gradient to vertical. Verify this provides adequate contrast for readability on all image sizes.

Visually test the section on mobile devices to confirm text remains readable over the background image with the new vertical gradient overlay.


<div class="col col-12 col-md-4">
<div class="platform-tile platform-tile-1">
<div class="platformIcon"><img src="img/noun-developer-7187679.svg"/></div>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix relative image paths and add alt text.

Per coding guidelines, image paths must be absolute URLs starting with /. Also, all three images (lines 21, 30, 39) are missing alt text for accessibility.

Apply this diff:

 <div class="col col-12 col-md-4">
 <div class="platform-tile platform-tile-1">
-<div class="platformIcon"><img src="img/noun-developer-7187679.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-developer-7187679.svg" alt="Developer icon"/></div>
 <div class="platformCount">1+</div>
 <div class="platformCTA">Full-time engineer of hours saved</div>
 </div>
 </div>
 
 <div class="col col-12 col-md-4">
 <div class="platform-tile platform-tile-2">
-<div class="platformIcon"><img src="img/noun-cycle-7222105.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-cycle-7222105.svg" alt="Cycle icon"/></div>
 <div class="platformCount">10x</div>
 <div class="platformCTA">Faster Plan & Apply Cycles</div>
 </div>
 </div>
 
 <div class="col col-12 col-md-4">
 <div class="platform-tile platform-tile-2">
-<div class="platformIcon"><img src="img/noun-reduction-7894266.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-reduction-7894266.svg" alt="Reduction icon"/></div>
 <div class="platformCount">10x</div>
 <div class="platformCTA">Reduction in Infrastructure </div>
 </div>
 </div>

As per coding guidelines: "Reference images in content using the /img/ path (which maps to /static/img/)"

Also applies to: 30-30, 39-39

🧰 Tools
🪛 GitHub Check: Trunk Check

[notice] 21-21: markdownlint(MD045)
[new] Images should have alternate text (alt text)

🪛 markdownlint-cli2 (0.18.1)

21-21: Images should have alternate text (alt text)

(MD045, no-alt-text)

🤖 Prompt for AI Agents
In content/sections/home-efficient-platforms.md around lines 21, 30 and 39 the
image tags use relative paths ("img/...") and lack alt attributes; update each
img tag to use absolute paths beginning with "/img/..." (which maps to
/static/img/) and add descriptive alt text for each image (e.g., alt="developer
icon", alt="designer icon", alt="manager icon" or other context-appropriate
descriptions) so all three image elements use the correct /img/ path and include
meaningful alt text.

Comment on lines +1 to +11
---
title: Make Infrastructure
weight: 2
position: justify-content-end
size: col-12 col-md-6
#section_image: /img/bg_make_infrastructure.png
image: /img/bg_make_infrastructure.png
section_categories:
- Home
id: make-infrastructure
---
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix prettier formatting error.

The static analysis flagged a prettier formatting issue. Run trunk fmt to auto-format the file according to project conventions.

🧰 Tools
🪛 GitHub Check: Trunk Check

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

🤖 Prompt for AI Agents
In content/sections/home-make-infrastructure.md around lines 1 to 11 the file
fails project formatting (Prettier) — run the project's formatter (trunk fmt) to
auto-fix the file, review the changed whitespace/linebreaks, save the file and
include the formatted file in your commit (stage and commit the updated file) so
the CI static analysis passes.

Comment on lines +1 to +11
---
title: Turn Chaos into Reliable Operations
weight: 3
#position: justify-content-start reverse flex
#size: col-12 col-md-6
#section_image: /img/diverse_group_of_doctors.jpg
#image: /img/bg_featured_video.jpg
section_categories:
- Home
id: turn-chaos-operations
---
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix prettier formatting error.

The static analysis flagged a prettier formatting issue. Run trunk fmt to auto-format the file according to project conventions.

🧰 Tools
🪛 GitHub Check: Trunk Check

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

🤖 Prompt for AI Agents
In content/sections/home-turn-chaos.md around lines 1 to 11 the file fails
project prettier/formatting checks; run the project's formatter (trunk fmt) and
commit the updated file so it matches the repository's formatting conventions,
then re-run the static checks to verify the issue is resolved.

</div>
</div>

{{<services>}}
Copy link
Contributor

@coderabbitai coderabbitai bot Oct 29, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify {{<services>}} shortcode renders steps correctly.

The shortcode invocation relies on the updated layouts/shortcodes/services.html template, which now filters by "steps" type instead of "services". Ensure that step content files exist at content/steps/ with appropriate frontmatter (Type: steps).


🏁 Script executed:

#!/bin/bash
# Verify that step content files exist and have correct Type
fd 'steps' content/ --type f --extension md | xargs grep -l "^Type.*steps" 2>/dev/null || echo "No steps found"

Length of output: 14


I'll investigate further to understand the issue completely.

</script>

🏁 Script executed:

#!/bin/bash
# Check 1: Does content/steps directory exist?
echo "=== Checking content/steps directory ==="
if [ -d "content/steps" ]; then
  echo "Directory exists"
  echo "Files in content/steps:"
  ls -la content/steps/ || echo "Cannot list"
else
  echo "Directory does not exist"
fi

# Check 2: Search for ANY files with Type: steps anywhere in content
echo ""
echo "=== Searching for Type: steps in all content ==="
rg "^Type.*steps" content/ --type md -n || echo "No matches found"

# Check 3: Inspect the services.html shortcode
echo ""
echo "=== Inspecting layouts/shortcodes/services.html ==="
if [ -f "layouts/shortcodes/services.html" ]; then
  cat layouts/shortcodes/services.html
else
  echo "services.html not found"
fi

Length of output: 1191


</script>

🏁 Script executed:

#!/bin/bash
# Inspect frontmatter of each step file
echo "=== Frontmatter in content/steps/audit.md ==="
head -20 content/steps/audit.md

echo ""
echo "=== Frontmatter in content/steps/innovate.md ==="
head -20 content/steps/innovate.md

echo ""
echo "=== Frontmatter in content/steps/operate.md ==="
head -20 content/steps/operate.md

Length of output: 762


Add Type: steps frontmatter field to step content files.

Step content files exist at content/steps/ but are missing the Type: steps frontmatter required by the updated shortcode filter. Add Type: steps to the frontmatter of:

  • content/steps/audit.md
  • content/steps/innovate.md
  • content/steps/operate.md

Without this field, the shortcode will render empty because Hugo's where filter will not match any pages.

🤖 Prompt for AI Agents
In content/sections/home-turn-chaos.md around line 23, the shortcode
{{<services>}} expects step pages with a frontmatter field "Type: steps" but the
step files under content/steps/ are missing that field; open and update the
frontmatter of content/steps/audit.md, content/steps/innovate.md, and
content/steps/operate.md to include a top-level line "Type: steps" (matching
case) so Hugo's where filter will find them and the shortcode will render
correctly.

Copy link
Member

Choose a reason for hiding this comment

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

Looks like a valid issue

Copy link
Contributor

Choose a reason for hiding this comment

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

@gberenice, thanks for confirming! This issue will prevent the {{<services>}} shortcode from rendering any content on the homepage until the Type: steps frontmatter is added to those three step files.

Would you like me to create a GitHub issue to track adding the missing Type: steps frontmatter field to the step content files?

Comment on lines +1 to +8
---
title: Platform Engineering as a Service
title: Operate
description: >-
Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
weight: 3
icon: /img/services/icon_engineering.svg
--- No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix duplicate title field in front matter.

Lines 2–3 contain two title fields—the second will override the first, causing data loss. Based on the pattern of other steps (audit.md, innovate.md), the short title "Operate" is likely intended. Remove the longer "Platform Engineering as a Service" title.

Apply this diff to fix the front matter:

 ---
-title: Platform Engineering as a Service
 title: Operate
 description: >-
    Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
 weight: 3
 icon: /img/services/icon_engineering.svg
 ---

Run trunk fmt to auto-fix the prettier formatting notice afterward.

📝 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
---
title: Platform Engineering as a Service
title: Operate
description: >-
Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
weight: 3
icon: /img/services/icon_engineering.svg
---
---
title: Operate
description: >-
Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
weight: 3
icon: /img/services/icon_engineering.svg
---
🧰 Tools
🪛 GitHub Check: Trunk Check

[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'

🪛 LanguageTool

[grammar] ~1-~1: Hier könnte ein Fehler sein.
Context: --- title: Platform Engineering as a Service title: Operate description: >- Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward. weight: 3 icon: /img/services/icon_engineering.svg ---

(QB_NEW_DE)

🤖 Prompt for AI Agents
In content/steps/operate.md around lines 1 to 8 there are two front-matter title
fields; remove the first longer title "Platform Engineering as a Service" so
only title: Operate remains (matching other steps), save the file, then run
`trunk fmt` to fix formatting/prettier notices.

{{ range where (.Site.RegularPages.ByWeight) "Type" "services" }}
<div class="col col-12 col-md-6">
<div class="services-row row">
{{ range where (.Site.RegularPages.ByWeight) "Type" "steps" }}
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify step content exists with correct Type.

The filter changed from "services" to "steps", which means this shortcode now requires step content files (e.g., content/steps/audit.md, content/steps/innovate.md, content/steps/operate.md) with Type: steps in their frontmatter.


🏁 Script executed:

#!/bin/bash
# Verify step content exists with Type field
echo "=== Checking for step content files ==="
fd --type f --extension md content/steps 2>/dev/null | head -20 || echo "No steps directory found"

# Check that steps have Type: steps
echo -e "\n=== Checking Type field in steps ==="
fd --type f --extension md content/steps 2>/dev/null | xargs grep -l "^Type:" | head -5 || echo "No Type field found in steps"

Length of output: 77



🏁 Script executed:

#!/bin/bash
# Check directory structure
echo "=== Directory listing: content/ ==="
ls -la content/ 2>/dev/null | head -20 || echo "content/ not found"

# Check if steps directory exists specifically
echo -e "\n=== Checking for steps directory ==="
[ -d content/steps ] && echo "content/steps exists" || echo "content/steps does NOT exist"

# Look for services content as reference
echo -e "\n=== Checking for services directory and content ==="
ls -la content/services 2>/dev/null | head -20 || echo "content/services not found"

# Search for any Type: field usage (broader search)
echo -e "\n=== Searching for Type: field in content ==="
rg "^Type:" content/ 2>/dev/null | head -10 || echo "No Type: field found"

# Check for recent changes or PR files
echo -e "\n=== Checking for any markdown files in content/ ==="
find content -name "*.md" -type f 2>/dev/null | head -20 || echo "No markdown files found"

Length of output: 3035



🏁 Script executed:

#!/bin/bash
# Check actual files in steps directory
echo "=== Files in content/steps ==="
ls -la content/steps/ 2>/dev/null || echo "Could not list steps directory"

# Show content of step files if they exist
echo -e "\n=== Examining step files (first 50 lines each) ==="
find content/steps -type f 2>/dev/null | while read file; do
  echo "--- $file ---"
  head -50 "$file"
done

# Also check services frontmatter for comparison
echo -e "\n=== Examining services files for reference structure ==="
find content/services -type f -name "*.md" 2>/dev/null | head -1 | xargs head -50

Length of output: 1949


Fix malformed YAML frontmatter in operate.md—duplicate title fields will cause parsing errors.

Step content does exist with the required structure (content/steps/audit.md, innovate.md, operate.md). However, content/steps/operate.md has a critical YAML syntax error: two consecutive title: fields in the frontmatter. YAML will only preserve the second one, but this malformed structure may cause unexpected rendering or validation failures. Remove the duplicate and keep only one title field.

---
title: Operate
description: >-
   Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
weight: 3
icon: /img/services/icon_engineering.svg
---
🤖 Prompt for AI Agents
content/steps/operate.md frontmatter (approx. lines 1-8): the YAML frontmatter
contains two consecutive "title:" fields which causes parsing errors; open
content/steps/operate.md, remove the duplicate title line so only a single
title: Operate remains, ensure the remaining frontmatter includes description,
weight, and icon exactly as shown, and save the file so the frontmatter is valid
YAML.

Comment on lines +10 to +17
<h3 class="serviceTitle homeServiceTitle">
{{if .Params.home_title}}
{{.Params.home_title}}
{{else}}
{{.Title}}
{{end}}
</h3>
<div class="serviceDesc">{{.Description}}</div>
<div class="serviceDesc">{{.Params.home_description}}</div>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify home_title and home_description parameters exist in all step content.

The template now expects .Params.home_title and .Params.home_description fields. Ensure these are present in all step content files; otherwise, the fallback to .Title and missing .home_description will cause rendering issues.


🏁 Script executed:

#!/bin/bash
# Verify required parameters in step content
echo "=== Checking step content for home_title and home_description ==="
fd --type f --extension md content/steps 2>/dev/null | while read file; do
  echo "--- $file ---"
  grep -E "^(home_title|home_description|title|Type):" "$file" | head -5
done

Length of output: 65


I need to explore the repository structure to understand where step content is located and how parameters are defined.


---

🏁 Script executed:

```shell
#!/bin/bash
# Explore repository structure
echo "=== Repository structure ==="
find . -type d -name content -o -name steps 2>/dev/null | head -20

echo ""
echo "=== Top-level directories ==="
ls -la | grep -E '^d' | head -20

echo ""
echo "=== Content directory structure ==="
find content -type f -name "*.md" 2>/dev/null | head -20

echo ""
echo "=== Check for services.html file ==="
find . -name "services.html" -type f 2>/dev/null

Length of output: 1909



---

🏁 Script executed:

```shell
#!/bin/bash
# Check what's actually in the steps directories
echo "=== Files in content/steps ==="
ls -la content/steps/ 2>/dev/null || echo "Directory empty or doesn't exist"

echo ""
echo "=== Files in layouts/steps ==="
ls -la layouts/steps/ 2>/dev/null || echo "Directory empty or doesn't exist"

echo ""
echo "=== Content of services.html ==="
cat layouts/shortcodes/services.html

echo ""
echo "=== Check git diff to see what changed ==="
git show HEAD:layouts/shortcodes/services.html 2>/dev/null | head -30

Length of output: 2059



---

🏁 Script executed:

```shell
#!/bin/bash
# Read all step files to check parameters
echo "=== audit.md ==="
cat content/steps/audit.md

echo ""
echo "=== innovate.md ==="
cat content/steps/innovate.md

echo ""
echo "=== operate.md ==="
cat content/steps/operate.md

Length of output: 675


Add home_title and home_description parameters to all step content files.

The template references .Params.home_title and .Params.home_description, but none of the step files (audit.md, innovate.md, operate.md) define these parameters. While home_title falls back to .Title, home_description has no fallback and will render as empty. Add both parameters to all step files:

home_title: <optional; defaults to title if omitted>
home_description: <required; no fallback exists>
🤖 Prompt for AI Agents
In layouts/shortcodes/services.html around lines 10-17 the template uses
.Params.home_title and .Params.home_description but the step content files
(audit.md, innovate.md, operate.md) do not define them; add YAML front-matter
entries to each of those files: include home_description with a non-empty string
value, and optionally include home_title (or omit it to let the template fall
back to .Title); ensure the new keys are added at the top-level of each file's
front matter with proper YAML formatting and no empty values.

Copy link
Contributor

@oycyc oycyc left a comment

Choose a reason for hiding this comment

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

Love it, very clean. My two cents on one aspect: "1+ Full time engineer of hours saved". I don't think I like that language, it feels awkward. Not sure what the alternative is or if this was already planned out language and we're past that part of the language review.

@Gowiem
Copy link
Member Author

Gowiem commented Oct 31, 2025

"I don't think I like that language, it feels awkward."

I tend to agree. Feel free to suggest some different language if you think of any. Maybe we change this to "160+ engineer hours / month saved" or something along those lines?

Copy link
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: 0

🧹 Nitpick comments (1)
assets/css/custom.scss (1)

2700-2730: Services row centering is appropriate but formatting is slightly unconventional.

The justify-content: center; on line 2701 centers service columns in the "how it works" section, which is a sensible layout choice. However, the comment placement (same line with trailing space) is unconventional—consider moving to the line above for consistency.

  .services-row {
-    justify-content: center; 
+    justify-content: center;
     .col {
       padding-top: 1.38rem;
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c90232c and 224eb0a.

📒 Files selected for processing (1)
  • assets/css/custom.scss (14 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-09-19T19:21:07.260Z
Learnt from: CR
Repo: masterpointio/masterpoint.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-19T19:21:07.260Z
Learning: Applies to assets/css/style.scss : Place custom styles in assets/css/style.scss (requires Hugo Extended for SCSS compilation)

Applied to files:

  • assets/css/custom.scss
⏰ 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). (3)
  • GitHub Check: Redirect rules - masterpoint
  • GitHub Check: Header rules - masterpoint
  • GitHub Check: Pages changed - masterpoint
🔇 Additional comments (8)
assets/css/custom.scss (8)

115-161: Well-designed numbered list component with CSS counters.

The .numbered-list implementation correctly uses CSS counters and provides responsive sizing. The gradient marker styling is consistent with the site's design system. No issues identified.


274-282: Verify text contrast on gradient button background.

The .btn-gradient uses a bright multi-color gradient with #033 text. Please verify this meets WCAG AA contrast requirements for accessibility. If contrast is insufficient, consider a darker text color or semi-transparent overlay.


1059-1078: Banner link row styling looks solid.

The .rowLinks component provides responsive button grouping with appropriate centering and stacking behavior. Mobile-first approach via flexbox is appropriate. No concerns identified.


1286-1314: Cloud architecture and logo styling adjustments are reasonable.

Padding and margin updates appear to fine-tune spacing. The negative margin in the tablet media query (line 1297) may be intentional for visual balance but warrants confirmation that this doesn't cause unexpected side effects on adjacent elements.

Confirm the margin: 0 -1rem; at line 1297 is intentional and doesn't create unintended layout shifts on wider tablets (768–990px).


1322-1410: Service row decorative lines need viewport overflow verification.

The .serviceIcon:before pseudo-elements use 125vw width to create gradient dividers (lines 1333, 1373). While using z-index: -1 hides overflow, this may cause horizontal scrolling on narrow viewports. Consider constraining with overflow: hidden on the parent or using 100% width with proper positioning.

Test that the 125vw decorative lines don't trigger horizontal scrollbars on mobile (< 575px) and tablet (576–767px) viewports.


1593-1644: Audit home tile requires mobile verification and positioning clarity.

The .audit-home-tile uses absolute positioning for the button (lines 1631–1643) with a margin-bottom: -26px to float it beyond the tile. On mobile (max-width: 575px), the text-align: center and width: 280px constraints may conflict with the transform and centering logic. Verify that the button positioning works correctly on all mobile viewports and doesn't overflow the container.

Test the .audit-home-btn positioning on mobile devices (320px–575px viewports) to ensure it renders correctly and doesn't overflow the tile or create unexpected spacing.


1645-1720: Platform row/tile components need viewport overflow verification.

The .platform-row:before pseudo-element uses 100vw width (line 1650) to create a full-viewport decorative line. Like earlier decorative lines (serviceIcon, etc.), this may cause horizontal scrolling on constrained viewports. Additionally, verify that the three gradient variations for .platform-tile, .platform-tile-2, and .platform-tile-3 (lines 1671–1693) are intentional and visually distinct.

  1. Test that the 100vw decorative line doesn't trigger horizontal scrollbars on mobile and tablet.
  2. Confirm the three gradient tile variations are visually distinct and appropriate for their content.

1759-1782: Make infrastructure section responsive adjustments needed.

The #make-infrastructure section (lines 1759–1782) uses a .bg-image with width: 49.6% on desktop. On mobile (line 1775), it switches to width: 100%; height: 50vw;. Verify that the 50vw height doesn't create unexpected spacing on very short mobile devices or landscape orientations.

Confirm that the 50vw height on mobile (max-width: 767px) doesn't cause layout issues on landscape-oriented phones or very tall narrow screens (e.g., aspect ratios > 1:1).

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.

5 participants