Publish via ShipPage
Terminal
curl -X POST https://shippage.ai/v1/publish \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"title": "Meeting notes",
"public": true,
"html": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>Meeting notes — 2026-04-19</title><style>\n *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #0f172a; background: #fff; }\n h1, h2, h3 { letter-spacing: -0.02em; }\n a { color: #2563eb; }\n</style><style>\n .wrap { max-width: 720px; margin: 0 auto; padding: 40px 24px; }\n header { border-bottom: 1px solid #e2e8f0; padding-bottom: 16px; margin-bottom: 24px; }\n header h1 { font-size: 26px; font-weight: 700; }\n header .meta { color: #64748b; font-size: 14px; margin-top: 8px; display: flex; gap: 16px; flex-wrap: wrap; }\n h2 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; color: #64748b; margin: 24px 0 12px; }\n .attendees { display: flex; flex-wrap: wrap; gap: 8px; }\n .pill { background: #f1f5f9; padding: 4px 10px; border-radius: 999px; font-size: 13px; color: #334155; }\n .decision { background: #ecfccb; border-left: 3px solid #84cc16; padding: 12px 16px; border-radius: 4px; margin-bottom: 8px; font-size: 14px; color: #365314; }\n .action { padding: 10px 0; border-bottom: 1px solid #e2e8f0; display: flex; gap: 12px; align-items: start; font-size: 14px; }\n .action input { margin-top: 4px; }\n .action .owner { color: #2563eb; font-weight: 500; }\n .action .due { color: #94a3b8; font-size: 12px; margin-left: auto; }\n .notes { font-size: 14px; color: #334155; line-height: 1.7; }\n .notes ul { margin: 8px 0 16px 20px; }\n </style></head><body><div class=\"wrap\">\n <header><h1>Pricing strategy sync</h1><div class=\"meta\"><span>April 19, 2026 · 60 min</span><span>Remote · Zoom</span></div></header>\n <h2>Attendees</h2><div class=\"attendees\"><span class=\"pill\">Alice (Eng)</span><span class=\"pill\">Bob (Product)</span><span class=\"pill\">Carol (GTM)</span><span class=\"pill\">Dan (Finance)</span></div>\n <h2>Decisions</h2>\n <div class=\"decision\"><strong>Pricing:</strong> $29/mo starter, $99/mo team, custom enterprise. Launch April 30.</div>\n <div class=\"decision\"><strong>Free tier:</strong> Kept at 20 publishes/month but upping retention to 30 days.</div>\n <h2>Action items</h2>\n <div class=\"action\"><input type=\"checkbox\"><div>Write pricing blog post <span class=\"owner\">— Carol</span></div><span class=\"due\">Apr 24</span></div>\n <div class=\"action\"><input type=\"checkbox\"><div>Build Stripe checkout flow <span class=\"owner\">— Alice</span></div><span class=\"due\">Apr 28</span></div>\n <div class=\"action\"><input type=\"checkbox\"><div>Update FAQ + landing page <span class=\"owner\">— Bob</span></div><span class=\"due\">Apr 30</span></div>\n <h2>Notes</h2>\n <div class=\"notes\"><ul>\n <li>Team price is 3.4× starter — positioned for 3-5 person teams with a shared billing account.</li>\n <li>Considered usage-based pricing; deferred to Q3 once we have 100+ paying customers.</li>\n <li>Enterprise: start at $500/mo, custom SLA, SAML.</li>\n </ul></div>\n </div></body></html>"
}
JSON
Raw HTML
meeting-notes.html
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Meeting notes — 2026-04-19</title><style>
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #0f172a; background: #fff; }
h1, h2, h3 { letter-spacing: -0.02em; }
a { color: #2563eb; }
</style><style>
.wrap { max-width: 720px; margin: 0 auto; padding: 40px 24px; }
header { border-bottom: 1px solid #e2e8f0; padding-bottom: 16px; margin-bottom: 24px; }
header h1 { font-size: 26px; font-weight: 700; }
header .meta { color: #64748b; font-size: 14px; margin-top: 8px; display: flex; gap: 16px; flex-wrap: wrap; }
h2 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; color: #64748b; margin: 24px 0 12px; }
.attendees { display: flex; flex-wrap: wrap; gap: 8px; }
.pill { background: #f1f5f9; padding: 4px 10px; border-radius: 999px; font-size: 13px; color: #334155; }
.decision { background: #ecfccb; border-left: 3px solid #84cc16; padding: 12px 16px; border-radius: 4px; margin-bottom: 8px; font-size: 14px; color: #365314; }
.action { padding: 10px 0; border-bottom: 1px solid #e2e8f0; display: flex; gap: 12px; align-items: start; font-size: 14px; }
.action input { margin-top: 4px; }
.action .owner { color: #2563eb; font-weight: 500; }
.action .due { color: #94a3b8; font-size: 12px; margin-left: auto; }
.notes { font-size: 14px; color: #334155; line-height: 1.7; }
.notes ul { margin: 8px 0 16px 20px; }
</style></head><body><div class="wrap">
<header><h1>Pricing strategy sync</h1><div class="meta"><span>April 19, 2026 · 60 min</span><span>Remote · Zoom</span></div></header>
<h2>Attendees</h2><div class="attendees"><span class="pill">Alice (Eng)</span><span class="pill">Bob (Product)</span><span class="pill">Carol (GTM)</span><span class="pill">Dan (Finance)</span></div>
<h2>Decisions</h2>
<div class="decision"><strong>Pricing:</strong> $29/mo starter, $99/mo team, custom enterprise. Launch April 30.</div>
<div class="decision"><strong>Free tier:</strong> Kept at 20 publishes/month but upping retention to 30 days.</div>
<h2>Action items</h2>
<div class="action"><input type="checkbox"><div>Write pricing blog post <span class="owner">— Carol</span></div><span class="due">Apr 24</span></div>
<div class="action"><input type="checkbox"><div>Build Stripe checkout flow <span class="owner">— Alice</span></div><span class="due">Apr 28</span></div>
<div class="action"><input type="checkbox"><div>Update FAQ + landing page <span class="owner">— Bob</span></div><span class="due">Apr 30</span></div>
<h2>Notes</h2>
<div class="notes"><ul>
<li>Team price is 3.4× starter — positioned for 3-5 person teams with a shared billing account.</li>
<li>Considered usage-based pricing; deferred to Q3 once we have 100+ paying customers.</li>
<li>Enterprise: start at $500/mo, custom SLA, SAML.</li>
</ul></div>
</div></body></html>