← Back to ProMotionAI: From SKU to Social
Owner tools
For the owner of ProMotionAI: From SKU to Social (promotionai.app).
Ownership
This launch is unclaimed.
Claim this launch to get an owner link, re-scan after fixes, track your score improvements, or remove your site from StackScope entirely.
Fixes that improve your score
Security
- HIGHAdd the missing security response headersMissing: Permissions-Policy, Content-Security-PolicyWhyEach header limits a class of browser-side attack: clickjacking, XSS, MIME sniffing, plaintext fallback. Missing headers leave default-permissive behaviour in place.WhereMost are one line each in your server config, reverse proxy, CDN, or framework headers.
Page basics & SEO
- MEDIUMAdd Twitter card meta tagsNo Twitter card tags were detected on your page.WhyWithout them, links shared on X render as bare text instead of a rich preview card with image, title, and description. Rich cards have meaningfully higher CTR.WhereAdd
<meta name="twitter:card" content="summary_large_image">, plustwitter:title,twitter:description, andtwitter:imageto your<head>.
Starter Content-Security-Policy
We didn't see a Content-Security-Policy header on your site.
Here's a starter policy built from the 2
third-party
vendors we detected
(google-analytics, google-fonts).
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self' 'unsafe-inline' https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https://www.google-analytics.com https://www.googletagmanager.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://analytics.google.com https://stats.g.doubleclick.net https://www.google-analytics.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self';
Content-Security-Policy-Report-Only first (as shown above),
walk through your site with DevTools Console open, and relax the policy until no CSP
violations fire. Only then rename the header to Content-Security-Policy to
enforce.
We probably don't cover everything. Vendors that only load behind auth, self-hosted scripts, custom analytics, and anything we haven't fingerprinted yet won't appear here. Inline scripts work because we've included
'unsafe-inline'; you
can tighten that later with nonces once the basic policy is stable. The Report-Only
walkthrough will flag anything we missed. That's the whole point of starting there.
Optional improvements
These don't change your StackScope score but cover SEO, agent-readiness, security-researcher discoverability, and compliance items worth addressing.
Security
- LOWAdd /.well-known/security.txtWhyLets security researchers report vulnerabilities responsibly through a published contact channel.WhereCreate
/.well-known/security.txtwith aContact:email andExpires:date.
Legal & compliance
- HIGHAdd a cookie-consent bannerAnalytics detected on this site without a consent manager.WhyUK/EU GDPR requires opt-in before analytics scripts fire; about half of US state privacy laws now require honouring the Global Privacy Control browser signal as a universal opt-out.WhereDrop in Cookiebot, Usercentrics, Osano, or Iubenda Consent, or hand-roll a banner plus Google's
Consent Mode v2.
Email security
- HIGHAdd an SPF recordNo SPF TXT record found at the apex domain.WhyWithout SPF and DMARC, receiving servers have fewer signals to reject spoofed mail using your domain.WherePublish a TXT record at the apex like
v=spf1 include:_spf.google.com ~all(replace theinclude:with your real sender, then end with~allfor soft-fail or-allfor strict). - HIGHAdd a DMARC recordNo DMARC record at
_dmarc.{your-domain}.WhyDMARC tells receivers what to do when mail fails SPF or DKIM. Without one, they fall back to permissive defaults and your domain is more easily spoofed.WhereAdd a TXT record at_dmarc.{your-domain}. Start withv=DMARC1; p=none; rua=mailto:[email protected](monitoring), then move top=quarantineandp=rejectonce you're sure your real mail passes. - MEDIUMConfigure DKIM with your email providerNo DKIM record found at the common selectors we check.WhyDKIM signs your outbound mail with a cryptographic key receivers can verify. Without it, receivers can't tell your real mail from a spoof.WhereAsk your email provider for their DKIM setup. It's usually one TXT record at
{selector}._domainkey.{your-domain}. - LOWAdd MTA-STSNo MTA-STS DNS record published.WhyPrevents mail to your domain being downgraded to plaintext mid-flight by a network attacker. Most launches don't have this, so deploying it puts you a tier above generic email-security checks.WherePublish a TXT record at
_mta-sts.{your-domain}plus a policy file athttps://mta-sts.{your-domain}/.well-known/mta-sts.txt. - LOWAdd a TLS-RPT recordNo TLS-RPT record at
_smtp._tls.{domain}.WhyReceivers can tell you when STARTTLS handshakes to your mail server fail. Without it, silent TLS failures are invisible.WherePublish one TXT record at_smtp._tls.{your-domain}likev=TLSRPTv1; rua=mailto:[email protected].
Page basics & SEO
- LOWTrim your meta description to under 160 charactersCurrently 172 characters: "Transform your product images into engaging AI-powered videos. Increase conversions by 40% on average. Works with Instagram, TikTok, Facebook, YouTube. Free tier available."WhyGoogle truncates around 155-160 characters on desktop SERPs (less on mobile), so anything past that won't appear in the snippet.WhereEdit your
<meta name="description">tag. Put the most click-worthy phrase first.
Agent / AI
- LOWAdd an llms.txt fileWhyHelps AI models understand your site's content and how to use it. Not yet a standard but gaining adoption.WhereCreate
/llms.txtat the site root with a brief overview and key URLs. - LOWDeclare a Content-Signal in robots.txtWhyStates how you'd like AI systems to use your content (training, search, agent input). Without it, AI crawlers fall back to whatever default policy each vendor applies.WhereAdd a
Content-Signal:line to yourrobots.txt. - LOWAdd Link response headersWhyLets agents discover your sitemap, privacy policy, and docs without parsing HTML, which most lightweight agents skip.WhereSet
Link:response headers in your server config or framework middleware.
If a tip looks wrong (for example it says "add a consent banner" and you already have one) the detection's the bug, not you. StackScope sees what's public from the outside: HTTP response, rendered HTML, cookies, and DNS. We can miss vendors that load behind consent, are self-hosted, or use an install shape we haven't fingerprinted yet. Email [email protected] and we'll look into it.
Copy into Cursor, Claude, or ChatGPT
This prompt includes the detected stack and only the fixes StackScope found. It asks the AI to make concrete file-level changes, not a vague website review.
Score-affecting basics only. Ask your AI to handle these first; come back for the optional hardening once they're done.
Everything: score-affecting fixes plus optional email security, agent metadata, and best-practice items. Longer prompt, more for an "all in one" agent run.
Using an autonomous agent?
Point the agent at this SKILL.md URL and ask it to follow the skill. The framing stops agents defaulting to an open-ended page review.
https://stackscope.dev/launch/vsavgujw/skill.md
Share your score
Your score card renders automatically when you share the link.
Or embed a badge
Two badge options. Pick whichever fits your story.
Current score
Shows the latest score and updates within a few minutes of any recrawl. Best for ongoing display: if you fix something and recrawl, the badge reflects the new score automatically.
<a href="https://stackscope.dev/launch/vsavgujw/promotionai-from-sku-to-social"><img src="https://stackscope.dev/badge/vsavgujw/current.svg" alt="StackScope score for ProMotionAI: From SKU to Social" height="24" /></a>
Launch score
Pinned to your launch-day snapshot and never changes. Marked with a small gold corner ribbon. Best for press kits, launch retrospectives, or anywhere you want a permanent record of how you shipped.
<a href="https://stackscope.dev/launch/vsavgujw/promotionai-from-sku-to-social"><img src="https://stackscope.dev/badge/vsavgujw.svg" alt="StackScope launch score for ProMotionAI: From SKU to Social" height="24" /></a>
Using a Content-Security-Policy?
Both badges are <img> tags from our domain, so your CSP needs to allow them.
Add stackscope.dev to your img-src directive
(example: img-src 'self' stackscope.dev;). Without it, browsers silently
block the badge and visitors see a broken image.