<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: PostMyForm</title>
    <description>The latest articles on DEV Community by PostMyForm (@postmyform).</description>
    <link>https://dev.to/postmyform</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4048149%2Fe5573acb-b393-4f9b-a191-602cfea8bc60.jpg</url>
      <title>DEV Community: PostMyForm</title>
      <link>https://dev.to/postmyform</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/postmyform"/>
    <language>en</language>
    <item>
      <title>How to add a contact form to Astro</title>
      <dc:creator>PostMyForm</dc:creator>
      <pubDate>Thu, 30 Jul 2026 18:00:00 +0000</pubDate>
      <link>https://dev.to/postmyform/how-to-add-a-contact-form-to-astro-3acf</link>
      <guid>https://dev.to/postmyform/how-to-add-a-contact-form-to-astro-3acf</guid>
      <description>&lt;p&gt;Add a working form to a static Astro site&lt;/p&gt;

&lt;p&gt;Astro generates static HTML by default. That makes it a good fit for PostMyForm: Astro publishes the page, and PostMyForm receives and processes the form submission.&lt;/p&gt;

&lt;p&gt;You do not need to add an Astro server adapter, API route, or server action just to receive a contact form.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Create the form in PostMyForm
&lt;/h2&gt;

&lt;p&gt;Sign in to PostMyForm, open Forms, and create a form.&lt;/p&gt;

&lt;p&gt;Configure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A recognizable form name.&lt;/li&gt;
&lt;li&gt;The email address that should receive notifications.&lt;/li&gt;
&lt;li&gt;The allowed origin for the deployed Astro site.&lt;/li&gt;
&lt;li&gt;An optional success redirect URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a production site such as:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.example.com/contact/" rel="noopener noreferrer"&gt;https://www.example.com/contact/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;enter this allowed origin:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.example.com" rel="noopener noreferrer"&gt;https://www.example.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An origin contains the scheme, hostname, and optional port. It does not contain the page path.&lt;/p&gt;

&lt;p&gt;When testing locally, add the exact origin printed by the Astro development server, such as:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://localhost:4321" rel="noopener noreferrer"&gt;http://localhost:4321&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the actual URL shown in the terminal if Astro selects a different hostname or port.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Add the fields
&lt;/h2&gt;

&lt;p&gt;Add the fields required by the form.&lt;/p&gt;

&lt;p&gt;A typical contact form includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PostMyForm supports text, email, textarea, select, and checkbox fields. Mark fields as required where appropriate.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Create an Astro form component
&lt;/h2&gt;

&lt;p&gt;Create a component such as:&lt;/p&gt;

&lt;p&gt;src/components/ContactForm.astro&lt;/p&gt;

&lt;p&gt;Open the form detail page in PostMyForm and copy the complete generated HTML snippet into that component.&lt;/p&gt;

&lt;p&gt;Astro processes normal &lt;strong&gt;&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;&lt;/strong&gt; elements during the build. The PostMyForm snippet uses a small script that must remain in its original position inside the form.&lt;/p&gt;

&lt;p&gt;Change only the generated opening script tag from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;    &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;is:inline&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;strong&gt;&lt;code&gt;is:inline&lt;/code&gt;&lt;/strong&gt; directive tells Astro to leave the script in the rendered HTML exactly where it appears.&lt;/p&gt;

&lt;p&gt;A shortened component example looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;    &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"https://postmyform.com/f/your-endpoint-id"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"contact-name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Name&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"contact-name"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"contact-email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"contact-email"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"contact-message"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Message&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;textarea&lt;/span&gt;
          &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"contact-message"&lt;/span&gt;
          &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"message"&lt;/span&gt;
          &lt;span class="na"&gt;required&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

      &lt;span class="c"&gt;&amp;lt;!-- Keep the generated honeypot and timing fields here. --&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Send message&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;is:inline&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;// Keep the complete script generated by PostMyForm here.&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not use this shortened example as the finished form. Use the complete snippet from the PostMyForm dashboard so the unique endpoint, randomized honeypot, timing field, and initialization script are preserved.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Add the component to an Astro page
