Skip to content

feat: homepage rework #2 to compare to #1#93

Open
Gowiem wants to merge 3 commits intomasterfrom
feature/homepage-rework-kris-rollback
Open

feat: homepage rework #2 to compare to #1#93
Gowiem wants to merge 3 commits intomasterfrom
feature/homepage-rework-kris-rollback

Conversation

@Gowiem
Copy link
Member

@Gowiem Gowiem commented Dec 12, 2025

what

Summary by CodeRabbit

  • New Features

    • New audit-focused section with scheduling CTA and expanded IaC service pages
    • Added platform tiles, three-tile “Efficient Platforms” showcase, cards/accordion components, and horizontal row link groups
    • New gradient button and checked/numbered list visuals; Font Awesome icons enabled
  • Content Updates

    • Revised homepage hero messaging and CTAs (Book a Call, Audit Your IaC)
    • Added multiple IaC content sections and step pages (Audit, Innovate, Operate)
  • Style

    • Enhanced responsive layouts, header/footer spacing, decorative gradients, and typography scales

@Gowiem Gowiem requested a review from a team as a code owner December 12, 2025 20:47
@netlify
Copy link

netlify bot commented Dec 12, 2025

Deploy Preview for masterpoint ready!

Name Link
🔨 Latest commit c90232c
🔍 Latest deploy log https://app.netlify.com/projects/masterpoint/deploys/693c7f5d1475650008856b8d
😎 Deploy Preview https://deploy-preview-93--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: 41
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 Dec 12, 2025

Walkthrough

Adds new homepage content and IaC-focused pages, multiple Hugo shortcodes and templates, substantial CSS additions/variants, and updates to banner/head rendering and services shortcode data source (now iterates "steps" instead of "services").

Changes

