Skip to main content

Astro components for Netlify features

This morning, I released the first version of astro-netlify-components,a library of Astro components for Netlify. I was about to start dogfooding the functionality in my own site, and I figured I might as well share it with the world.

There are two exported component at launch:

  • <Form>: adds all the of the markup for Netlify Forms with types and validation
  • <CMS>: a full-page component to render the Netlify CMS admin interface

To add either component to your, add the package to your project:

npm i astro-netlify-components

Then, import the components and use in your Astro page:

---
import CMS from "astro-netlify-components/CMS.astro";
import Form from "astro-netlify-components/Form.astro";
---

CMS renders a full page, so import and invoke it on a page of its own:

---
// src/pages/admin.astro
import CMS from "astro-netlify-components/CMS.astro";
---

<CMS />

Form expects children, so you could set up a contact form on your site like this:

---
// src/pages/contact.astro
import Form from "astro-netlify-components/Form.astro";
---

<Form name="contact">
  <label>
    <b>Name</b>
    <input type="text" name="name" required />
  </label>
  <label>
    <b>Email</b>
    <input type="email" name="email" required />
  </label>
  <label>
    <b>Message</b>
    <textarea name="message" required></textarea>
  </label>
  <button>Submit</button>
</Form>

If you want to give it a try, make sure to checkout the documentation and file any issues you encounter.

Happy coding!