diff --git a/.cspell.yaml b/.cspell.yaml index cce379e5..52f29aa7 100644 --- a/.cspell.yaml +++ b/.cspell.yaml @@ -78,6 +78,7 @@ words: - fouc - frontends - frontmatter + - funder - futureproof - gallego - ghisi diff --git a/src/lib/structured-data.ts b/src/lib/structured-data.ts new file mode 100644 index 00000000..5d748e44 --- /dev/null +++ b/src/lib/structured-data.ts @@ -0,0 +1,72 @@ +/** + * schema.org nodes shared by the pages that emit JSON-LD, so the home and + * About pages describe the company identically. + */ + +const siteUrl = 'https://shorebird.dev/'; + +export const founder = { + '@type': 'Person', + '@id': `${siteUrl}#eric-seidel`, + name: 'Eric Seidel', + jobTitle: 'CEO and Founder', + description: 'Creator of Flutter.', + sameAs: ['https://www.linkedin.com/in/ericseidel/'], +}; + +export const organization = { + '@type': 'Organization', + '@id': `${siteUrl}#organization`, + name: 'Shorebird', + url: siteUrl, + logo: { + '@type': 'ImageObject', + url: `${siteUrl}shorebird-logo-wordmark.png`, + width: 2568, + height: 560, + }, + description: + 'Shorebird builds developer tools for Flutter teams. Its flagship service, Code Push, delivers over-the-air Dart updates to released Flutter apps without waiting for app store review.', + foundingDate: '2023', + founder, + funder: { + '@type': 'Organization', + name: 'Accel', + url: 'https://www.accel.com/', + }, + sameAs: [ + 'https://github.com/shorebirdtech', + 'https://www.linkedin.com/company/shorebirddev/', + 'https://discord.gg/shorebird', + ], + contactPoint: [ + { + '@type': 'ContactPoint', + contactType: 'sales', + url: `${siteUrl}pricing`, + }, + { + '@type': 'ContactPoint', + contactType: 'technical support', + url: 'https://discord.gg/shorebird', + }, + ], + legalName: 'Code Town Inc', + address: { + '@type': 'PostalAddress', + streetAddress: '2261 Market Street #5112', + addressLocality: 'San Francisco', + addressRegion: 'CA', + postalCode: '94114-1612', + addressCountry: 'US', + }, +}; + +export const website = { + '@type': 'WebSite', + '@id': `${siteUrl}#website`, + url: siteUrl, + name: 'Shorebird', + publisher: { '@id': `${siteUrl}#organization` }, + inLanguage: 'en-US', +}; diff --git a/src/pages/about.astro b/src/pages/about.astro index 6ed71c3f..2c403055 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -9,6 +9,7 @@ import Section from '@/components/ui/section.astro'; import accelLogo from '@/assets/about/accel.webp'; import heroLogos from '@/assets/about/hero-logos.svg'; import teamData from '@/data/team.json'; +import { organization, website } from '@/lib/structured-data'; /** * Team grid (Webflow `.c_team--cms_list`): `src/data/team.json` is the @@ -25,6 +26,23 @@ const team = teamData if (!image) throw new Error(`Headshot ${member.headshot} not found`); return { ...member, image: image.default }; }); + +const structuredData = { + '@context': 'https://schema.org', + '@graph': [ + { + '@type': 'AboutPage', + '@id': 'https://shorebird.dev/about#webpage', + url: 'https://shorebird.dev/about', + name: 'About Shorebird', + isPartOf: { '@id': website['@id'] }, + about: { '@id': organization['@id'] }, + }, + organization, + website, + ], +}; + /** Webflow `.social_icn` LinkedIn glyph (14x14). */ const linkedinIcon = ``; --- @@ -33,6 +51,13 @@ const linkedinIcon = ` + + + {/* Hero (Webflow `header.g_page--section` + `.c_hero--about--logos`). */} @@ -69,7 +94,8 @@ const linkedinIcon = ` We care about making portable development the default and creating a rich and robust Flutter ecosystem. Our flagship service, Code Push, - enables instant app updates without app store delays. + enables instant app updates without app store delays, and Shorebird CI + brings zero-config continuous integration to Flutter and Dart.

diff --git a/src/pages/index.astro b/src/pages/index.astro index 27c042b1..6e6af986 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -12,66 +12,11 @@ import Platform from '@/components/home/platform.astro'; import Resources from '@/components/home/resources.astro'; import Security from '@/components/home/security.astro'; import Testimonials from '@/components/home/testimonials.astro'; +import { organization, website } from '@/lib/structured-data'; const structuredData = { '@context': 'https://schema.org', - '@graph': [ - { - '@type': 'Organization', - '@id': 'https://shorebird.dev/#organization', - name: 'Shorebird', - url: 'https://shorebird.dev/', - logo: { - '@type': 'ImageObject', - url: 'https://shorebird.dev/shorebird-logo-wordmark.png', - width: 2568, - height: 560, - }, - description: - 'Shorebird builds developer tools for Flutter teams. Its flagship service, Code Push, delivers over-the-air Dart updates to released Flutter apps without waiting for app store review.', - foundingDate: '2023', - founder: { - '@type': 'Person', - name: 'Eric Seidel', - jobTitle: 'CEO and Founder', - description: 'Creator of Flutter.', - }, - sameAs: [ - 'https://github.com/shorebirdtech', - 'https://www.linkedin.com/company/shorebirddev/', - 'https://discord.gg/shorebird', - ], - contactPoint: [ - { - '@type': 'ContactPoint', - contactType: 'sales', - url: 'https://shorebird.dev/pricing', - }, - { - '@type': 'ContactPoint', - contactType: 'technical support', - url: 'https://discord.gg/shorebird', - }, - ], - legalName: 'Code Town Inc', - address: { - '@type': 'PostalAddress', - streetAddress: '2261 Market Street #5112', - addressLocality: 'San Francisco', - addressRegion: 'CA', - postalCode: '94114-1612', - addressCountry: 'US', - }, - }, - { - '@type': 'WebSite', - '@id': 'https://shorebird.dev/#website', - url: 'https://shorebird.dev/', - name: 'Shorebird', - publisher: { '@id': 'https://shorebird.dev/#organization' }, - inLanguage: 'en-US', - }, - ], + '@graph': [organization, website], }; ---