| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /tmp/ |
Upload File : |
#!/usr/bin/env bash
#
# Seed Pulsar Analytics — single-page SaaS landing site.
# Idempotent: updates the front page if it already exists.
#
# Usage:
# wp_cli="sudo -u www-data wp --path=/var/www/wp/projects/pulsar/public" bash seed-pages.sh
#
WP="${wp_cli:-wp}"
SOURCE_PHOTOS="${SOURCE_PHOTOS:-/var/www/wp/projects/pulsar/source-photos}"
step() { echo; echo "=== $1 ==="; }
ok() { echo " ✓ $*"; }
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
# ---------- Site icon (favicon) ----------
# 512x512 source PNG — WordPress generates all favicon sizes (16, 32, 180
# apple-touch, 270 windows-tile, plus /favicon.ico) from this one attachment
# and emits the <link rel="icon"> tags automatically via wp_site_icon().
#
# Idempotent: looks up an existing attachment by post_name=site-icon-image
# first so the weekly reset cron doesn't accumulate orphan duplicates.
step "Site icon"
if [ -f "$SOURCE_PHOTOS/site-icon.png" ]; then
ICON_ID=$($WP post list --post_type=attachment --name=site-icon-image \
--field=ID --posts_per_page=1 2>/dev/null | tail -1)
if [[ ! "$ICON_ID" =~ ^[0-9]+$ ]] || [ -z "$ICON_ID" ]; then
OUT=$($WP media import "$SOURCE_PHOTOS/site-icon.png" \
--title="Pulsar Analytics site icon" \
--alt="Pulsar Analytics favicon" --porcelain 2>&1)
ICON_ID=$(echo "$OUT" | tail -1)
if [[ "$ICON_ID" =~ ^[0-9]+$ ]]; then
$WP post update "$ICON_ID" --post_name=site-icon-image >/dev/null 2>&1
ok "imported site-icon → attachment $ICON_ID"
else
echo " ✗ site-icon import failed: $OUT" >&2
ICON_ID=""
fi
else
ok "reused existing site-icon attachment $ICON_ID"
fi
if [ -n "$ICON_ID" ]; then
$WP option update site_icon "$ICON_ID" >/dev/null
ok "site_icon option set to $ICON_ID"
fi
else
ok "no site-icon.png in $SOURCE_PHOTOS — skipping favicon setup"
fi
# ---------- Front page content ----------
cat > "$TMP/front-page.html" <<'BLOCKS'
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|90","right":"var:preset|spacing|50","bottom":"var:preset|spacing|90","left":"var:preset|spacing|50"}}},"backgroundColor":"base","layout":{"type":"constrained","wideSize":"1200px"}} -->
<div class="wp-block-group has-base-background-color has-background" style="padding-top:var(--wp--preset--spacing--90);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--90);padding-left:var(--wp--preset--spacing--50)">
<!-- wp:group {"layout":{"type":"constrained","contentSize":"920px"},"style":{"spacing":{"blockGap":"var:preset|spacing|50"}}} -->
<div class="wp-block-group">
<!-- wp:paragraph {"fontSize":"small","style":{"color":{"text":"var:preset|color|accent"},"typography":{"textTransform":"uppercase","letterSpacing":"0.12em","fontWeight":"700"}}} -->
<p class="has-accent-color has-text-color has-small-font-size" style="font-weight:700;letter-spacing:0.12em;text-transform:uppercase">PULSAR ANALYTICS</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":1,"style":{"typography":{"fontSize":"clamp(2.75rem, 6vw, 4.75rem)","fontWeight":"800","lineHeight":"1.02","letterSpacing":"-0.03em"}}} -->
<h1 class="wp-block-heading" style="font-size:clamp(2.75rem, 6vw, 4.75rem);font-weight:800;letter-spacing:-0.03em;line-height:1.02">Reporting that survives the QBR.</h1>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"large","style":{"color":{"text":"var:preset|color|muted"},"typography":{"lineHeight":"1.55"},"spacing":{"margin":{"top":"var:preset|spacing|50"}}}} -->
<p class="has-large-font-size" style="color:var(--wp--preset--color--muted);line-height:1.55;margin-top:var(--wp--preset--spacing--50)">Stop building monthly client decks from a thousand tabs. Pulsar wires GA4, Search Console, ad platforms, and CRM into one dashboard your client can read without explanation.</p>
<!-- /wp:paragraph -->
<!-- wp:buttons {"layout":{"type":"flex","flexWrap":"wrap"},"style":{"spacing":{"blockGap":"var:preset|spacing|40","margin":{"top":"var:preset|spacing|60"}}}} -->
<div class="wp-block-buttons" style="margin-top:var(--wp--preset--spacing--60)">
<!-- wp:button {"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","right":"var:preset|spacing|70","bottom":"var:preset|spacing|40","left":"var:preset|spacing|70"}}}} -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="#pricing" style="padding:var(--wp--preset--spacing--40) var(--wp--preset--spacing--70)">Start free trial</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline","textColor":"primary","style":{"border":{"color":"var:preset|color|primary","width":"1px","radius":"6px"}}} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-primary-color has-text-color wp-element-button" style="border-color:var(--wp--preset--color--primary);border-width:1px;border-radius:6px" href="#features">See it work</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
<!-- wp:paragraph {"fontSize":"small","style":{"color":{"text":"var:preset|color|muted"},"spacing":{"margin":{"top":"var:preset|spacing|60"}}}} -->
<p class="has-small-font-size" style="color:var(--wp--preset--color--muted);margin-top:var(--wp--preset--spacing--60)">14-day trial · No credit card · 5-minute setup</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:group -->
<!-- wp:sfp-blocks/trust-stack {"stats":[{"value":340,"label":"Agencies","suffix":"+"},{"value":12,"label":"Million reports sent","suffix":"M"},{"value":4.8,"label":"Avg rating","suffix":"★"},{"value":2,"label":"Avg setup","suffix":" min"}]} /-->
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|80","right":"var:preset|spacing|50","bottom":"var:preset|spacing|80","left":"var:preset|spacing|50"}}},"layout":{"type":"constrained","wideSize":"1200px"}} -->
<div id="features" class="wp-block-group" style="padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)">
<!-- wp:group {"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"},"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained","contentSize":"720px"}} -->
<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--70)">
<!-- wp:paragraph {"fontSize":"small","style":{"color":{"text":"var:preset|color|accent"},"typography":{"textTransform":"uppercase","letterSpacing":"0.12em","fontWeight":"700"}}} -->
<p class="has-accent-color has-text-color has-small-font-size" style="font-weight:700;letter-spacing:0.12em;text-transform:uppercase">FEATURES</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":2} -->
<h2 class="wp-block-heading">Built for the meeting, not the SQL query.</h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"large","style":{"color":{"text":"var:preset|color|muted"}}} -->
<p class="has-large-font-size" style="color:var(--wp--preset--color--muted)">Three things that actually move the needle for retainer renewals.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|60","left":"var:preset|spacing|60"}}}} -->
<div class="wp-block-columns">
<!-- wp:column -->
<div class="wp-block-column">
<!-- wp:paragraph {"fontSize":"x-large","style":{"color":{"text":"var:preset|color|accent"},"typography":{"fontWeight":"800","lineHeight":"1"}}} -->
<p class="has-accent-color has-text-color has-x-large-font-size" style="font-weight:800;line-height:1">01</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Pre-built client narratives</h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"medium","style":{"color":{"text":"var:preset|color|muted"}}} -->
<p class="has-medium-font-size" style="color:var(--wp--preset--color--muted)">"What we did" / "What it moved" / "What's next" — written in plain English, generated from your actual numbers, ready for the deck before the meeting starts.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column">
<!-- wp:paragraph {"fontSize":"x-large","style":{"color":{"text":"var:preset|color|accent"},"typography":{"fontWeight":"800","lineHeight":"1"}}} -->
<p class="has-accent-color has-text-color has-x-large-font-size" style="font-weight:800;line-height:1">02</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Anomaly alerts before clients ask</h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"medium","style":{"color":{"text":"var:preset|color|muted"}}} -->
<p class="has-medium-font-size" style="color:var(--wp--preset--color--muted)">Drops in conversion. Ad spend creep. Search rank slides. Pulsar pages you when the numbers move, not when the client emails to ask why.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column">
<!-- wp:paragraph {"fontSize":"x-large","style":{"color":{"text":"var:preset|color|accent"},"typography":{"fontWeight":"800","lineHeight":"1"}}} -->
<p class="has-accent-color has-text-color has-x-large-font-size" style="font-weight:800;line-height:1">03</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">White-label everything</h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"medium","style":{"color":{"text":"var:preset|color|muted"}}} -->
<p class="has-medium-font-size" style="color:var(--wp--preset--color--muted)">Your logo. Your colors. Your domain. Clients see your brand, not ours. Pulsar runs the math; you take the credit.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|80","right":"var:preset|spacing|50","bottom":"var:preset|spacing|80","left":"var:preset|spacing|50"}},"border":{"top":{"color":"var:preset|color|border","width":"1px"}}},"layout":{"type":"constrained","wideSize":"1200px"}} -->
<div id="pricing" class="wp-block-group" style="border-top-color:var(--wp--preset--color--border);border-top-width:1px;padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)">
<!-- wp:group {"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"},"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained","contentSize":"720px"}} -->
<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--70)">
<!-- wp:paragraph {"fontSize":"small","style":{"color":{"text":"var:preset|color|accent"},"typography":{"textTransform":"uppercase","letterSpacing":"0.12em","fontWeight":"700"}}} -->
<p class="has-accent-color has-text-color has-small-font-size" style="font-weight:700;letter-spacing:0.12em;text-transform:uppercase">PRICING</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":2} -->
<h2 class="wp-block-heading">Per client, per month. No seats.</h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"large","style":{"color":{"text":"var:preset|color|muted"}}} -->
<p class="has-large-font-size" style="color:var(--wp--preset--color--muted)">Bring as many team members as you want. We charge for what we report on.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|50","left":"var:preset|spacing|50"}}}} -->
<div class="wp-block-columns">
<!-- wp:column -->
<div class="wp-block-column">
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|60","right":"var:preset|spacing|60","bottom":"var:preset|spacing|60","left":"var:preset|spacing|60"},"blockGap":"var:preset|spacing|40"},"border":{"color":"var:preset|color|border","width":"1px","radius":"10px"}},"backgroundColor":"white"} -->
<div class="wp-block-group has-white-background-color has-background has-border-color" style="border-color:var(--wp--preset--color--border);border-width:1px;border-radius:10px;padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<!-- wp:heading {"level":3,"style":{"typography":{"fontSize":"1.25rem"}}} -->
<h3 class="wp-block-heading" style="font-size:1.25rem">Starter</h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"style":{"typography":{"fontSize":"3rem","fontWeight":"800","lineHeight":"1"}}} -->
<p style="font-size:3rem;font-weight:800;line-height:1">$29<span style="font-size:1rem;font-weight:500;color:var(--wp--preset--color--muted)">/client/mo</span></p>
<!-- /wp:paragraph -->
<!-- wp:list {"style":{"spacing":{"blockGap":"var:preset|spacing|30"},"typography":{"fontSize":"0.9375rem"}}} -->
<ul class="wp-block-list" style="font-size:0.9375rem">
<!-- wp:list-item --><li>Up to 5 clients</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>GA4 + Search Console</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Weekly auto-reports</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Pulsar-branded</li><!-- /wp:list-item -->
</ul>
<!-- /wp:list -->
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"className":"is-style-outline","textColor":"primary","style":{"border":{"color":"var:preset|color|primary","width":"1px","radius":"6px"}}} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-primary-color has-text-color wp-element-button" style="border-color:var(--wp--preset--color--primary);border-width:1px;border-radius:6px" href="#">Start trial</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column">
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|60","right":"var:preset|spacing|60","bottom":"var:preset|spacing|60","left":"var:preset|spacing|60"},"blockGap":"var:preset|spacing|40"},"border":{"color":"var:preset|color|primary","width":"2px","radius":"10px"}},"backgroundColor":"white"} -->
<div class="wp-block-group has-white-background-color has-background has-border-color" style="border-color:var(--wp--preset--color--primary);border-width:2px;border-radius:10px;padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<!-- wp:paragraph {"fontSize":"small","style":{"color":{"text":"var:preset|color|accent"},"typography":{"fontWeight":"700","textTransform":"uppercase","letterSpacing":"0.08em"}}} -->
<p class="has-accent-color has-text-color has-small-font-size" style="font-weight:700;letter-spacing:0.08em;text-transform:uppercase">Most popular</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":3,"style":{"typography":{"fontSize":"1.25rem"}}} -->
<h3 class="wp-block-heading" style="font-size:1.25rem">Studio</h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"style":{"typography":{"fontSize":"3rem","fontWeight":"800","lineHeight":"1"}}} -->
<p style="font-size:3rem;font-weight:800;line-height:1">$79<span style="font-size:1rem;font-weight:500;color:var(--wp--preset--color--muted)">/client/mo</span></p>
<!-- /wp:paragraph -->
<!-- wp:list {"style":{"spacing":{"blockGap":"var:preset|spacing|30"},"typography":{"fontSize":"0.9375rem"}}} -->
<ul class="wp-block-list" style="font-size:0.9375rem">
<!-- wp:list-item --><li>Up to 25 clients</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Everything in Starter +</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Ad platforms (Meta, Google, LinkedIn)</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Anomaly alerts</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>White-label custom domain</li><!-- /wp:list-item -->
</ul>
<!-- /wp:list -->
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="#">Start trial</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column">
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|60","right":"var:preset|spacing|60","bottom":"var:preset|spacing|60","left":"var:preset|spacing|60"},"blockGap":"var:preset|spacing|40"},"border":{"color":"var:preset|color|border","width":"1px","radius":"10px"}},"backgroundColor":"white"} -->
<div class="wp-block-group has-white-background-color has-background has-border-color" style="border-color:var(--wp--preset--color--border);border-width:1px;border-radius:10px;padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<!-- wp:heading {"level":3,"style":{"typography":{"fontSize":"1.25rem"}}} -->
<h3 class="wp-block-heading" style="font-size:1.25rem">Agency</h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"style":{"typography":{"fontSize":"3rem","fontWeight":"800","lineHeight":"1"}}} -->
<p style="font-size:3rem;font-weight:800;line-height:1">$199<span style="font-size:1rem;font-weight:500;color:var(--wp--preset--color--muted)">/client/mo</span></p>
<!-- /wp:paragraph -->
<!-- wp:list {"style":{"spacing":{"blockGap":"var:preset|spacing|30"},"typography":{"fontSize":"0.9375rem"}}} -->
<ul class="wp-block-list" style="font-size:0.9375rem">
<!-- wp:list-item --><li>Unlimited clients</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Everything in Studio +</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>CRM (HubSpot, Salesforce, Pipedrive)</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Custom integrations / API</li><!-- /wp:list-item -->
<!-- wp:list-item --><li>Dedicated CSM</li><!-- /wp:list-item -->
</ul>
<!-- /wp:list -->
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"className":"is-style-outline","textColor":"primary","style":{"border":{"color":"var:preset|color|primary","width":"1px","radius":"6px"}}} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-primary-color has-text-color wp-element-button" style="border-color:var(--wp--preset--color--primary);border-width:1px;border-radius:6px" href="#">Talk to sales</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|80","right":"var:preset|spacing|50","bottom":"var:preset|spacing|80","left":"var:preset|spacing|50"}},"border":{"top":{"color":"var:preset|color|border","width":"1px"}}},"layout":{"type":"constrained","contentSize":"720px"}} -->
<div class="wp-block-group" style="border-top-color:var(--wp--preset--color--border);border-top-width:1px;padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)">
<!-- wp:paragraph {"align":"center","fontSize":"x-large","style":{"typography":{"fontWeight":"600","fontStyle":"italic","lineHeight":"1.35","letterSpacing":"-0.01em"}}} -->
<p class="has-text-align-center has-x-large-font-size" style="font-style:italic;font-weight:600;letter-spacing:-0.01em;line-height:1.35">"We replaced four spreadsheets and three GA4 reports with one Pulsar dashboard. Client meetings went from 'let me explain the numbers' to 'here's what we should do next.'"</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"align":"center","fontSize":"small","style":{"color":{"text":"var:preset|color|muted"},"spacing":{"margin":{"top":"var:preset|spacing|40"}}}} -->
<p class="has-text-align-center has-small-font-size" style="color:var(--wp--preset--color--muted);margin-top:var(--wp--preset--spacing--40)"><strong>Maya Chen</strong> · Co-founder, Northbeam Digital · 22-person performance agency</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|80","right":"var:preset|spacing|50","bottom":"var:preset|spacing|80","left":"var:preset|spacing|50"}},"border":{"top":{"color":"var:preset|color|border","width":"1px"}}},"layout":{"type":"constrained","wideSize":"800px"}} -->
<div class="wp-block-group" style="border-top-color:var(--wp--preset--color--border);border-top-width:1px;padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)">
<!-- wp:heading {"level":2,"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"}}}} -->
<h2 class="wp-block-heading" style="margin-bottom:var(--wp--preset--spacing--70)">Questions, answered</h2>
<!-- /wp:heading -->
<!-- wp:details {"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","right":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|50"}},"border":{"width":"1px","radius":"8px"}}} -->
<details class="wp-block-details" style="border-width:1px;border-radius:8px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)">
<summary><strong>Which platforms does Pulsar connect to?</strong></summary>
<!-- wp:paragraph -->
<p>Google Analytics 4, Google Search Console, Meta Ads, Google Ads, LinkedIn Ads (Studio + Agency), and the major CRMs — HubSpot, Salesforce, Pipedrive (Agency only). New integrations ship monthly.</p>
<!-- /wp:paragraph -->
</details>
<!-- /wp:details -->
<!-- wp:details {"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","right":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|50"},"margin":{"top":"var:preset|spacing|40"}},"border":{"width":"1px","radius":"8px"}}} -->
<details class="wp-block-details" style="border-width:1px;border-radius:8px;margin-top:var(--wp--preset--spacing--40);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)">
<summary><strong>How does the white-label work?</strong></summary>
<!-- wp:paragraph -->
<p>Your logo, your colors, your domain (CNAME to <code>reports.pulsar.io</code>). Client-facing dashboards show your brand, not ours. White-label is included on Studio and Agency tiers.</p>
<!-- /wp:paragraph -->
</details>
<!-- /wp:details -->
<!-- wp:details {"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","right":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|50"},"margin":{"top":"var:preset|spacing|40"}},"border":{"width":"1px","radius":"8px"}}} -->
<details class="wp-block-details" style="border-width:1px;border-radius:8px;margin-top:var(--wp--preset--spacing--40);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)">
<summary><strong>What happens when a client churns?</strong></summary>
<!-- wp:paragraph -->
<p>Archive the client in one click. Their dashboard goes read-only for 90 days (for reference), then deletes. No reduction in your seat count when you drop a slot.</p>
<!-- /wp:paragraph -->
</details>
<!-- /wp:details -->
<!-- wp:details {"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","right":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|50"},"margin":{"top":"var:preset|spacing|40"}},"border":{"width":"1px","radius":"8px"}}} -->
<details class="wp-block-details" style="border-width:1px;border-radius:8px;margin-top:var(--wp--preset--spacing--40);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)">
<summary><strong>Is Pulsar real?</strong></summary>
<!-- wp:paragraph -->
<p>No — Pulsar is a portfolio demo built by <a href="https://philiprehberger.com">Philip Rehberger</a> to show that WordPress can run a modern SaaS landing page. The platform that hosts it is real (<a href="https://wp.philiprehberger.com">wp.philiprehberger.com</a>); the SaaS is fictional.</p>
<!-- /wp:paragraph -->
</details>
<!-- /wp:details -->
</div>
<!-- /wp:group -->
<!-- wp:group {"style":{"spacing":{"padding":{"top":"var:preset|spacing|80","right":"var:preset|spacing|50","bottom":"var:preset|spacing|80","left":"var:preset|spacing|50"}},"border":{"top":{"color":"var:preset|color|border","width":"1px"}}},"backgroundColor":"primary","textColor":"white","layout":{"type":"constrained","contentSize":"800px"}} -->
<div class="wp-block-group has-white-color has-primary-background-color has-text-color has-background" style="border-top-color:var(--wp--preset--color--border);border-top-width:1px;padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--50)">
<!-- wp:heading {"level":2,"textAlign":"center","textColor":"white","style":{"typography":{"fontWeight":"800"}}} -->
<h2 class="wp-block-heading has-text-align-center has-white-color has-text-color" style="font-weight:800">Stop reformatting reports. Start advising.</h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"large","style":{"color":{"text":"#cfd4e0"},"spacing":{"margin":{"top":"var:preset|spacing|40"}},"typography":{"lineHeight":"1.55"}}} -->
<p class="has-text-align-center has-large-font-size" style="color:#cfd4e0;line-height:1.55;margin-top:var(--wp--preset--spacing--40)">14-day free trial. No credit card. Connect one client in five minutes and see the first auto-report inside an hour.</p>
<!-- /wp:paragraph -->
<!-- wp:buttons {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"center"},"style":{"spacing":{"blockGap":"var:preset|spacing|40","margin":{"top":"var:preset|spacing|60"}}}} -->
<div class="wp-block-buttons" style="margin-top:var(--wp--preset--spacing--60)">
<!-- wp:button {"backgroundColor":"accent","textColor":"white","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","right":"var:preset|spacing|70","bottom":"var:preset|spacing|40","left":"var:preset|spacing|70"}}}} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-accent-background-color has-text-color has-background wp-element-button" href="#pricing" style="padding:var(--wp--preset--spacing--40) var(--wp--preset--spacing--70)">Start free trial</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->
BLOCKS
step "Front page"
# Find or create the front page
FRONT_ID=$($WP option get page_on_front 2>/dev/null | tail -1)
if [ -z "$FRONT_ID" ] || [ "$FRONT_ID" = "0" ]; then
PID=$(cat "$TMP/front-page.html" | $WP post create - \
--post_type=page --post_status=publish \
--post_title="Pulsar Analytics" --post_name=pulsar-home \
--porcelain | tail -1)
$WP option update show_on_front page
$WP option update page_on_front "$PID"
ok "front page created (id $PID) + set as front"
else
cat "$TMP/front-page.html" | $WP post update "$FRONT_ID" -
ok "front page (id $FRONT_ID) content refreshed"
fi
step "Permalinks + cache"
$WP rewrite structure '/%postname%/' --hard 2>&1 | tail -1 || true
$WP cache flush 2>&1 | tail -1
step "Done"
echo " Pulsar landing live at https://pulsar.wp.philiprehberger.com/"