Previously

Seo Generator

seo-generator.vercel.app

This tool replaces that project. Same goal — turn a handful of facts about a page into metadata you can ship — rebuilt around one document model that compiles to every framework.

100 score

head — an SEO metadata editor for developers

Sections
338px / 600px · 37 chars

The clickable line in search results. Write the page's own name, not the site's.

Optional. %s is replaced by the title above.

845px / 920px · 148 chars

Not a ranking factor, but it decides whether anyone clicks.

The one address this content lives at. Must be absolute.

pricing per-seat billing team plan enterprise plan

Google ignores these. Keep them only if an internal search tool reads them.

Absolute URL, 1200×630. Crawlers fetch this from their own servers.

Preview a file from your machine to see how the card will look before you upload it anywhere.

Who publishes the site. Feeds the knowledge panel.

At least 112×112px.

https://github.com/northbound https://x.com/northbound https://www.linkedin.com/company/northbound

Social and directory profiles that belong to this organization.

The site itself. Add a search URL to enable the sitelinks search box.

Must contain {search_term_string}.

The path to this page. Replaces the URL line in results.
Trail
01
02
Questions answered on this page, verbatim.
Questions
01
02
03

Everything stays in this browser. Nothing is uploaded except the brief you send to a model, and only when you ask for it.

Controls
Call the platform
Call the network

Labels in this editor only. The emitted tags stay twitter: — that name is fixed by the card spec, and renaming it would stop the card from rendering.

Export index.html
Framework
Can't find your framework?

Paste inside <head>. Works anywhere. 129 lines

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Pricing for growing engineering teams — Northbound</title>
<meta name="description" content="Flat per-seat pricing with no usage metering or overage bills. Compare the Team and Enterprise plans, or start a 14-day trial without a credit card." />
<meta name="keywords" content="pricing, per-seat billing, team plan, enterprise plan" />
<meta name="author" content="Northbound" />
<meta name="publisher" content="Northbound" />
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
<meta name="referrer" content="strict-origin-when-cross-origin" />
<meta name="theme-color" content="#14161a" />
<meta name="color-scheme" content="light dark" />
<link rel="canonical" href="https://northbound.dev/pricing" />
<link rel="alternate" hreflang="en" href="https://northbound.dev/pricing" />
<link rel="alternate" hreflang="es-MX" href="https://northbound.dev/es/precios" />
<link rel="alternate" hreflang="x-default" href="https://northbound.dev/pricing" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Northbound pricing" />
<meta property="og:description" content="Flat per-seat pricing. No usage metering, no overage bills." />
<meta property="og:url" content="https://northbound.dev/pricing" />
<meta property="og:site_name" content="Northbound" />
<meta property="og:locale" content="en_US" />
<meta property="og:image" content="https://northbound.dev/og/pricing.png" />
<meta property="og:image:alt" content="A pricing table comparing the Team and Enterprise plans" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@northbound" />
<meta name="twitter:creator" content="@northbound" />
<meta name="twitter:title" content="Northbound pricing" />
<meta name="twitter:description" content="Per-seat, flat, and metered by nobody. 14-day trial, no card." />
<meta name="twitter:image" content="https://northbound.dev/og/pricing.png" />
<meta name="twitter:image:alt" content="A pricing table comparing the Team and Enterprise plans" />
<meta name="google-site-verification" content="replace-with-your-search-console-token" />
<meta name="msvalidate.01" content="replace-with-your-bing-token" />
<meta name="yandex-verification" content="replace-with-your-yandex-token" />
<meta name="p:domain_verify" content="replace-with-your-pinterest-token" />
<meta name="facebook-domain-verification" content="replace-with-your-facebook-token" />
<link rel="icon" href="/favicon.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="mask-icon" href="/mask-icon.svg" color="#14161a" />
<script type="application/ld+json">
{
	"@context": "https://schema.org",
	"@graph": [
		{
			"@type": "Organization",
			"name": "Northbound",
			"url": "https://northbound.dev",
			"logo": "https://northbound.dev/logo-512.png",
			"description": "Deployment tooling for small engineering teams.",
			"email": "hello@northbound.dev",
			"telephone": "+52 55 1234 5678",
			"sameAs": [
				"https://github.com/northbound",
				"https://x.com/northbound",
				"https://www.linkedin.com/company/northbound"
			],
			"address": {
				"@type": "PostalAddress",
				"streetAddress": "Av. Álvaro Obregón 106",
				"addressLocality": "Ciudad de México",
				"addressRegion": "CDMX",
				"postalCode": "06700",
				"addressCountry": "MX"
			}
		},
		{
			"@type": "WebSite",
			"name": "Northbound",
			"url": "https://northbound.dev",
			"inLanguage": "en",
			"potentialAction": {
				"@type": "SearchAction",
				"target": {
					"@type": "EntryPoint",
					"urlTemplate": "https://northbound.dev/search?q={search_term_string}"
				},
				"query-input": "required name=search_term_string"
			}
		},
		{
			"@type": "BreadcrumbList",
			"itemListElement": [
				{
					"@type": "ListItem",
					"position": 1,
					"name": "Home",
					"item": "https://northbound.dev"
				},
				{
					"@type": "ListItem",
					"position": 2,
					"name": "Pricing"
				}
			]
		},
		{
			"@type": "FAQPage",
			"mainEntity": [
				{
					"@type": "Question",
					"name": "Is there a free trial?",
					"acceptedAnswer": {
						"@type": "Answer",
						"text": "Yes. Every plan includes a 14-day trial, and no credit card is required to start one."
					}
				},
				{
					"@type": "Question",
					"name": "How is a seat counted?",
					"acceptedAnswer": {
						"@type": "Answer",
						"text": "A seat is any teammate who signs in during the billing month. Members who never sign in are not billed."
					}
				},
				{
					"@type": "Question",
					"name": "Can we change plans later?",
					"acceptedAnswer": {
						"@type": "Answer",
						"text": "Yes. Changes take effect on your next invoice and the difference is prorated automatically."
					}
				}
			]
		}
	]
}
</script>
Checks all clear

