A package for easily managing SEO metadata tags in Remix.
WIP!
// app/seo.ts
import { initSeo } from "remix-seo";
export const { getSeo, getSeoMeta, getSeoLinks } = initSeo({
// Pass any SEO defaults for your site here.
// If individual routes do not provide their own meta and link tags,
// the tags generated by the defaults will be used.
title: "The Awesome Store",
titleTemplate: "%s | The Awesome Store",
description: "The most awesome store on planet Earth.",
});
// app/root.tsx
import { getSeo } from "~/seo";
let [seoMeta, seoLinks] = getSeo();
export let meta = () => ({ ...seoMeta, { whatever: "cool" } });
export let links = () => [ ...seoLinks, { rel: "stylesheet", href: "/sick-styles.css" } ];
// app/routes/some-route.tsx
import { getSeo, getSeoMeta, getSeoLinks } from "~/seo";
// No need for route data? Get meta and links in one call.
let [seoMeta, seoLinks] = getSeo({
title: "About us",
description: "We are great!",
});
// SEO depends on route data?
// call getSeoMeta and getSeoLinks individually in the relevant function.
export let meta = ({ context }) => {
let seoMeta = getSeoMeta({
title: `Welcome ${context.name}`
});
return {
...seoMeta,
};
};
export let links = ({ context }) => {
let seoLinks = getSeoLinks({
title: `Welcome ${context.name}`
});
return [...seoLinks];
};