&lt;/h2&gt;

&lt;p&gt;Import the component into the page where the form should appear.&lt;/p&gt;

&lt;p&gt;For example, in &lt;strong&gt;&lt;code&gt;src/pages/contact.astro&lt;/code&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;    ---
    import ContactForm from "../components/ContactForm.astro";
    ---

    &lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
          &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt;
          &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Contact us&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Contact us&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;ContactForm&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the project already uses a shared layout, place  inside that layout instead of creating another complete HTML document.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Test the form locally
&lt;/h2&gt;

&lt;p&gt;Start the Astro development server using the command configured by the project, commonly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open the contact page and confirm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The form is visible.&lt;/li&gt;
&lt;li&gt;The form action points to the PostMyForm endpoint.&lt;/li&gt;
&lt;li&gt;The development origin is allowed in PostMyForm.&lt;/li&gt;
&lt;li&gt;The generated honeypot and timing fields are still present.&lt;/li&gt;
&lt;li&gt;The generated script uses is:inline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Send one normal test submission. It should appear in the PostMyForm dashboard and trigger a notification attempt.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Build and deploy the Astro site
&lt;/h2&gt;

&lt;p&gt;Create the production build using the project's normal build command, commonly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deploy the generated Astro site using the existing hosting workflow.&lt;/p&gt;

&lt;p&gt;After deployment, open the public contact page and send another test submission. Confirm that the public site's exact origin is included in the form's allowed origins.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap-up
&lt;/h2&gt;

&lt;p&gt;You now have a working contact form on a static Astro site without running an application server or deploying a separate serverless function.&lt;/p&gt;

&lt;p&gt;Before considering the setup complete, verify that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the form appears correctly on the deployed site,&lt;/li&gt;
&lt;li&gt;the browser origin matches the allowed origin in PostMyForm,&lt;/li&gt;
&lt;li&gt;a test submission appears in the PostMyForm dashboard,&lt;/li&gt;
&lt;li&gt;the notification email is delivered,&lt;/li&gt;
&lt;li&gt;and the configured success redirect works.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For additional details and troubleshooting guidance, review the complete guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://postmyform.com/guides/astro-contact-form?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=astro_guide" rel="noopener noreferrer"&gt;Read the complete Astro contact-form guide&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>astro</category>
      <category>html</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to add a contact form to GitHub Pages</title>
      <dc:creator>PostMyForm</dc:creator>
      <pubDate>Sun, 26 Jul 2026 17:23:00 +0000</pubDate>
      <link>https://dev.to/postmyform/how-to-add-a-contact-form-to-github-pages-3ndc</link>
      <guid>https://dev.to/postmyform/how-to-add-a-contact-form-to-github-pages-3ndc</guid>
      <description>&lt;p&gt;GitHub Pages is ideal for publishing fast, low-maintenance static websites, but it cannot process contact-form submissions on its own.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll add a working HTML contact form, connect it to a hosted form endpoint, restrict submissions to the correct GitHub Pages origin, and test the complete flow—without deploying a server or serverless function.&lt;/p&gt;

&lt;p&gt;Add a working form without a backend&lt;/p&gt;

&lt;p&gt;GitHub Pages publishes static HTML, CSS, and JavaScript. It does not provide application code that can receive and process a form submission.&lt;/p&gt;

&lt;p&gt;PostMyForm supplies the hosted form endpoint while your website remains a normal GitHub Pages site.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Create the form in PostMyForm
&lt;/h2&gt;

&lt;p&gt;Sign in to PostMyForm, open Forms, and create a form.&lt;/p&gt;