Every check passes. Structured data and a social image are already in place.

Search result
northbound.dev › pricing
Pricing for growing engineering teams — Northbound
Flat per-seat pricing with no usage metering or overage bills. Compare the Team and Enterprise plans, or start a 14-day trial without a credit card.
Shared link
A pricing table comparing the Team and Enterprise plans
northbound.dev
Northbound pricing
Per-seat, flat, and metered by nobody. 14-day trial, no card.

Draft with AI

The model writes copy only. It never touches URLs, robots rules, or structured data.

Provider

Stored in this browser only, and sent to this app's server once per request so the call reaches Claude. It is never logged or persisted server-side. Get a key

The more specific this is, the less generic the copy. Write it in the output language.

Used only where they read naturally. Nothing gets stuffed.

Add a key to enable generation.

Export code

Pick a target and take the code. The same metadata, written the way each framework expects it.

Export index.html
Framework
Can't find your framework?

Paste inside <head>. Works anywhere. 129 lines

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Pricing for growing engineering teams — Northbound</title>
<meta name="description" content="Flat per-seat pricing with no usage metering or overage bills. Compare the Team and Enterprise plans, or start a 14-day trial without a credit card." />
<meta name="keywords" content="pricing, per-seat billing, team plan, enterprise plan" />
<meta name="author" content="Northbound" />
<meta name="publisher" content="Northbound" />
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
<meta name="referrer" content="strict-origin-when-cross-origin" />
<meta name="theme-color" content="#14161a" />
<meta name="color-scheme" content="light dark" />
<link rel="canonical" href="https://northbound.dev/pricing" />
<link rel="alternate" hreflang="en" href="https://northbound.dev/pricing" />
<link rel="alternate" hreflang="es-MX" href="https://northbound.dev/es/precios" />
<link rel="alternate" hreflang="x-default" href="https://northbound.dev/pricing" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Northbound pricing" />
<meta property="og:description" content="Flat per-seat pricing. No usage metering, no overage bills." />
<meta property="og:url" content="https://northbound.dev/pricing" />
<meta property="og:site_name" content="Northbound" />
<meta property="og:locale" content="en_US" />
<meta property="og:image" content="https://northbound.dev/og/pricing.png" />
<meta property="og:image:alt" content="A pricing table comparing the Team and Enterprise plans" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@northbound" />
<meta name="twitter:creator" content="@northbound" />
<meta name="twitter:title" content="Northbound pricing" />
<meta name="twitter:description" content="Per-seat, flat, and metered by nobody. 14-day trial, no card." />
<meta name="twitter:image" content="https://northbound.dev/og/pricing.png" />
<meta name="twitter:image:alt" content="A pricing table comparing the Team and Enterprise plans" />
<meta name="google-site-verification" content="replace-with-your-search-console-token" />
<meta name="msvalidate.01" content="replace-with-your-bing-token" />
<meta name="yandex-verification" content="replace-with-your-yandex-token" />
<meta name="p:domain_verify" content="replace-with-your-pinterest-token" />
<meta name="facebook-domain-verification" content="replace-with-your-facebook-token" />
<link rel="icon" href="/favicon.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="mask-icon" href="/mask-icon.svg" color="#14161a" />
<script type="application/ld+json">
{
	"@context": "https://schema.org",
	"@graph": [
		{
			"@type": "Organization",
			"name": "Northbound",
			"url": "https://northbound.dev",
			"logo": "https://northbound.dev/logo-512.png",
			"description": "Deployment tooling for small engineering teams.",
			"email": "hello@northbound.dev",
			"telephone": "+52 55 1234 5678",
			"sameAs": [
				"https://github.com/northbound",
				"https://x.com/northbound",
				"https://www.linkedin.com/company/northbound"
			],
			"address": {
				"@type": "PostalAddress",
				"streetAddress": "Av. Álvaro Obregón 106",
				"addressLocality": "Ciudad de México",
				"addressRegion": "CDMX",
				"postalCode": "06700",
				"addressCountry": "MX"
			}
		},
		{
			"@type": "WebSite",
			"name": "Northbound",
			"url": "https://northbound.dev",
			"inLanguage": "en",
			"potentialAction": {
				"@type": "SearchAction",
				"target": {
					"@type": "EntryPoint",
					"urlTemplate": "https://northbound.dev/search?q={search_term_string}"
				},
				"query-input": "required name=search_term_string"
			}
		},
		{
			"@type": "BreadcrumbList",
			"itemListElement": [
				{
					"@type": "ListItem",
					"position": 1,
					"name": "Home",
					"item": "https://northbound.dev"
				},
				{
					"@type": "ListItem",
					"position": 2,
					"name": "Pricing"
				}
			]
		},
		{
			"@type": "FAQPage",
			"mainEntity": [
				{
					"@type": "Question",
					"name": "Is there a free trial?",
					"acceptedAnswer": {
						"@type": "Answer",
						"text": "Yes. Every plan includes a 14-day trial, and no credit card is required to start one."
					}
				},
				{
					"@type": "Question",
					"name": "How is a seat counted?",
					"acceptedAnswer": {
						"@type": "Answer",
						"text": "A seat is any teammate who signs in during the billing month. Members who never sign in are not billed."
					}
				},
				{
					"@type": "Question",
					"name": "Can we change plans later?",
					"acceptedAnswer": {
						"@type": "Answer",
						"text": "Yes. Changes take effect on your next invoice and the difference is prorated automatically."
					}
				}
			]
		}
	]
}
</script>