Cohort / File(s) Summary
Styling & Variables
assets/css/custom.scss, assets/css/variables.scss
Large addition/extension of UI utilities, decorative components, responsive breakpoints, new color variables ($vanilla, $pink), list/button/platform tile styles, and many layout/z-index/transition adjustments.
Homepage & Banner
content/_index.md, layouts/index.html
Updated banner copy, CTAs, H3/title conditional logic consolidated, and simplified banner button/link markup.
New Home Sections
content/sections/home-efficient-platforms.md, content/sections/home-make-infrastructure.md, content/sections/home-turn-chaos.md, content/sections/home-what-is-masterpoint.md, content/sections/home-our-word.md, content/sections/home-join-clients.md, content/sections/home-specialized-services.md
Added multiple homepage section pages and edits: new tiles, CTAs, front-matter weight/ draft flags, and content/class tweaks for layout and styling.
IaC Content Pages
content/sections/iac-*.md, content/steps/*.md, content/services/iac-audit.md, content/services/*.md
Added/updated many IaC-focused content sections and step definitions (audit/innovate/operate), pricing/FAQ/what-you-get pages, and adjusted several service front matters.
Templates & Shortcodes
layouts/services/single.html, layouts/services/list.html, layouts/index.html, layouts/_default/_markup/render-heading.html, layouts/_default/_markup/~render-heading.html
New service single template, modified services list CTAs, heading render hook changes (attribute parsing and anchor behavior), and banner/layout scaffolding updates.
Shortcodes Added
layouts/shortcodes/services.html, layouts/shortcodes/accordian.html, layouts/shortcodes/cards.html, layouts/shortcodes/platform-tiles.html
Services shortcode now iterates steps and uses home-specific params; added accordian, cards, and platform-tiles shortcodes to render FAQ, card grids, and platform tiles respectively.
Head & Scripts
layouts/partials/head.html, layouts/partials/scripts.html
Added Font Awesome CSS link and introduced a Hugo pipeline + minified js/plugins.js inclusion.
Misc content edits
content/services/infra-innovation.md, content/services/managed-service-partners.md, content/services/spacelift.md, content/services/team-training.md
Removed/streamlined description front-matter fields from several service pages; small front-matter adjustments.
Markup rendering template
layouts/_default/_markup/render-heading.html
Extended to parse Markdown attribute syntax into extra HTML attributes and class injection for rendered headings.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • gberenice
  • oycyc
  • westonplatter
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title refers to a homepage rework comparison task, which aligns with the PR's stated objective of comparing against PR #1, but the reference to '#2 to compare to #1' is somewhat unclear without additional context about PR numbering conventions. Consider clarifying the title to specify what aspect of the homepage is being reworked (e.g., 'feat: homepage rework - layout and styling updates') or use a more descriptive comparison format if cross-PR comparison is the primary goal.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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-rollback

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
assets/css/custom.scss (1)

723-756: Fix invalid CSS values / media query syntax (can cause styles to be skipped).

-@media (min-width: 1200px) and(max-width: 1300px) {
+@media (min-width: 1200px) and (max-width: 1300px) {

-@media (min-width: 1200px) and(max-width:1330px) {
+@media (min-width: 1200px) and (max-width: 1330px) {

-        border-bottom: solid 1px rgba(255, 0255, 255, 0.1);
+        border-bottom: solid 1px rgba(255, 255, 255, 0.1);

Also applies to: 933-933

🧹 Nitpick comments (1)
content/sections/home-turn-chaos.md (1)

49-49: Consider parameterizing the Calendly URL.

The hardcoded Calendly URL on line 49 makes future updates difficult. Consider moving this to front matter or site config instead.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0b6f0d6 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-what-is-masterpoint.md
  • content/steps/innovate.md
  • content/steps/audit.md
  • content/sections/home-make-infrastructure.md
  • content/sections/home-efficient-platforms.md
  • content/sections/home-our-word.md
  • content/steps/operate.md
  • content/sections/home-join-clients.md
  • content/sections/home-turn-chaos.md
  • content/_index.md
  • content/sections/home-specialized-services.md
🧠 Learnings (3)
📚 Learning: 2025-08-11T18:01:10.378Z
Learnt from: westonplatter
Repo: masterpointio/masterpoint.io PR: 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
Repo: masterpointio/masterpoint.io PR: 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
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
🪛 GitHub Check: Trunk Check
content/steps/innovate.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'

content/sections/home-make-infrastructure.md

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

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/sections/home-turn-chaos.md

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

🪛 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 (11)
content/sections/home-specialized-services.md (1)

1-12: Good use of draft: true to keep this section out of production until ready.

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

1-12: draft: true is appropriate here to prevent unintended publication of the reworked homepage section.

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

1-11: Weight-only change looks fine (homepage ordering).

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

1-17: Content/layout tweak looks good; text reads stronger and the responsive width change is reasonable.

assets/css/custom.scss (1)

115-161: New components/section hooks are cohesive and appear consistent with the homepage rework direction.

(Separately, trunk/prettier is failing—worth running the formatter after the correctness fixes.)

Also applies to: 274-282, 1059-1078, 1593-1726, 1759-1782

content/steps/innovate.md (1)

1-7: Step metadata looks good; please re-run formatter to satisfy the prettier/trunk check.

content/steps/audit.md (1)

1-7: Step metadata looks good; please re-run formatter to satisfy the prettier/trunk check.

content/sections/home-efficient-platforms.md (1)

38-38: Verify third platform tile CSS class.

The third tile reuses platform-tile-2 (same as the second tile on line 29). Confirm if this is intentional or if it should use a distinct class like platform-tile-3.

content/_index.md (1)

8-11: Verify CTA link destinations.

Lines 9 and 11 both use /# as the link destination, which won't anchor to a meaningful location. Confirm whether these should link to specific sections (e.g., /#turn-chaos-operations) or pages (e.g., /services/).

layouts/index.html (2)

21-25: Verify tagline repositioning doesn't break styling.

The banner tagline was moved from before the H3 to after it (lines 21-25). Confirm that CSS selectors and styling still apply correctly with this new DOM order.


31-31: CSS classes btn-gradient and btn-outline-gradient are properly defined.

Both classes are defined in assets/css/custom.scss (btn-gradient at line 274, btn-outline-gradient at lines 285, 294, and 340).


<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 image paths to use absolute URLs and add alt text.

Per coding guidelines, image references must use absolute paths starting with /, not relative paths. Additionally, all images need alt text for accessibility.

-<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="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="platformIcon"><img src="img/noun-reduction-7894266.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-reduction-7894266.svg" alt="Reduction icon"/></div>

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
<img> tags use relative src paths and lack alt attributes; update each image tag
so src uses an absolute path beginning with "/" (e.g., "/img/...svg") and add a
meaningful alt="" attribute for accessibility (e.g., alt="developer icon") to
each image reference.

Comment on lines +1 to +17
---
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
---

### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1}

Code is easy to come by. But cheap code doesn’t make for an efficient platform. Workflows and automations do. Our IaC workshops and Workflow Library provide the expertise, training, and foundations needed to build the workflows that lead to efficient operations.

<a href="/#" class="button btn-outline-gradient btn-big">See Our Results →</a> 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 | 🟠 Major

Replace placeholder CTA target (href="/#"). This will feel broken/unfinished in production even if the section is later un-drafted.

Suggested change (pick the real destination):

-<a href="/#" class="button btn-outline-gradient  btn-big">See Our Results →</a>
+<a href="/case-studies/" class="button btn-outline-gradient btn-big">See Our Results →</a>
📝 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: 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
---
### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1}
Code is easy to come by. But cheap code doesnt make for an efficient platform. Workflows and automations do. Our IaC workshops and Workflow Library provide the expertise, training, and foundations needed to build the workflows that lead to efficient operations.
<a href="/#" class="button btn-outline-gradient btn-big">See Our Results →</a>
---
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
---
### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1}
Code is easy to come by. But cheap code doesn't make for an efficient platform. Workflows and automations do. Our IaC workshops and Workflow Library provide the expertise, training, and foundations needed to build the workflows that lead to efficient operations.
<a href="/case-studies/" class="button btn-outline-gradient btn-big">See Our Results →</a>
🧰 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 lines 1-17 the CTA anchor uses a
placeholder href="/#", which appears broken/unfinished; replace that href with
the real destination route (for example /results, /case-studies, /workshops, or
the canonical page that shows your outcomes), ensure the chosen route exists in
the site, update the link to use that URL (relative or absolute as appropriate)
and confirm the anchor text/aria-label still accurately describes the target.

</div>

<div class="audit-home-tile">
<div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></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 image path to use absolute URL.

Per coding guidelines, image references must use absolute paths starting with /.

-<div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></div>
+<div class="bg-image"><img src="/img/bg_audit_home.png" alt="Masterpoint Thread Background"/></div>

(Note: Also fixed typo "Backround" → "Background" in alt text.)

📝 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
<div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></div>
<div class="bg-image"><img src="/img/bg_audit_home.png" alt="Masterpoint Thread Background"/></div>
🤖 Prompt for AI Agents
In content/sections/home-turn-chaos.md around line 30, the image src uses a
relative path and the alt text has a typo; update the src to an absolute path by
prefixing it with a leading slash (e.g., /img/bg_audit_home.png) and correct the
alt text from "Masterpoint Thread Backround" to "Masterpoint Thread Background".

Comment on lines +2 to +3
title: Platform Engineering as a Service
title: Operate
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 YAML front matter key.

Line 3 uses title: Operate but this conflicts with line 2's title. Based on the enriched summary, line 3 should be sub_title: Operate.

---
title: Platform Engineering as a Service
-title: Operate
+sub_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
---
📝 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
---
title: Platform Engineering as a Service
sub_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
In content/steps/operate.md around lines 2 to 3, the YAML front matter contains
a duplicate key "title": change the second occurrence (line 3) from "title:
Operate" to "sub_title: Operate" so the front matter keys are unique and match
the intended enriched summary field.

{{ 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

🏁 Script executed:

#!/bin/bash
# Verify the concerns raised in the review comment

# 1. Check all step files for home_description parameter
echo "=== Checking step files for home_description parameter ==="
if fd -e md 'content/steps' 2>/dev/null | head -20; then
  fd -e md 'content/steps' 2>/dev/null | xargs grep -l "home_description" 2>/dev/null | wc -l
  fd -e md 'content/steps' 2>/dev/null | wc -l
else
  echo "No content/steps directory found or no .md files in it"
fi

# 2. Find all {{<services>}} shortcode usages in the repository
echo -e "\n=== Finding all {{<services>}} shortcode usages ==="
rg '{{<\s*services\s*>}}' --type md 2>/dev/null | head -50

# 3. Check if CSS classes are defined
echo -e "\n=== Checking for CSS classes bg-gradient and homeServiceTitle ==="
rg 'bg-gradient|homeServiceTitle' 2>/dev/null | head -30

# 4. Get the services.html shortcode content to understand line 17 requirement
echo -e "\n=== Content of services.html shortcode ==="
if [ -f "layouts/shortcodes/services.html" ]; then
  cat -n layouts/shortcodes/services.html
fi

Repository: masterpointio/masterpoint.io

Length of output: 2069


🏁 Script executed:

#!/bin/bash
# Deeper investigation of the shortcode change

# 1. Search for services shortcode usage across all files (not just markdown)
echo "=== Searching for services shortcode usage across all file types ==="
rg '{{<\s*services\s*>}}' 2>/dev/null || echo "No shortcode usages found"

# 2. Check content directory structure
echo -e "\n=== Content directory structure ==="
if [ -d "content" ]; then
  find content -type d | head -30
  echo -e "\n=== Content types available (directories in content/) ==="
  ls -la content/ 2>/dev/null
fi

# 3. Check for "services" type content files
echo -e "\n=== Looking for files with Type 'services' ==="
rg 'type:\s*services|Type.*services' --type md --type yaml 2>/dev/null | head -20 || echo "No 'services' type content found"

# 4. Check for "steps" type content files
echo -e "\n=== Looking for files with Type 'steps' ==="
rg 'type:\s*steps|Type.*steps' --type md --type yaml 2>/dev/null | head -20 || echo "No 'steps' type content found"

# 5. Check where the shortcode is actually used
echo -e "\n=== Searching for services shortcode in all templates and includes ==="
rg 'services' layouts/ 2>/dev/null | grep -i 'shortcode\|include\|partial' | head -20

Repository: masterpointio/masterpoint.io

Length of output: 2202


🏁 Script executed:

#!/bin/bash
# Examine content files in services and steps directories

echo "=== Files in content/services/ ==="
ls -la content/services/
echo -e "\n=== Content of services files ==="
cat -n content/services/*.md

echo -e "\n=== Files in content/steps/ ==="
ls -la content/steps/
echo -e "\n=== Content of steps files ==="
cat -n content/steps/*.md

Repository: masterpointio/masterpoint.io

Length of output: 6547


Breaking change confirmed: Missing required home_description parameter in step files.

The shortcode was changed from iterating over Type "services" to Type "steps". This is a breaking change, but more critically: step files lack the home_description parameter that the shortcode requires on line 17. The steps (audit.md, innovate.md, operate.md) only have description, not home_description, so line 17 will render empty values if the shortcode is used.

Additionally, while the CSS classes bg-gradient and homeServiceTitle are properly defined in assets/css/custom.scss, the shortcode currently has no active usage in templates.

🤖 Prompt for AI Agents
In layouts/shortcodes/services.html around line 2, the range was switched to
Type "steps" but the shortcode expects a frontmatter param home_description
(used at line 17) which the step pages don't provide; either revert the range to
Type "services" if you intended to render service pages, or make the shortcode
robust by falling back to .Params.description when .Params.home_description is
missing and update the three step files (audit.md, innovate.md, operate.md) to
include home_description if you want bespoke text; also verify any templates
that should include this shortcode actually call it so the CSS classes are used.

@Gowiem
Copy link
Member Author

Gowiem commented Dec 12, 2025

Closing as #85 supersedes.

@Gowiem Gowiem closed this Dec 12, 2025
@Gowiem
Copy link
Member Author

Gowiem commented Dec 12, 2025

Reopening as I need to test this again... got something wrong.

@Gowiem Gowiem reopened this Dec 12, 2025
@netlify
Copy link

netlify bot commented Mar 10, 2026

Deploy Preview for masterpoint ready!

Name Link
🔨 Latest commit 6b76d0f
🔍 Latest deploy log https://app.netlify.com/projects/masterpoint/deploys/69b1ebba4583c9000807a688
😎 Deploy Preview https://deploy-preview-93--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: 44
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.

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
assets/css/custom.scss (1)

1350-1357: ⚠️ Potential issue | 🟡 Minor

Don’t keep the fifth service connector shifted on mobile.

Below 768px, every .serviceIcon gets the shared mobile connector, but this block still leaves the fifth one translated left. That makes only that card render differently on small screens.

📱 Suggested fix
     &:nth-child(5) {
       .serviceIcon {
         &:before {
           left: 0;
           transform: translateX(-65%);
           `@media` (max-width: 767px) {
-            transform: translateX(-50%);
+            left: auto;
+            transform: none;
           }
         }
       }
     }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/css/custom.scss` around lines 1350 - 1357, The nth-child(5)
special-case keeps the fifth .serviceIcon shifted on small screens; inside the
&:nth-child(5) { .serviceIcon { &:before { ... } } } block add or ensure a media
query matching the global mobile rule (e.g., `@media` (max-width: 767px)) that
overrides the desktop transform: translateX(-65%) with transform:
translateX(-50%) (or remove the desktop-only translateX override for that child)
so the fifth connector uses the same mobile positioning as the other
.serviceIcon elements.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@assets/css/custom.scss`:
- Around line 278-286: The .btn-gradient variant sets a dark text color but is
overridden by the shared .button hover/focus rule; update the .btn-gradient
block to explicitly reset its hover and focus state by adding a selector for
&:hover and &:focus that sets color back to the dark value (use the same hex,
e.g. `#033`) so hover/focus do not flip to white—place this inside the
.btn-gradient rules (refer to .btn-gradient and the existing .button
:hover/:focus styles) and, if necessary to win specificity, match the selector
pattern used by the shared button rule rather than relying on !important.
- Around line 1649-1666: The decorative connector on .platform-row created by
its &:before pseudo-element should be hidden at small sizes where tiles stack
vertically; update the CSS for .platform-row &:before to disable or remove that
pseudo-element under the small-screen breakpoint used by the layout (the md
breakpoint / widths below ~768px) — e.g., add a media query targeting screens
below the md breakpoint and set the pseudo-element to not display (or set
content: none / height: 0) so the horizontal line does not run through stacked
.col-12 tiles.

---

Outside diff comments:
In `@assets/css/custom.scss`:
- Around line 1350-1357: The nth-child(5) special-case keeps the fifth
.serviceIcon shifted on small screens; inside the &:nth-child(5) { .serviceIcon
{ &:before { ... } } } block add or ensure a media query matching the global
mobile rule (e.g., `@media` (max-width: 767px)) that overrides the desktop
transform: translateX(-65%) with transform: translateX(-50%) (or remove the
desktop-only translateX override for that child) so the fifth connector uses the
same mobile positioning as the other .serviceIcon elements.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a8d2e89-7fc5-4d8d-8fa9-d46dd7a59915

📥 Commits

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

📒 Files selected for processing (1)
  • assets/css/custom.scss

Comment on lines +278 to +286
&.btn-gradient {
background: linear-gradient(
92deg,
#ede497 -0.66%,
#2ad9c2 26%,
#d891ce 59.55%
);
color: #033;
}
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

Keep .btn-gradient text dark on hover and focus.

This variant sets a dark foreground, but it still inherits the shared .button hover/focus color change to white. The homepage CTAs using btn-gradient will flip to low-contrast text when hovered or keyboard-focused.

🎯 Suggested fix
   &.btn-gradient {
     background: linear-gradient(
       92deg,
       `#ede497` -0.66%,
       `#2ad9c2` 26%,
       `#d891ce` 59.55%
     );
     color: `#033`;
+    &:hover,
+    &:focus {
+      color: `#033`;
+    }
   }
📝 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
&.btn-gradient {
background: linear-gradient(
92deg,
#ede497 -0.66%,
#2ad9c2 26%,
#d891ce 59.55%
);
color: #033;
}
&.btn-gradient {
background: linear-gradient(
92deg,
`#ede497` -0.66%,
`#2ad9c2` 26%,
`#d891ce` 59.55%
);
color: `#033`;
&:hover,
&:focus {
color: `#033`;
}
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/css/custom.scss` around lines 278 - 286, The .btn-gradient variant
sets a dark text color but is overridden by the shared .button hover/focus rule;
update the .btn-gradient block to explicitly reset its hover and focus state by
adding a selector for &:hover and &:focus that sets color back to the dark value
(use the same hex, e.g. `#033`) so hover/focus do not flip to white—place this
inside the .btn-gradient rules (refer to .btn-gradient and the existing .button
:hover/:focus styles) and, if necessary to win specificity, match the selector
pattern used by the shared button rule rather than relying on !important.

Comment on lines +1649 to +1666
.platform-row {
position: relative;
&:before {
content: "";
position: absolute;
width: 100vw;
height: 2px;
background: linear-gradient(
99.59deg,
#ede497 2.59%,
#2ad9c2 41.12%,
#d891ce 89.63%
);
top: 50%;
z-index: -1;
left: 50%;
transform: translateX(-50%);
}
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

Hide the platform connector once the cards stack.

content/sections/home-efficient-platforms.md renders these as col-12 col-md-4, so below 768px the tiles become a vertical stack. The horizontal :before line here will run through the middle of the stacked cards instead of connecting them.

📏 Suggested fix
   .platform-row {
     position: relative;
     &:before {
       content: "";
       position: absolute;
       width: 100vw;
       height: 2px;
       background: linear-gradient(
         99.59deg,
         `#ede497` 2.59%,
         `#2ad9c2` 41.12%,
         `#d891ce` 89.63%
       );
       top: 50%;
       z-index: -1;
       left: 50%;
       transform: translateX(-50%);
     }
+    `@media` (max-width: 767px) {
+      &:before {
+        display: none;
+      }
+    }
     .col {
       padding-top: 12px;
       padding-bottom: 12px;
     }
   }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/css/custom.scss` around lines 1649 - 1666, The decorative connector on
.platform-row created by its &:before pseudo-element should be hidden at small
sizes where tiles stack vertically; update the CSS for .platform-row &:before to
disable or remove that pseudo-element under the small-screen breakpoint used by
the layout (the md breakpoint / widths below ~768px) — e.g., add a media query
targeting screens below the md breakpoint and set the pseudo-element to not
display (or set content: none / height: 0) so the horizontal line does not run
through stacked .col-12 tiles.

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

♻️ Duplicate comments (2)
assets/css/custom.scss (2)

320-328: ⚠️ Potential issue | 🟠 Major

Keep .btn-gradient text dark on hover/focus.

The shared .button:hover, .button:focus rule still flips this variant to white, which hurts contrast/readability.

🎯 Proposed fix
   &.btn-gradient {
     background: linear-gradient(
       92deg,
       `#ede497` -0.66%,
       `#2ad9c2` 26%,
       `#d891ce` 59.55%
     );
     color: `#033`;
+    &:hover,
+    &:focus {
+      color: `#033`;
+    }
   }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/css/custom.scss` around lines 320 - 328, The .btn-gradient variant is
being overridden by the global .button:hover, .button:focus rule; add a more
specific rule for .btn-gradient hover/focus (for example .btn-gradient:hover,
.btn-gradient:focus) that explicitly sets color: `#033` (or the existing dark
value) and place it after the generic hover/focus rule so the text stays dark on
hover/focus; reference .btn-gradient and the global .button:hover, .button:focus
selectors when making the change.

1920-1942: ⚠️ Potential issue | 🟡 Minor

Hide the .platform-row connector when columns stack on mobile.

Without a mobile override, the horizontal connector runs through vertically stacked tiles.

📱 Proposed fix
 .platform-row {
   position: relative;
   &:before {
@@
     transform: translateX(-50%);
   }
+  `@media` (max-width: 767px) {
+    &:before {
+      display: none;
+    }
+  }
   .col {
     padding-top: 12px;
     padding-bottom: 12px;
   }
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/css/custom.scss` around lines 1920 - 1942, The horizontal connector
defined by .platform-row &:before should be disabled on narrow viewports so it
doesn't run through stacked tiles; add a mobile media query targeting the
.platform-row &:before pseudo-element (or .platform-row:before) and set it to
not render (e.g., display: none or height: 0 / width: 0 / opacity: 0) when
columns stack, ensuring .col padding remains unchanged; update the rule near the
existing .platform-row, &:before, and .col selectors so the connector is visible
on desktop but hidden on mobile.
🧹 Nitpick comments (3)
layouts/partials/scripts.html (1)

19-21: Minification step conflicts with documented guideline.

The resource pipeline now applies resources.Minify to plugins.js. However, based on learnings, the guideline states: "Keep JavaScript plugins as pre-minified static files in assets/js/plugins.js; do not add a JS build step."

If this is an intentional change to the build process, consider updating the project documentation to reflect the new approach. Otherwise, if plugins.js is already pre-minified, the extra minification step is redundant.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@layouts/partials/scripts.html` around lines 19 - 21, The template now applies
resources.Minify to the plugins bundle (resources.Get "js/plugins.js" piped into
resources.Minify producing $secureJS), which conflicts with the guideline to
keep plugins as pre-minified static files; either remove the minification step
(stop piping $js into resources.Minify and just use $js.Permalink) so
pre-minified assets are served as intended, or if you intend to change the build
process, update project docs to state that resources.Minify is used for
"js/plugins.js" and remove the guideline that plugins must be pre-minified.
layouts/shortcodes/accordian.html (1)

1-12: Clarify the intended use case for the new accordian shortcode relative to the existing faqs shortcode.

The existing faqs shortcode fetches FAQ content from separate pages in the site, while this new accordian shortcode expects FAQ data embedded in page front matter. If both data models are needed, document which approach to use when. If only one is intended, consolidate to avoid maintaining duplicate accordion/FAQ functionality.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@layouts/shortcodes/accordian.html` around lines 1 - 12, The new accordian
shortcode (layouts/shortcodes/accordian.html) uses .Page.Params.faqs to render
inline front‑matter FAQ data, but your project already has an existing faqs
shortcode that sources FAQs from separate pages; clarify and act on a single
approach: either document that accordian is for embedded front‑matter FAQs and
faqs remains for site‑wide/linked FAQ pages, or consolidate by refactoring one
into the other (e.g., update accordian to accept both .Page.Params.faqs and the
faqs shortcode’s page-sourced collection, or remove duplicate markup and export
a single reusable partial used by both). Make the change by updating the
accordian shortcode and README/docs to state the intended data model (or by
refactoring the rendering logic into a shared component used by both accordian
and faqs) and ensure unique identifiers like .Page.Params.faqs, faq-{{ $index
}}, and the faqs shortcode name are consistent after consolidation.
content/sections/iac-sound-familiar.md (1)

10-10: Normalize the section id spelling (familierfamiliar).

This typo will lock in inconsistent naming across content and styles; better to correct now before wider reuse.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/sections/iac-sound-familiar.md` at line 10, The section id
"iac-sound-familier" is misspelled; update the section's front-matter/metadata
id value from "iac-sound-familier" to the corrected "iac-sound-familiar" so
content and styles use the consistent identifier (look for the id field
containing iac-sound-familier and replace it).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@assets/css/custom.scss`:
- Around line 186-196: Add a generic fallback to the Font Awesome declaration by
changing the font-family that contains "Font Awesome 6 Free" to include a
generic like sans-serif (e.g., "Font Awesome 6 Free", sans-serif), remove the
unsupported unprefixed text-fill-color property instances (the lines with
text-fill-color: transparent; that appear alongside -webkit-text-fill-color and
at the other occurrence referenced) so only the vendor-prefixed
-webkit-text-fill-color remains if needed, and fix the unquoted url() at the
other reported spot by wrapping the URL in quotes (e.g., url("...")).

In `@config.yaml`:
- Line 42: The change sets autoHeadingID to false which stops Hugo from
auto-generating heading IDs and will break existing in-page anchor links; revert
this by setting autoHeadingID: true in the config (or, if you intentionally want
it off, update all affected headings in your content to include explicit IDs
like {`#intro`} and {`#final-thoughts`} across the blog posts), referencing the
autoHeadingID setting to locate the config and the headings in the content files
to apply the explicit {#...} attributes.

In `@content/sections/iac-cta.md`:
- Line 20: The CTA anchor element with class "button btn-gradient" and label
"Schedule a Discovery Call" currently uses a placeholder href="/#"; update that
anchor's href to the real destination (for example "/contact/" or your external
scheduling URL like a Calendly link) so the button navigates to the actual
scheduling/contact page; locate the anchor element in iac-cta.md (the <a
class="button btn-gradient"> element) and replace the placeholder href value
with the correct URL.

In `@content/sections/iac-pricing.md`:
- Line 25: Remove the literal escaped asterisks from the markdown line so the
content doesn't render `**` characters; replace the text `\*\*No hidden costs.
No surprises. No scope creep.\*\*` with just `No hidden costs. No surprises. No
scope creep.` and rely on the existing <b><em> wrapper in the same line to
provide bold/italic styling.

In `@content/sections/iac-questions.md`:
- Around line 12-26: The faqs array contains five entries under the faqs key
with distinct title strings but all share the same placeholder content; replace
the repeated "The audit spans 1 week..." answer for each title with specific,
relevant text: keep the current answer for "How long does the audit take?", add
an implementation-support answer for "What if we need help implementing the
recommendations?" (describe support options such as remediation assistance,
consulting hours or follow-up engagement), add team-size guidance for "What size
teams is this for?" (e.g., typical engagements for small/medium/large teams and
recommended contacts), list supported IaC tools for "What IaC tools do you
support?" (e.g., Terraform, CloudFormation, ARM/Bicep, Pulumi, Kubernetes
manifests), and provide a timeline/flexibility answer for "What if we're not
ready to act on recommendations immediately?" (e.g., offering phased
remediation, prioritization, and re-assessment options); update the content
values under the existing faqs entries (use the title strings to locate each
entry) with these tailored answers.

In `@content/sections/iac-sound-familiar.md`:
- Around line 1-42: This file fails Prettier formatting; run the formatter
(trunk fmt or your project's Prettier command) on the markdown containing the
front-matter and content (look for the front-matter block with title: "Sound
familiar?" and id: iac-sound-familier) and commit the updated file so the
Prettier/Trunk check passes; after formatting, verify no extraneous whitespace
or malformed front-matter keys remain.
- Around line 31-39: Replace the duplicated HTML anchor (<a class="button
btn-gradient" href="/#">Schedule a Discovery Call</a>) with the shared Hugo
"button" shortcode and set the CTA URL to the real target (not "/#"); remove the
surrounding duplicated button HTML block and invoke the "button" shortcode
passing the label "Schedule a Discovery Call" and the correct href so the
content follows the guideline to use provided shortcodes instead of raw HTML.
- Around line 1-24: This section is missing the draft flag in its front matter;
add draft: true to the YAML block (near title: "Sound familiar?" and id:
iac-sound-familier) so the page remains hidden until production-ready, ensuring
the placeholder CTA and in-progress content aren't published.

In `@content/sections/iac-the-results.md`:
- Around line 32-33: Replace the hand-written anchor tag (<a class="button
btn-gradient" href="/#">Schedule a Discovery Call</a>) with the Hugo "button"
shortcode and point it to the real discovery-call route (e.g., /discovery-call);
use the shortcode's text parameter to keep the CTA label "Schedule a Discovery
Call" so the section uses the standardized button component instead of
duplicated HTML.
- Around line 25-76: The block starting with the raw div container
"iac-results-tile" is preventing markdown headings and attribute lists (the "###
The Results" and "#### ..." lines and their {.serviceTitle .text-white}/.font20
annotations) from being parsed; move the layout markup into a Hugo
partial/shortcode (e.g., a new partial that renders the surrounding <div
class="iac-results-tile"> and grid columns) and keep the inner content as plain
markdown headings and list items, replacing the raw anchor `<a class="button
btn-gradient" href="/#">Schedule a Discovery Call</a>` with the provided Hugo
button shortcode so the markdown headings, attribute-list classes and styling
hooks (The Results, the four service titles) are preserved and rendered
correctly.

In `@content/sections/iac-what-we-do.md`:
- Around line 25-33: The raw <div class="row justify-content-center
text-center"> wrapper around the section prevents the nested markdown heading
"### What WE DO {.sectionTitle .big .text-center .text-pine}" from being parsed;
remove the surrounding HTML from this markdown file and place that row/column
wrapper into a Hugo shortcode or template (or an existing provided shortcode),
leaving only the plain markdown heading and paragraph text in the file; ensure
the shortcode applies the same classes so the visual layout is preserved and
reference the heading text "What WE DO" and its attributes when implementing the
wrapper in the shortcode.

In `@content/sections/iac-what-you-get.md`:
- Around line 32-34: Replace the raw anchor/button HTML (the div with class
"rowLinks" containing <a href="/#">Schedule a Discovery Call</a>) with the
shared Hugo "button" shortcode and set its href to a real scheduling target
(e.g., your contact page or calendar/booking URL); use the "button" shortcode
name so styling and behavior are consistent across the site and remove the dead
href="/#". Ensure the inner text remains "Schedule a Discovery Call" and
preserve any needed wrapper (rowLinks) for layout.
- Around line 1-26: Add a top-level front matter key draft: true to the YAML
block for the "What You Get" section so the page is hidden from production while
content is finalized; update the existing frontmatter (title: What You Get / id:
iac-what-you-get) to include draft: true as a boolean value in the same YAML
block so the site generator will treat this page as a draft.

In `@content/services/iac-audit.md`:
- Around line 8-10: The banner's CTA target is a placeholder: replace the value
of banner_btn_link (currently "/#") with the real booking/contact URL so the
primary CTA (banner_btn_label) points to the actual scheduling or contact
destination; update the string for banner_btn_link to the production booking
link or route used by your site.

In `@layouts/services/single.html`:
- Line 55: The template uses an invalid call to the Hugo index function: replace
the incorrect "{{ $mgatag := index site.Taxonomies.section_categories }}" by
directly assigning the taxonomy map to $mgatag (or, if you intended to select a
specific key, call index with the map and that key) so that $mgatag references
site.Taxonomies.section_categories correctly; update the assignment to use
either direct access (site.Taxonomies.section_categories) or a proper index call
with both map and key in the declaration for the variable $mgatag.

In `@layouts/shortcodes/accordian.html`:
- Around line 1-12: Rename the shortcode file from "accordian.html" to the
correctly spelled "accordion.html" and update all shortcode invocations from {{<
accordian >}} to {{< accordion >}} (e.g., update
content/sections/iac-questions.md and any other files referencing the old name);
ensure the template contents (the block using .Page.Params.faqs and ids like
faq-{{ $index }}) remain unchanged so the behavior is identical after renaming.

In `@layouts/shortcodes/platform-tiles.html`:
- Line 5: The div currently always emits id="" which creates invalid/duplicate
DOM ids; update the shortcode template so the id attribute on the element with
class "row platform-row" is only rendered when the caller provides a non-empty
$id (e.g. wrap the id attribute in a conditional like if/with for $id), so when
$id is empty the id attribute is omitted entirely.

---

Duplicate comments:
In `@assets/css/custom.scss`:
- Around line 320-328: The .btn-gradient variant is being overridden by the
global .button:hover, .button:focus rule; add a more specific rule for
.btn-gradient hover/focus (for example .btn-gradient:hover, .btn-gradient:focus)
that explicitly sets color: `#033` (or the existing dark value) and place it after
the generic hover/focus rule so the text stays dark on hover/focus; reference
.btn-gradient and the global .button:hover, .button:focus selectors when making
the change.
- Around line 1920-1942: The horizontal connector defined by .platform-row
&:before should be disabled on narrow viewports so it doesn't run through
stacked tiles; add a mobile media query targeting the .platform-row &:before
pseudo-element (or .platform-row:before) and set it to not render (e.g.,
display: none or height: 0 / width: 0 / opacity: 0) when columns stack, ensuring
.col padding remains unchanged; update the rule near the existing .platform-row,
&:before, and .col selectors so the connector is visible on desktop but hidden
on mobile.

---

Nitpick comments:
In `@content/sections/iac-sound-familiar.md`:
- Line 10: The section id "iac-sound-familier" is misspelled; update the
section's front-matter/metadata id value from "iac-sound-familier" to the
corrected "iac-sound-familiar" so content and styles use the consistent
identifier (look for the id field containing iac-sound-familier and replace it).

In `@layouts/partials/scripts.html`:
- Around line 19-21: The template now applies resources.Minify to the plugins
bundle (resources.Get "js/plugins.js" piped into resources.Minify producing
$secureJS), which conflicts with the guideline to keep plugins as pre-minified
static files; either remove the minification step (stop piping $js into
resources.Minify and just use $js.Permalink) so pre-minified assets are served
as intended, or if you intend to change the build process, update project docs
to state that resources.Minify is used for "js/plugins.js" and remove the
guideline that plugins must be pre-minified.

In `@layouts/shortcodes/accordian.html`:
- Around line 1-12: The new accordian shortcode
(layouts/shortcodes/accordian.html) uses .Page.Params.faqs to render inline
front‑matter FAQ data, but your project already has an existing faqs shortcode
that sources FAQs from separate pages; clarify and act on a single approach:
either document that accordian is for embedded front‑matter FAQs and faqs
remains for site‑wide/linked FAQ pages, or consolidate by refactoring one into
the other (e.g., update accordian to accept both .Page.Params.faqs and the faqs
shortcode’s page-sourced collection, or remove duplicate markup and export a
single reusable partial used by both). Make the change by updating the accordian
shortcode and README/docs to state the intended data model (or by refactoring
the rendering logic into a shared component used by both accordian and faqs) and
ensure unique identifiers like .Page.Params.faqs, faq-{{ $index }}, and the faqs
shortcode name are consistent after consolidation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 42b5e7da-4e1b-4d42-bdbd-10ed8f807c33

📥 Commits

Reviewing files that changed from the base of the PR and between ef37640 and 6b76d0f.

⛔ Files ignored due to path filters (10)
  • static/img/banner_iac_bg.png is excluded by !**/*.png
  • static/img/bg_iac_cta.jpg is excluded by !**/*.jpg
  • static/img/icon_access.png is excluded by !**/*.png
  • static/img/icon_finding_reports.png is excluded by !**/*.png
  • static/img/icon_guidance.png is excluded by !**/*.png
  • static/img/icon_infra_review.png is excluded by !**/*.png
  • static/img/icon_tailored_recommendations.png is excluded by !**/*.png
  • static/img/icon_team_interviews.png is excluded by !**/*.png
  • static/img/icon_workflow_assessement.png is excluded by !**/*.png
  • static/js/bootstrap.bundle.min.js is excluded by !**/*.min.js
📒 Files selected for processing (26)
  • assets/css/custom.scss
  • assets/css/variables.scss
  • config.yaml
  • content/_index.md
  • content/sections/home-make-infrastructure.md
  • content/sections/iac-cta.md
  • content/sections/iac-pricing.md
  • content/sections/iac-questions.md
  • content/sections/iac-sound-familiar.md
  • content/sections/iac-the-results.md
  • content/sections/iac-what-we-do.md
  • content/sections/iac-what-you-get.md
  • content/services/iac-audit.md
  • content/services/infra-innovation.md
  • content/services/managed-service-partners.md
  • content/services/spacelift.md
  • content/services/team-training.md
  • layouts/_default/_markup/render-heading.html
  • layouts/_default/_markup/~render-heading.html
  • layouts/partials/head.html
  • layouts/partials/scripts.html
  • layouts/services/list.html
  • layouts/services/single.html
  • layouts/shortcodes/accordian.html
  • layouts/shortcodes/cards.html
  • layouts/shortcodes/platform-tiles.html
💤 Files with no reviewable changes (4)
  • content/services/infra-innovation.md
  • content/services/managed-service-partners.md
  • content/services/team-training.md
  • content/services/spacelift.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • content/_index.md

Comment on lines +186 to +196
font-family: "Font Awesome 6 Free";
background: linear-gradient(
92.08deg,
#ede497 -0.66%,
#2ad9c2 26%,
#d891ce 59.55%
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-fill-color: transparent;
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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read-only verification of the exact linted patterns
rg -n 'font-family:\s*"Font Awesome 6 Free"|text-fill-color:|background-image:\s*url\(/img/banner_iac_bg\.png\)' assets/css/custom.scss

Repository: masterpointio/masterpoint.io

Length of output: 343


🏁 Script executed:

sed -n '655,661p' assets/css/custom.scss | cat -n

Repository: masterpointio/masterpoint.io

Length of output: 258


🏁 Script executed:

sed -n '650,665p' assets/css/custom.scss | cat -n

Repository: masterpointio/masterpoint.io

Length of output: 502


Fix Stylelint blockers in the new styles.

Three lint errors can block CI:

  • Line 186: missing generic font fallback in font-family declaration
  • Lines 196 and 659: unsupported unprefixed text-fill-color property (also at line 659)
  • Line 3589: unquoted url() value

Remove the text-fill-color lines entirely and add a generic fallback to the Font Awesome declaration.

Proposed fixes
-      font-family: "Font Awesome 6 Free";
+      font-family: "Font Awesome 6 Free", sans-serif;
@@
-      text-fill-color: transparent;
@@
-      background-image: url(/img/banner_iac_bg.png);
+      background-image: url("/img/banner_iac_bg.png");

Apply the text-fill-color removal at lines 196 and 659.

🧰 Tools
🪛 Stylelint (17.4.0)

[error] 186-186: Unexpected missing generic font family (font-family-no-missing-generic-family-keyword)

(font-family-no-missing-generic-family-keyword)


[error] 196-196: Unexpected unknown property "text-fill-color" (property-no-unknown)

(property-no-unknown)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@assets/css/custom.scss` around lines 186 - 196, Add a generic fallback to the
Font Awesome declaration by changing the font-family that contains "Font Awesome
6 Free" to include a generic like sans-serif (e.g., "Font Awesome 6 Free",
sans-serif), remove the unsupported unprefixed text-fill-color property
instances (the lines with text-fill-color: transparent; that appear alongside
-webkit-text-fill-color and at the other occurrence referenced) so only the
vendor-prefixed -webkit-text-fill-color remains if needed, and fix the unquoted
url() at the other reported spot by wrapping the URL in quotes (e.g.,
url("...")).

block: true
title: true
autoHeadingID: true
autoHeadingID: false
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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find markdown files with internal anchor links that depend on auto-generated heading IDs
rg -n '\]\(#[a-z0-9-]+\)' --type md content/

Repository: masterpointio/masterpoint.io

Length of output: 25347


🏁 Script executed:

#!/bin/bash
# First, check the config.yaml file around line 42
echo "=== config.yaml content ==="
head -60 config.yaml | tail -25

echo ""
echo "=== Checking for explicit heading IDs in markdown files ==="
# Check if any of the markdown files have explicit {`#id`} syntax
rg '\{\s*#[a-z0-9-]+\s*\}' --type md content/blog/ | head -20

Repository: masterpointio/masterpoint.io

Length of output: 653


🏁 Script executed:

#!/bin/bash
# Sample a blog file to see heading structure
echo "=== Sample from 2023-08-10 blog file ==="
sed -n '1,100p' content/blog/2023-08-10-understanding-the-terraform-check-block-feature.md | head -80

Repository: masterpointio/masterpoint.io

Length of output: 7906


Disabling autoHeadingID will break existing in-page anchor links.

Setting autoHeadingID: false prevents Hugo from auto-generating heading IDs. Existing blog posts contain table-of-contents links like [Intro](#intro) and [Final thoughts](#final-thoughts) that rely on auto-generated IDs. With this setting and no explicit heading ID attributes, these links will be broken.

Either:

  1. Keep autoHeadingID: true, or
  2. Add explicit {#intro}, {#final-thoughts} attributes to all affected headings across the 20+ blog files.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config.yaml` at line 42, The change sets autoHeadingID to false which stops
Hugo from auto-generating heading IDs and will break existing in-page anchor
links; revert this by setting autoHeadingID: true in the config (or, if you
intentionally want it off, update all affected headings in your content to
include explicit IDs like {`#intro`} and {`#final-thoughts`} across the blog posts),
referencing the autoHeadingID setting to locate the config and the headings in
the content files to apply the explicit {#...} attributes.

{.font22 .text-center}

<div class="rowLinks text-center pt-3">
<a class="button btn-gradient" href="/#">Schedule a Discovery Call</a>
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

Replace placeholder CTA link with actual destination.

The "Schedule a Discovery Call" button uses href="/#" which is a placeholder. This should link to the actual scheduling or contact page (e.g., /contact/ or a Calendly link).

Suggested fix
-    <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a>
+    <a class="button btn-gradient" href="/contact/">Schedule a Discovery Call</a>
📝 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
<a class="button btn-gradient" href="/#">Schedule a Discovery Call</a>
<a class="button btn-gradient" href="/contact/">Schedule a Discovery Call</a>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/sections/iac-cta.md` at line 20, The CTA anchor element with class
"button btn-gradient" and label "Schedule a Discovery Call" currently uses a
placeholder href="/#"; update that anchor's href to the real destination (for
example "/contact/" or your external scheduling URL like a Calendly link) so the
button navigates to the actual scheduling/contact page; locate the anchor
element in iac-cta.md (the <a class="button btn-gradient"> element) and replace
the placeholder href value with the correct URL.

<b class="text-pine">IaC Confidence - <em class="text-pink">Priceless</em></b>
</div>

<b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b>
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

Escaped asterisks will render as literal ** characters.

The line \*\*No hidden costs. No surprises. No scope creep.\*\* uses escaped asterisks, which will display as literal ** text rather than bold formatting. Since the content is already wrapped in <b><em>, remove the escaped asterisks entirely.

Suggested fix
-<b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b>
+<b><em>No hidden costs. No surprises. No scope creep.</em></b>
📝 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
<b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b>
<b><em>No hidden costs. No surprises. No scope creep.</em></b>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/sections/iac-pricing.md` at line 25, Remove the literal escaped
asterisks from the markdown line so the content doesn't render `**` characters;
replace the text `\*\*No hidden costs. No surprises. No scope creep.\*\*` with
just `No hidden costs. No surprises. No scope creep.` and rely on the existing
<b><em> wrapper in the same line to provide bold/italic styling.

Comment on lines +12 to +26
faqs:
- title: "How long does the audit take?"
content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly."

- title: "What if we need help implementing the recommendations?"
content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly."

- title: "What size teams is this for?"
content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly."

- title: "What IaC tools do you support?"
content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly."

- title: "What if we're not ready to act on recommendations immediately?"
content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly."
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

All FAQ entries have identical placeholder content.

Each FAQ has a unique question but the same answer: "The audit spans 1 week..." This appears to be copy-paste placeholder content. Each question needs its own relevant answer:

  • "How long does the audit take?" → current answer is appropriate
  • "What if we need help implementing the recommendations?" → needs implementation support answer
  • "What size teams is this for?" → needs team size guidance
  • "What IaC tools do you support?" → needs supported tools list
  • "What if we're not ready to act on recommendations immediately?" → needs timeline flexibility answer
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/sections/iac-questions.md` around lines 12 - 26, The faqs array
contains five entries under the faqs key with distinct title strings but all
share the same placeholder content; replace the repeated "The audit spans 1
week..." answer for each title with specific, relevant text: keep the current
answer for "How long does the audit take?", add an implementation-support answer
for "What if we need help implementing the recommendations?" (describe support
options such as remediation assistance, consulting hours or follow-up
engagement), add team-size guidance for "What size teams is this for?" (e.g.,
typical engagements for small/medium/large teams and recommended contacts), list
supported IaC tools for "What IaC tools do you support?" (e.g., Terraform,
CloudFormation, ARM/Bicep, Pulumi, Kubernetes manifests), and provide a
timeline/flexibility answer for "What if we're not ready to act on
recommendations immediately?" (e.g., offering phased remediation,
prioritization, and re-assessment options); update the content values under the
existing faqs entries (use the title strings to locate each entry) with these
tailored answers.

Comment on lines +32 to +34
<div class="rowLinks text-center pt-4 mt-1">
<a class="button btn-gradient" href="/#">Schedule a Discovery Call</a>
</div> 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 | 🟠 Major

Replace raw CTA HTML with the button shortcode and a real target URL.

Line 33 uses href="/#" (effectively a dead CTA) and raw button markup. This should be rendered via the shared shortcode for consistency and maintainability.

As per coding guidelines: Use provided Hugo shortcodes (button, buttonout, form, testimonials, faqs, team, services, process, supports, client-logos) in content instead of duplicating HTML.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/sections/iac-what-you-get.md` around lines 32 - 34, Replace the raw
anchor/button HTML (the div with class "rowLinks" containing <a
href="/#">Schedule a Discovery Call</a>) with the shared Hugo "button" shortcode
and set its href to a real scheduling target (e.g., your contact page or
calendar/booking URL); use the "button" shortcode name so styling and behavior
are consistent across the site and remove the dead href="/#". Ensure the inner
text remains "Schedule a Discovery Call" and preserve any needed wrapper
(rowLinks) for layout.

Comment on lines +8 to +10
banner_btn_label: Schedule a Discovery Call
banner_btn_link: /#
#banner_link_label: Audit Your IaC →
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

Replace the placeholder banner CTA target.

banner_btn_link: /# makes the page’s primary CTA effectively dead. It should point to the actual booking/contact destination before this copy ships.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/services/iac-audit.md` around lines 8 - 10, The banner's CTA target
is a placeholder: replace the value of banner_btn_link (currently "/#") with the
real booking/contact URL so the primary CTA (banner_btn_label) points to the
actual scheduling or contact destination; update the string for banner_btn_link
to the production booking link or route used by your site.


<main role="main" class="main-sections">
{{ $myVar := .Params.sections }}
{{ $mgatag := index site.Taxonomies.section_categories }}
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

🌐 Web query:

In Hugo templates, is {{ index site.Taxonomies.section_categories }}valid, or doesindexrequire a key/index argument (e.g.,index MAP "key")?

💡 Result:

{{ index site.Taxonomies.section_categories }} is not valid: Hugo’s index (alias of collections.Index) requires at least one key/index argument: index SLICE|MAP KEY... (e.g., {{ index $m "b" }}).[1]

If you just want the taxonomy map, use:

{{ site.Taxonomies.section_categories }}

Or, if you need to access it by a variable key (or a key that can’t be dot-accessed), use:

{{ index site.Taxonomies "section_categories" }}

[1]


Remove invalid index call to prevent template render failure.

Line 55 incorrectly uses index with only one argument. Hugo's index function requires at least one key/index argument (e.g., {{ index MAP "key" }}). To access the taxonomy map directly, use:

Fix
-        {{ $mgatag := index site.Taxonomies.section_categories }}
+        {{ $mgatag := site.Taxonomies.section_categories }}
📝 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
{{ $mgatag := index site.Taxonomies.section_categories }}
{{ $mgatag := site.Taxonomies.section_categories }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@layouts/services/single.html` at line 55, The template uses an invalid call
to the Hugo index function: replace the incorrect "{{ $mgatag := index
site.Taxonomies.section_categories }}" by directly assigning the taxonomy map to
$mgatag (or, if you intended to select a specific key, call index with the map
and that key) so that $mgatag references site.Taxonomies.section_categories
correctly; update the assignment to use either direct access
(site.Taxonomies.section_categories) or a proper index call with both map and
key in the declaration for the variable $mgatag.

Comment on lines +1 to +12
<div id="faqsBlock">
{{ range $index, $faq := .Page.Params.faqs }}
<div class="faqBx" id="faq-{{ $index }}">
<h3 class="faqQ">
<a href="javascript:void(0)">{{ $faq.title }}</a>
</h3>
<div class="faqA">
{{ $faq.content | markdownify }}
</div>
</div>
{{ end }}
</div> 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 | 🟡 Minor

Typo in filename: "accordian" should be "accordion".

The shortcode filename contains a spelling error. This affects how content authors invoke it ({{< accordian >}} vs {{< accordion >}}).

Suggested rename

Rename layouts/shortcodes/accordian.htmllayouts/shortcodes/accordion.html

Then update references in content files (e.g., content/sections/iac-questions.md line 33).

🧰 Tools
🪛 HTMLHint (1.9.2)

[error] 1-1: Doctype must be declared before any non-comment content.

(doctype-first)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@layouts/shortcodes/accordian.html` around lines 1 - 12, Rename the shortcode
file from "accordian.html" to the correctly spelled "accordion.html" and update
all shortcode invocations from {{< accordian >}} to {{< accordion >}} (e.g.,
update content/sections/iac-questions.md and any other files referencing the old
name); ensure the template contents (the block using .Page.Params.faqs and ids
like faq-{{ $index }}) remain unchanged so the behavior is identical after
renaming.

{{ $id := .Get "id" }}

{{ with .Page.Params.platform_tiles }}
<div class="row platform-row" id="{{ $id }}">
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

Only render the id attribute when the shortcode caller passes one.

This currently outputs id="" for every call site that omits id, which creates invalid/duplicate DOM ids. Make the attribute conditional instead.

Suggested fix
-<div class="row platform-row" id="{{ $id }}">
+<div class="row platform-row"{{ with $id }} id="{{ . }}"{{ end }}>
📝 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
<div class="row platform-row" id="{{ $id }}">
<div class="row platform-row"{{ with $id }} id="{{ . }}"{{ end }}>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@layouts/shortcodes/platform-tiles.html` at line 5, The div currently always
emits id="" which creates invalid/duplicate DOM ids; update the shortcode
template so the id attribute on the element with class "row platform-row" is
only rendered when the caller provides a non-empty $id (e.g. wrap the id
attribute in a conditional like if/with for $id), so when $id is empty the id
attribute is omitted entirely.

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