&lt;p&gt;Configure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A recognizable form name.&lt;/li&gt;
&lt;li&gt;The email address that should receive notifications.&lt;/li&gt;
&lt;li&gt;The allowed origin for the GitHub Pages site.&lt;/li&gt;
&lt;li&gt;An optional success redirect URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a project site such as:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://username.github.io/project-name/" rel="noopener noreferrer"&gt;https://username.github.io/project-name/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the following allowed origin:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://username.github.io" rel="noopener noreferrer"&gt;https://username.github.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project path is not part of the browser origin.&lt;/p&gt;

&lt;p&gt;When the site uses a custom domain, enter the exact origin shown in the browser, such as:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.example.com" rel="noopener noreferrer"&gt;https://www.example.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Add the fields
&lt;/h2&gt;

&lt;p&gt;Add the fields required by the contact form.&lt;/p&gt;

&lt;p&gt;A typical contact form includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mark fields as required where appropriate.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Copy the generated form
&lt;/h2&gt;

&lt;p&gt;Open the form detail page and copy the complete generated HTML.&lt;/p&gt;

&lt;p&gt;A shortened example looks like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;form action="https://postmyform.com/f/your-endpoint-id" method="POST"&amp;gt;
  &amp;lt;label for="name"&amp;gt;Name&amp;lt;/label&amp;gt;
  &amp;lt;input id="name" name="name" type="text" required&amp;gt;

  &amp;lt;label for="email"&amp;gt;Email&amp;lt;/label&amp;gt;
  &amp;lt;input id="email" name="email" type="email" required&amp;gt;

  &amp;lt;label for="message"&amp;gt;Message&amp;lt;/label&amp;gt;
  &amp;lt;textarea id="message" name="message" required&amp;gt;&amp;lt;/textarea&amp;gt;

  &amp;lt;button type="submit"&amp;gt;Send message&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Use the complete snippet from the dashboard. It contains the unique endpoint and anti-spam controls required by your form.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Add the form to the repository
&lt;/h2&gt;

&lt;p&gt;Paste the generated HTML into the page or template where the contact form should appear.&lt;/p&gt;

&lt;p&gt;For a simple HTML site, this may be index.html or contact.html.&lt;/p&gt;

&lt;p&gt;Commit and push the change to the publishing source configured for GitHub Pages. That source may be a repository branch or a GitHub Actions deployment workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Confirm the published URL
&lt;/h2&gt;

&lt;p&gt;Wait for the GitHub Pages deployment to finish and open the published page in a browser.&lt;/p&gt;

&lt;p&gt;Confirm that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The form is visible.&lt;/li&gt;
&lt;li&gt;The page uses HTTPS.&lt;/li&gt;
&lt;li&gt;The browser origin matches the allowed origin in PostMyForm.&lt;/li&gt;
&lt;li&gt;The form action points to the generated PostMyForm endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Send a test submission
&lt;/h2&gt;

&lt;p&gt;Submit the published form once.&lt;/p&gt;

&lt;p&gt;A clean submission should appear in the PostMyForm dashboard and trigger an email notification attempt. The submission history records the notification result.&lt;/p&gt;

&lt;p&gt;If a success redirect is configured, PostMyForm redirects the browser after processing the submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. You now have a working contact form
&lt;/h2&gt;

&lt;p&gt;You now have a working contact form on a static GitHub Pages site without maintaining a separate backend.&lt;/p&gt;

&lt;p&gt;Before considering the setup complete, test the form from the published HTTPS URL and confirm that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the submission appears in the PostMyForm dashboard,&lt;/li&gt;
&lt;li&gt;the notification email arrives,&lt;/li&gt;
&lt;li&gt;the configured success redirect works,&lt;/li&gt;
&lt;li&gt;and the browser origin matches the allowed origin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For common problems and additional details, see the full troubleshooting guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://postmyform.com/guides/github-pages-contact-form?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=github_pages_guide" rel="noopener noreferrer"&gt;Review the complete GitHub Pages guide and troubleshooting steps&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>github</category>
      <category>githubpage</category>
      <category>html</category>
    </item>
  </channel>
</rss>
