{
    "componentChunkName": "component---src-components-blog-post-jsx",
    "path": "/blog/getting-started-with-webmention-next-js/",
    "result": {"data":{"site":{"siteMetadata":{"author":"Monica Powell","siteUrl":"https://www.aboutmonica.com"}},"mdx":{"id":"1009dcc4-63ab-56e4-9a36-f01098c8dc9c","timeToRead":3,"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Getting Started With Webmention and NextJS\",\n  \"date\": \"2020-10-03T16:51:30.675Z\",\n  \"template\": \"post\",\n  \"draft\": true,\n  \"slug\": \"getting-started-with-webmention-next-js\",\n  \"category\": [\"tutorial\"],\n  \"tags\": [\"JavaScript\", \"Webmention\", \"Video\", \"NextJS\"],\n  \"description\": \"An overview of setting up Webmention on a NextJS site to collect comments from across the decentralized social web (i.e., Twitter, GitHub, Pinterest, Reddit) in a centralized place.\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar TableOfContents = makeShortcode(\"TableOfContents\");\nvar YouTube = makeShortcode(\"YouTube\");\nvar Callout = makeShortcode(\"Callout\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"This past week I had the pleasure of being on the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.learnwithjason.dev/webmention-next-js\"\n  }, \"Learn with Jason Show\"), \" to show how to add \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://indieweb.org/Webmention\"\n  }, \"Webmention\"), \" functionality to a NextJS website. Webmentions let you pull tweets, other blogs, and other activity from around the web into your site? It was fun live pair programming the implementation of webmentions. \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.learnwithjason.dev/webmention-next-js\"\n  }, \"Check out the video\"), \" or read some of the highlights below!\"), mdx(TableOfContents, {\n    headings: props.tableOfContents,\n    mdxType: \"TableOfContents\"\n  }), mdx(\"h2\", {\n    \"id\": \"watch-the-learn-with-jason-episode\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#watch-the-learn-with-jason-episode\",\n    \"aria-label\": \"watch the learn with jason episode permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Watch the Learn with Jason Episode\"), mdx(\"p\", null, \"Watch the Learn with Jason episode below for more information about Webmentions and view the transcript at \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.learnwithjason.dev/webmention-next-js\"\n  }, \"https://www.learnwithjason.dev/webmention-next-js\"), \":\"), mdx(YouTube, {\n    youTubeId: \"Ty6tmviF0H0\",\n    mdxType: \"YouTube\"\n  }), mdx(\"br\", null), mdx(\"h2\", {\n    \"id\": \"what-are-webmentions\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#what-are-webmentions\",\n    \"aria-label\": \"what are webmentions permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"What are Webmentions?\"), mdx(\"p\", null, \"Webmention are an IndieWeb specification to allow websites to collect comments from across the decentralized social web (i.e., Twitter, GitHub, Pinterest, Reddit) in a centralized place. A site can be set up to send an outgoing Webmention any time they link to an external website. Websites that receive Webmentions can then decide what content to display and bring the conversation to one place. I've mostly used Webmention to bring conversation from Twitter to my personal site.\"), mdx(\"p\", null, \"Below is an image of how Webmentions appear on one my articles on this site:\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/media/webmention.gif\",\n    \"alt\": \"scrolling through Webmentions which show the number of RTs, likes and replies. Toggled on and off the view that shows the content of individual replies\"\n  })), mdx(\"h2\", {\n    \"id\": \"setting-up-webmention-functionality\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#setting-up-webmention-functionality\",\n    \"aria-label\": \"setting up webmention functionality permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Setting up Webmention Functionality\"), mdx(\"p\", null, \"The easiest way to set up your site to start  receiving Webmentions is to create an account with \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://webmention.io/\"\n  }, \"webmention.io\"), \" to accept Webmentions on your behalf. If you'd like to bring in conversation from social media sites like Twitter, I'd recommend creating an account with \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://brid.gy/\"\n  }, \"bridgy\"), \" which will automatically poll social media at set intervals and send any relevant content as a Webmention to \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://webmention.io/\"\n  }, \"webmention.io\"), \". Let's walkthrough how to set up the necessary accounts:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Begin receiving Webmentions with webmention.io\"), \" Go to \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://webmention.io/\"\n  }, \"https://webmention.io/\"), \" and enter your website URL. It will prompt you to set up IndieAuth which requires you link to a social media site like Twitter on the homepage of your website with the HTML \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"rel\"), \" attribute value set to \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"\\\"me\\\"\"), \".\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-html\"\n  }, \" <a href=\\\"https://twitter.com/waterproofheart\\\" rel=\\\"me\\\"> Twitter</a>\\n\")), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"   This set up is required so that webmention.io can verify that the social media website you use to log in is actually associated with the website you want them to collect Webmentions for.\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"   Once you've successfully set up your account you should see the following markup on webmention.io (with \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"your\"), \" username) under \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"settings\"), \": \"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-html\"\n  }, \"<link rel=\\\"webmention\\\" href=\\\"https://webmention.io/username/webmention\\\" />\\n<link rel=\\\"pingback\\\" href=\\\"https://webmention.io/username/xmlrpc\\\" />\\n\")), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"   This markup should be added to the head of your website and deployed so that Webmentions will officially begin being collected by \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"http://www.webmention.io\"\n  }, \"www.webmention.io\"), \".\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"   The above set up allows sites to start sending Webmentions to your site and allows you to be able to start sending Webmentions manually.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Set up Brid.gy to automatically receive mentions from Twitter and other social media websites\"), \" Social media websites like Twitter generally don't automatically send Webmention notifications to site despite a lot of link sharing occurring on the site. Therefore, in order to automatically send mentions of your website on Twitter to your site as a Webmention you need to setup \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://brid.gy/\"\n  }, \"Brid.gy\"), \". Brid.gy requires that you authenticate with a social media acocunt and also have a link back to the same domain in your social media profile's bio section.\"))), mdx(Callout, {\n    variant: \"danger\",\n    mdxType: \"Callout\"\n  }, \" We learned during the Learn with Jason stream that Brid.gy currently doesn't appear to support .app TLD domains and gives a vague error where it doesn't recognize these domains when trying to authenticate.\"), mdx(\"h2\", {\n    \"id\": \"fetching-and-rendering-webmentions\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#fetching-and-rendering-webmentions\",\n    \"aria-label\": \"fetching and rendering webmentions permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Fetching and Rendering Webmentions\"), mdx(\"h3\", {\n    \"id\": \"1-fetch-webmentions\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#1-fetch-webmentions\",\n    \"aria-label\": \"1 fetch webmentions permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"1. Fetch Webmentions\"), mdx(\"p\", null, \"We used \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"useEffect\"), \" to make a fetch request from webmention.io to retrieve the Webmentions associated with our site and stored its result in state as \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"mentions\"), \". The endpoint that the request is made to is \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://webmention.io/api/mentions.jf2?%5Bwebmentioniousername%5D&token=%5Bwebmentioniotoken%5D\"\n  }, \"https://webmention.io/api/mentions.jf2?[webmentioniousername]&token=[webmentioniotoken]\"), \". This URL should be updated with your webmentionio username and webmentionio token. Note the token only provides read-only access you can choose to keep the token a secret but re-generate as needed.\"), mdx(\"p\", null, \"Since \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"useEffect\"), \" only triggers after the initial hydration of a React site, this request only occurs on the client-side and requires JavaScript to be enabled in order to fetch Webmention data. This means that you don't have to worry about rebuilding your site in order to retrieve the latest Webmention data.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"    const [mentions, setMentions] = useState([]);\\n    useEffect(() => {\\n        \\n        fetch(\\n        'https://webmention.io/api/mentions.jf2?[webmentioniousername]&token=[webmentioniotoken]'\\n        )\\n        .then((response) => response.json())\\n        .then((result) => {\\n            setMentions(result.children);\\n        });\\n    }, []);\\n\")), mdx(\"p\", null, \"If you are curious what the shape of the initial object returned by the endpoint looks like some recent Webmentions I received were shaped like:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"            {\\n  \\\"type\\\": \\\"feed\\\",\\n  \\\"name\\\": \\\"Webmentions\\\",\\n  \\\"children\\\": [\\n    {\\n      \\\"type\\\": \\\"entry\\\",\\n      \\\"author\\\": {\\n        \\\"type\\\": \\\"card\\\",\\n        \\\"name\\\": \\\"Debra-Kaye Elliott\\\",\\n        \\\"photo\\\": \\\"https://webmention.io/avatar/pbs.twimg.com/ca78346285aa621eedce7fa271025576c97a19577b4820c9951853d09a829ad8.png\\\",\\n        \\\"url\\\": \\\"https://twitter.com/debrakayelliott\\\"\\n      },\\n      \\\"url\\\": \\\"https://twitter.com/waterproofheart/status/1312230169491447815#favorited-by-261719963\\\",\\n      \\\"published\\\": null,\\n      \\\"wm-received\\\": \\\"2020-10-03T17:29:46Z\\\",\\n      \\\"wm-id\\\": 864384,\\n      \\\"wm-source\\\": \\\"https://brid-gy.appspot.com/like/twitter/waterproofheart/1312230169491447815/261719963\\\",\\n      \\\"wm-target\\\": \\\"https://www.aboutmonica.com/blog/set-yourself-up-for-success-open-source-contributions/\\\",\\n      \\\"like-of\\\": \\\"https://www.aboutmonica.com/blog/set-yourself-up-for-success-open-source-contributions/\\\",\\n      \\\"wm-property\\\": \\\"like-of\\\",\\n      \\\"wm-private\\\": false\\n    },\\n    {\\n      \\\"type\\\": \\\"entry\\\",\\n      \\\"author\\\": {\\n        \\\"type\\\": \\\"card\\\",\\n        \\\"name\\\": \\\"Anders Schneiderman\\\",\\n        \\\"photo\\\": \\\"https://webmention.io/avatar/pbs.twimg.com/37890c358e8ff1f667c57d89959e583af37ef66d39b6d3c372d9b7988f5a377f.jpg\\\",\\n        \\\"url\\\": \\\"https://twitter.com/raschneiderman\\\"\\n      },\\n      \\\"url\\\": \\\"https://twitter.com/waterproofheart/status/1312230169491447815#favorited-by-270006742\\\",\\n      \\\"published\\\": null,\\n      \\\"wm-received\\\": \\\"2020-10-03T15:08:41Z\\\",\\n      \\\"wm-id\\\": 864330,\\n      \\\"wm-source\\\": \\\"https://brid-gy.appspot.com/like/twitter/waterproofheart/1312230169491447815/270006742\\\",\\n      \\\"wm-target\\\": \\\"https://www.aboutmonica.com/blog/set-yourself-up-for-success-open-source-contributions/\\\",\\n      \\\"like-of\\\": \\\"https://www.aboutmonica.com/blog/set-yourself-up-for-success-open-source-contributions/\\\",\\n      \\\"wm-property\\\": \\\"like-of\\\",\\n      \\\"wm-private\\\": false\\n    },\\n    ]}\\n\")), mdx(\"p\", null, \"You can also view the shape of the data by going directly to \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://webmention.io/api/mentions.jf2?%5Bwebmentioniousername%5D&token=%5Bwebmentioniotoken%5D\"\n  }, \"https://webmention.io/api/mentions.jf2?[webmentioniousername]&token=[webmentioniotoken]\"), \".\"), mdx(\"h3\", {\n    \"id\": \"2-render-webmentions\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#2-render-webmentions\",\n    \"aria-label\": \"2 render webmentions permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"2. Render Webmentions\"), mdx(\"p\", null, \"Once we have the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"mentions\"), \" stored in state from the request to webmention.io we can map through the mentions and render the a link to the Webmention author's original post, their photo, name and the content of their Webmention.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"{mentions.map((mention) => (\\n               <div>\\n               <a href={mention.author.url}>\\n                   <img\\n                   style={{ width: 100 }}\\n                   src={mention.author.photo}\\n                   alt={mention.author.name}\\n                   />\\n               </a>\\n               <div dangerouslySetInnerHTML={{ __html: mention.content.html }} />\\n               </div>\\n           ))}\\n\")), mdx(\"h2\", {\n    \"id\": \"final-code\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#final-code\",\n    \"aria-label\": \"final code permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Final Code\"), mdx(\"p\", null, \" Below is more complete version of the above code with some styling. Check out the demo repo for the application I created with Jason on Learn with Jason here: \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/jlengstorf/next-netlify-webmention\"\n  }, \"https://github.com/jlengstorf/next-netlify-webmention\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"    import { useEffect, useState } from 'react';\\n\\n    const Index = ({...props }) => {\\n    const [mentions, setMentions] = useState([]);\\n    useEffect(() => {\\n        /* add your webmentionio username and webmentionio token.\\n        Note the token only provides read-only access \\n        you can choose to keep the token a secret but re-generate as needed */\\n        fetch(\\n        'https://webmention.io/api/mentions.jf2?[webmentioniousername]&token=[webmentioniotoken]'\\n        )\\n        .then((response) => response.json())\\n        .then((result) => {\\n            setMentions(result.children);\\n        });\\n    }, []);\\n    return (\\n        <>\\n        <Layout>\\n            <h2>Discussion about this site on the web</h2>\\n            <p>This uses Webmention</p>\\n            {mentions.map((mention) => (\\n                <div\\n                style={{\\n                    display: 'grid',\\n                    gap: '1rem',\\n                    gridTemplateColumns: '100px 1fr',\\n                }}\\n                >\\n                <a href={mention.author.url}>\\n                    <img\\n                    style={{ width: 100 }}\\n                    src={mention.author.photo}\\n                    alt={mention.author.name}\\n                    />\\n                </a>\\n                <div dangerouslySetInnerHTML={{ __html: mention.content.html }} />\\n                </div>\\n            ))}\\n        </Layout>\\n        <style jsx>{`\\n            .title {\\n            margin: 1rem auto;\\n            font-size: 3rem;\\n            }\\n        `}</style>\\n        </>\\n    );\\n    };\\n\\n    export default Index;\\n   \\n\")));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#watch-the-learn-with-jason-episode","title":"Watch the Learn with Jason Episode"},{"url":"#what-are-webmentions","title":"What are Webmentions?"},{"url":"#setting-up-webmention-functionality","title":"Setting up Webmention Functionality"},{"url":"#fetching-and-rendering-webmentions","title":"Fetching and Rendering Webmentions","items":[{"url":"#1-fetch-webmentions","title":"1. Fetch Webmentions"},{"url":"#2-render-webmentions","title":"2. Render Webmentions"}]},{"url":"#final-code","title":"Final Code"}]},"frontmatter":{"title":"Getting Started With Webmention and NextJS","date":"October 03, 2020","description":"An overview of setting up Webmention on a NextJS site to collect comments from across the decentralized social web (i.e., Twitter, GitHub, Pinterest, Reddit) in a centralized place.","tags":["JavaScript","Webmention","Video","NextJS"]}},"allWebMentionEntry":{"edges":[{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/74863","wmProperty":"like-of","wmId":870992,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-74863","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/nertzy","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f069aac275d923a15dc162297eaa0256f98990348cce85684ec76ce96f4967d3.jpg","name":"Grant Hutchins"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1078859832210456576","wmProperty":"like-of","wmId":867505,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1078859832210456576","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/hackergem","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/9fc052594c6b54d134566f708b6a26698c3ab3a0339212445f47f525ba5e8afe.jpg","name":"shanice.sh"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/204354439","wmProperty":"like-of","wmId":866435,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-204354439","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/gfxargentina","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/8895fa4ff3bbe6cafcbd35850073647ec52c50ee41ff0cbd918c4b3ba42a3ae2.jpg","name":"Luis Chilo"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1082467240350339072","wmProperty":"like-of","wmId":866402,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1082467240350339072","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/Gamer21Monkey","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/761af31e152686c30ec4e70a9a043748678323829b06d23cc21c29fa67e59dda.jpg","name":"MonkeyGirlGamer21"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313304859794436096","wmProperty":"repost-of","wmId":866401,"type":"entry","url":"https://twitter.com/JPonder77/status/1313304859794436096","likeOf":null,"author":{"url":"https://twitter.com/JPonder77","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f93a4ed8e533cfbba1285e9fdfef2dc5ab064890df554d4c562de178fb2fafa3.jpg","name":"Jennifer Ponder"},"published":"October 06, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313309173145239552","wmProperty":"repost-of","wmId":866400,"type":"entry","url":"https://twitter.com/Gamer21Monkey/status/1313309173145239552","likeOf":null,"author":{"url":"https://twitter.com/Gamer21Monkey","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/761af31e152686c30ec4e70a9a043748678323829b06d23cc21c29fa67e59dda.jpg","name":"MonkeyGirlGamer21"},"published":"October 06, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/885525206542032896","wmProperty":"like-of","wmId":866399,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-885525206542032896","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/JPonder77","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f93a4ed8e533cfbba1285e9fdfef2dc5ab064890df554d4c562de178fb2fafa3.jpg","name":"Jennifer Ponder"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/726762750","wmProperty":"like-of","wmId":866246,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-726762750","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/matthiaszepper","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/95afeca3a2d9e3dde809b82731d63947c878977596bbd297fce93f64b54650ff.jpg","name":"Matthias Zepper"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313239751734947840","wmProperty":"repost-of","wmId":866234,"type":"entry","url":"https://twitter.com/LWJShow/status/1313239751734947840","likeOf":null,"author":{"url":"https://twitter.com/LWJShow","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a5b9ba388d2995bb734e8e09340ad5be9dbca6997865b59fb9dc4e93561cdafd.jpg","name":"Learn With Jason"},"published":"October 05, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1167542888818864128","wmProperty":"like-of","wmId":866233,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1167542888818864128","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/LWJShow","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a5b9ba388d2995bb734e8e09340ad5be9dbca6997865b59fb9dc4e93561cdafd.jpg","name":"Learn With Jason"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1076767207839821830","wmProperty":"like-of","wmId":866232,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1076767207839821830","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/a2dee_","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/456bbbc3e024086e2c1fb0e8d43cf0935654d4280079080530ac396dd2b87ae2.jpg","name":"Aadesh"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/760692446904872961","wmProperty":"like-of","wmId":866231,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-760692446904872961","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/mindfullycrafts","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f8e24f630cea55db172c044356744ded6359b751b1439df02c9353fab5f74626.jpg","name":"Yenly"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1277185751541833732","wmProperty":"like-of","wmId":866205,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1277185751541833732","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/clairy_charles","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/764eb9b812c54bf3d342869bc7df3a3ff0d8a3fefa8a3667c8f35519477a2f09.jpg","name":"clairy💛"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/18297633","wmProperty":"like-of","wmId":866152,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-18297633","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/israel1x","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/eb922e9ab7ecfb531cde96f3f43c044c84f996a5c111c7ab0e825b8cbaf50772.jpg","name":"Israel Zurita"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313141711531462656","wmProperty":"repost-of","wmId":866119,"type":"entry","url":"https://twitter.com/sim_dw/status/1313141711531462656","likeOf":null,"author":{"url":"https://twitter.com/sim_dw","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/2e8605a5a9eb3b6f0f643df3d232ac7823fac27bfd6e1b52fed8ecdd31382965.jpg","name":"심대원"},"published":"October 05, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313168947345121280","wmProperty":"repost-of","wmId":866118,"type":"entry","url":"https://twitter.com/chrisbiscardi/status/1313168947345121280","likeOf":null,"author":{"url":"https://twitter.com/chrisbiscardi","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/6cb62548f7ea6e68607b69c1553bde1fcfef10b564e7f87d10e7a8def2dee7dc.png","name":":party-corgi:"},"published":"October 05, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/240315182","wmProperty":"like-of","wmId":866117,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-240315182","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/chrisbiscardi","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/6cb62548f7ea6e68607b69c1553bde1fcfef10b564e7f87d10e7a8def2dee7dc.png","name":":party-corgi:"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/165401136","wmProperty":"like-of","wmId":866068,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-165401136","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/gilbertsosi","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/71f1069dbe6588e5f0496689cfdcaf59cab809712a369a99481455b0fc7003ac.jpg","name":"C://gilbertsosi/v3.0"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/14412405","wmProperty":"like-of","wmId":866069,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-14412405","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/peruvianidol","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/23e4ef0f364d338fb303b5ed8e93cac83ce5b4c3fb782b85abdd6ad769d53d99.jpg","name":"Mike Aparicio"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1567529924","wmProperty":"like-of","wmId":866012,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1567529924","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/jsjoeio","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/ac94041465a65e363617c3c5e2c2d7e3966b4ec4f2f8b689fd9c0a93cb41c1cc.jpg","name":"Joe Previte"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1171648211813064704","wmProperty":"like-of","wmId":866011,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1171648211813064704","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/bnhr07","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/05bbfd3181e623937ee910e6abfcb911151da8b75a6f38ae1ce2704f3eacf231.jpg","name":"Heru Gunawan"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/168462230","wmProperty":"like-of","wmId":866010,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-168462230","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/mgrubinger","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/105bf7693b29cacbed8dd0ba71342886a5286df4ae1facd85cef726954d01c4c.jpg","name":"Not Martin Grubinger"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/126641629","wmProperty":"like-of","wmId":866008,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-126641629","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/coolprobn","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/50a1db177d4354a5f7acdd92b5533059307d766208751f9467bb89b6f34d527b.jpg","name":"Prabin Poudel"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/post/twitter/waterproofheart/1313146850648764416","wmProperty":"mention-of","wmId":866009,"type":"entry","url":"https://twitter.com/eggheadio/status/1313146850648764416","likeOf":null,"author":{"url":"https://twitter.com/eggheadio","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/2f6afce0931a1c034fedc2b48aaeb2b8429fa20f8b982be3542aa6922b230dae.jpg","name":"egghead.io"},"published":"October 05, 2020","content":{"text":"Instructor @waterproofheart wrote up about her appearance on @LWJShow with @jlengstorf to add web mentions to a next.js site\n\n\"Webmentions let you pull tweets, other blogs, and other activity from around the web into your site\"\n\nCheck the full post here 👇\naboutmonica.com/blog/getting-s…"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313131279487963146","wmProperty":"repost-of","wmId":865988,"type":"entry","url":"https://twitter.com/jlengstorf/status/1313131279487963146","likeOf":null,"author":{"url":"https://twitter.com/jlengstorf","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a74429440de7b7283bae6f28dfe94610c4a6432e90b73b945a121d60fb439578.jpg","name":"SpoOoOoOopy Jason 💀🦇"},"published":"October 05, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313124808297795586","wmProperty":"repost-of","wmId":865989,"type":"entry","url":"https://twitter.com/arcatech/status/1313124808297795586","likeOf":null,"author":{"url":"https://twitter.com/arcatech","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/af90ec23cab4f284078172fa202edc030fee859aacdc120a9e39a3b5a8dedff2.jpg","name":"Dwayne"},"published":"October 05, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/730340824505065473","wmProperty":"like-of","wmId":865987,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-730340824505065473","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/RobinCsl","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/7644ce610ca9551ec3bddba55cc8f1a9231397563563267c6b96104bc310205d.jpg","name":"Robin Cussol"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1446593082","wmProperty":"like-of","wmId":865985,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1446593082","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/_maxpou","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/3364a0332fdcb6bf11bdb274927b2cbea602ddb2ae4307ddb9da6cab77b79c0a.jpg","name":"Maxence Poutord @ 🇩🇪"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/8820492","wmProperty":"like-of","wmId":865986,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-8820492","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/joshfinnie","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f94f8168386720a2948fcd95062c270878f33b3f3daf686890351ec4a7171671.jpg","name":"Josh Finnie"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/37301176","wmProperty":"like-of","wmId":865982,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-37301176","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/arcatech","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/af90ec23cab4f284078172fa202edc030fee859aacdc120a9e39a3b5a8dedff2.jpg","name":"Dwayne"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/comment/twitter/waterproofheart/1313098361541668864/1313127859725185024","wmProperty":"in-reply-to","wmId":865983,"type":"entry","url":"https://twitter.com/_maxpou/status/1313127859725185024","likeOf":null,"author":{"url":"https://twitter.com/_maxpou","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/3364a0332fdcb6bf11bdb274927b2cbea602ddb2ae4307ddb9da6cab77b79c0a.jpg","name":"Maxence Poutord @ 🇩🇪"},"published":"October 05, 2020","content":{"text":"It seems that I finally found an alternative to disqus for my blog!\n\nThank you Monica 😃"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/15668072","wmProperty":"like-of","wmId":865984,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-15668072","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/jlengstorf","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a74429440de7b7283bae6f28dfe94610c4a6432e90b73b945a121d60fb439578.jpg","name":"SpoOoOoOopy Jason 💀🦇"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1313098361541668864/1313118486256922624","wmProperty":"repost-of","wmId":865946,"type":"entry","url":"https://twitter.com/Anita_ihuman/status/1313118486256922624","likeOf":null,"author":{"url":"https://twitter.com/Anita_ihuman","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/23452da8ca6ee3276df7a4b49a5b5fe2fa2581336e104b8c7f9908074383533d.jpg","name":"MOVI🌼"},"published":"October 05, 2020","content":{"text":"I had fun live coding (and debugging) adding webmentions to a NextJS site with @LWJShow last week! Check out this article for a recap or to"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/3161727787","wmProperty":"like-of","wmId":865944,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-3161727787","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/Anita_ihuman","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/23452da8ca6ee3276df7a4b49a5b5fe2fa2581336e104b8c7f9908074383533d.jpg","name":"MOVI🌼"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/28203065","wmProperty":"like-of","wmId":865945,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-28203065","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/eunicekokor","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/5d3691d90342acefbaf3ddecf264414fca6c3218b98835115524a441ea64813d.jpg","name":"euni"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/904674244549894144","wmProperty":"like-of","wmId":865920,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-904674244549894144","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/CBTheDeveloper","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/ee7b55993c3404887a177b493fb9eaf9a0a02e173dff1d9652cdf416230b1f67.jpg","name":"Charletta Bullard"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1280189486442266625","wmProperty":"like-of","wmId":865918,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1280189486442266625","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/VedurumudiP","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/098163d065524c4d563b1bad890a89d104e549defeb8db39aa666f7936b0eed8.jpg","name":"Vedurumudi Priyanka"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1025494621164630016","wmProperty":"like-of","wmId":865919,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1025494621164630016","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/studio_hungry","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/20fd43a866775963b6aac7320c11454f66dffa237eea98b26acc2fdbd47cf900.jpg","name":"Rich Haines"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/1306685630701805575","wmProperty":"like-of","wmId":865917,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-1306685630701805575","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/iva_kop","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/eba940df56cd4b0b9ccee42248281c8e0f7873e49f1164a9aee455e3ca53dbf9.jpg","name":"IvaKop"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/3424878503","wmProperty":"like-of","wmId":865916,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-3424878503","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/lauragift_","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a851d81eb163a255259681db9be2f1e5e214822b2501a5317b10ffd9816cbeb1.jpg","name":"Gift Egwuenu"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/12453372","wmProperty":"like-of","wmId":865915,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-12453372","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/ifyoumakeit","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/7dba7ef8cef8a2192a2fcbb57c457597b060c10414c6e8d24b6ad0978dc8aef4.jpg","name":"Dave Garwacke"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1313098361541668864/145303963","wmProperty":"like-of","wmId":865914,"type":"entry","url":"https://twitter.com/waterproofheart/status/1313098361541668864#favorited-by-145303963","likeOf":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","author":{"url":"https://twitter.com/nikazawila","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/b04f00f568cbaf641243b1efd4969044b212a603b66efb598ad7bfe15a355dc5.jpg","name":"Nika Zawila"},"published":null,"content":null}}]}},"pageContext":{"permalink":"https://www.aboutmonica.com/blog/getting-started-with-webmention-next-js/","slug":"/blog/getting-started-with-webmention-next-js/","prev":{"id":"2c6b55d3-14b5-5d55-9a4e-4a80cdd3a196","frontmatter":{"title":"How to Add Instagram Timeline To a NextJS Site","category":["tutorial"],"date":"2020-12-21T22:10:20.914Z","slug":"adding-instagram-timeline-to-next-js-site","tags":["NextJS"],"redirects":null},"fields":{"slug":"/blog/adding-instagram-timeline-to-next-js-site/"}},"next":{"id":"7fc2070c-63b0-51de-97b5-7af57016eb44","frontmatter":{"title":"Set Yourself Up For Success During Hacktoberfest","category":["tutorial"],"date":"2020-10-01T13:08:03.480Z","slug":"set-yourself-up-for-success-open-source-contributions","tags":["GitHub"],"redirects":null},"fields":{"slug":"/blog/set-yourself-up-for-success-open-source-contributions/"}}}},
    "staticQueryHashes": ["1977783444","764694655"]}