Summary
The .fmstr-blog-cta CTA block is used in 11 blog posts but the class is not defined anywhere in the codebase. Every one of these CTAs renders as plain body text with a bare underlined link instead of a styled call-to-action box.
Confirmed by grep across all .vue, .css, and .scss files — none of fmstr-blog-cta, fmstr-blog-cta__btn, or fmstr-blog-cta__meta appear in any stylesheet or component. The only CTA classes components/blog/BlogPostView.vue actually defines are .cta, .cta--brand, and .better.
Impact
These are conversion CTAs on live Google Forms content — the highest-traffic cluster on the blog. They currently render with no box, no button, and no visual weight.
What it looks like
Caught during review of #887. The highlighted region is .fmstr-blog-cta; the correctly-styled .better block sits directly below it on the same page for comparison:

Affected files
All are broken on master today:
content/blog/5-ways-to-view-responses-in-google-forms.md (line 109)
content/blog/captcha-for-google-forms.md (line 79)
content/blog/collect-email-address-google-form.md (line 113)
content/blog/form-limiter-add-on-for-google-forms.md (line 125)
content/blog/google-forms-webhooks.md (line 81)
content/blog/how-to-add-conditional-questions-in-google-forms.md (line 81)
content/blog/how-to-create-a-consent-form.md (line 168)
content/blog/how-to-save-google-forms-as-pdf.md (line 111)
content/blog/how-to-view-scores-in-google-forms.md (line 176)
content/blog/onboarding-mistakes.md (line 88)
An 11th instance is in content/blog/how-to-create-a-quiz-in-google-forms-the-only-guide-youll-need-in-2023.md (line 240). That one is introduced by #887 and is being tracked in that PR's review — it should be fixed there, not here.
Suggested fix
Two options:
- Migrate the content — replace each
.fmstr-blog-cta block with the inline gradient CTA card already used in nine other content files (see content/blog/is-google-form-hipaa-compliant.md:99 for the current shape), or with the existing .cta / .cta--brand pattern.
- Define the CSS — add
.fmstr-blog-cta styles to BlogPostView.vue and keep the existing markup.
Option 1 is probably preferable since it converges on one CTA pattern rather than adding a second.
Worth considering
There is no lint or CI on this repo, which is why this went unnoticed across 11 files. A build-time check that flags class names used in content/ but defined in no stylesheet would catch this class of bug automatically.
Summary
The
.fmstr-blog-ctaCTA block is used in 11 blog posts but the class is not defined anywhere in the codebase. Every one of these CTAs renders as plain body text with a bare underlined link instead of a styled call-to-action box.Confirmed by grep across all
.vue,.css, and.scssfiles — none offmstr-blog-cta,fmstr-blog-cta__btn, orfmstr-blog-cta__metaappear in any stylesheet or component. The only CTA classescomponents/blog/BlogPostView.vueactually defines are.cta,.cta--brand, and.better.Impact
These are conversion CTAs on live Google Forms content — the highest-traffic cluster on the blog. They currently render with no box, no button, and no visual weight.
What it looks like
Caught during review of #887. The highlighted region is
.fmstr-blog-cta; the correctly-styled.betterblock sits directly below it on the same page for comparison:Affected files
All are broken on
mastertoday:content/blog/5-ways-to-view-responses-in-google-forms.md(line 109)content/blog/captcha-for-google-forms.md(line 79)content/blog/collect-email-address-google-form.md(line 113)content/blog/form-limiter-add-on-for-google-forms.md(line 125)content/blog/google-forms-webhooks.md(line 81)content/blog/how-to-add-conditional-questions-in-google-forms.md(line 81)content/blog/how-to-create-a-consent-form.md(line 168)content/blog/how-to-save-google-forms-as-pdf.md(line 111)content/blog/how-to-view-scores-in-google-forms.md(line 176)content/blog/onboarding-mistakes.md(line 88)An 11th instance is in
content/blog/how-to-create-a-quiz-in-google-forms-the-only-guide-youll-need-in-2023.md(line 240). That one is introduced by #887 and is being tracked in that PR's review — it should be fixed there, not here.Suggested fix
Two options:
.fmstr-blog-ctablock with the inline gradient CTA card already used in nine other content files (seecontent/blog/is-google-form-hipaa-compliant.md:99for the current shape), or with the existing.cta/.cta--brandpattern..fmstr-blog-ctastyles toBlogPostView.vueand keep the existing markup.Option 1 is probably preferable since it converges on one CTA pattern rather than adding a second.
Worth considering
There is no lint or CI on this repo, which is why this went unnoticed across 11 files. A build-time check that flags class names used in
content/but defined in no stylesheet would catch this class of bug automatically.