Build a working contact form for your Alpine.js website. Send Alpine.js form data to email using API in three simple steps. See example code below. No backend or server code needed.
Show steps ↓No Signup required
You already know! Setting up form backend is pain. Web3Forms works without any Server or backend code.
All emails are sent directly to your email address. We never store your form submissions.
Web3Forms is an API based form backend. We can seamlessly integrate to any custom design or style.
Creating Alpine.js Contact Form is easy as 1 2 3. Just follow the steps and you’re done.
Access key will be sent to your email address.
Use the following code example to create a form inside your Alpine.js website.
<form x-data="contactForm()" @submit.prevent="submit">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
<input type="text" name="name" required />
<input type="email" name="email" required />
<textarea name="message" required rows="3"></textarea>
<button type="submit" :disabled="loading">Submit</button>
<div x-text="status"></div>
</form>
<script>
function contactForm() {
return {
buttonText: "Submit",
loading: false,
status: "",
async submit(event) {
const formData = new FormData(event.target);
const object = Object.fromEntries(formData);
const json = JSON.stringify(object);
this.status = "Submitting...";
this.loading = true;
const response = await fetch("https://api.web3forms.com/submit", {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json"
},
body: json
});
const result = await response.json();
if (result.success) {
console.log(result);
this.status = result.message || "Success";
}
this.loading = false;
}
};
}
</script>
Replace the access key with your actual key to start receiving email submissions.
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
Alpine.js Docs & code examples →Create your contact form for static website in minutes.
Create your Access KeyNo Signup required