Contact Page + Formspree Setup
How to set up the GAX Pro contact page with Formspree. Covers form fields, Formspree account setup, form ID configuration, and testing.
What the Contact Page Does
The contact page is a standalone page at /contact/. It uses a form to send messages to your email. The form is powered by Formspree — a form backend that handles submissions without a server.
The contact page is defined by:
content/contact.md
It uses layout: contact, which renders the form fields and a sidebar with direct links.
Frontmatter Structure
---
layout: contact
title: "Contact GAX Pro — Theme Orders & Custom Builds"
description: "Contact GAX Pro for premium theme questions, custom website builds, or SEO setup."
image: "/images/go-ssg9.webp"
canonical: "https://gaxpro.axcora.com/contact/"
formspree_id: xyourformspreeid
section_tag: "Get in Touch"
heading: "Contact GAX Pro"
subheading: "Questions about a theme, a custom build, or theme customization?"
form:
name_label: "Your Name"
name_placeholder: "Your name"
email_label: "Email"
email_placeholder: "[email protected]"
topic_label: "What do you need?"
topic_options:
- value: theme-question
label: "Question about a premium theme"
- value: theme-purchase
label: "Buying a theme (Gumroad)"
- value: custom-build
label: "Custom website + SEO build"
- value: theme-customization
label: "Theme customization for my brand"
- value: migration
label: "Migration from Hugo / Jekyll / 11ty"
- value: general
label: "General question"
message_label: "Project details"
message_placeholder: "Tell us about your site, the theme you are interested in, or the custom build you need."
submit_text: "Send Message"
honeypot_label: "Do not fill this field if human:"
---
The key field for the form is formspree_id. This is the only part you must change to make the form work.
Create a Formspree Account
Formspree is free for the first 50 submissions per month. For most contact forms, that is enough.
1. Go to formspree.io and click Sign up
2. Register with your email or with GitHub
3. Verify your email if prompted
The free plan does not require a credit card.
Create a New Form
After signing in:
1. In the Formspree dashboard, click New Form
2. Give the form a name — for example, GAX Pro Contact
3. Set the email address where submissions should be sent
4. Click Create Form
Formspree creates the form and shows a form endpoint:
https://formspree.io/f/xyzabcde
The last part — xyzabcde — is your form ID. You will use this in the contact page.
Add the Form ID to the Contact Page
Open content/contact.md and find the formspree_id field:
formspree_id: xyourformspreeid
Replace xyourformspreeid with your actual form ID:
formspree_id: xyzabcde
Save the file. The contact form now sends submissions to Formspree, which forwards them to your email.
Test the Form
Run the site locally:
./gax
Open http://localhost:8080/contact/ in the browser. Fill in the form with a test message and submit it.
After submitting:
1. Check the Formspree dashboard — the submission should appear under your form
2. Check the email inbox — Formspree forwards the submission to the email you set
If the submission appears in both places, the form works.
If the submission fails, check:
- The form ID is correct — no extra spaces, matches the Formspree dashboard
- The Formspree account is verified
- The browser console shows no JavaScript errors
Customize the Form Fields
The form fields are defined in the frontmatter. To change them, edit these fields:
name_label— label for the name inputemail_label— label for the email inputtopic_label— label for the topic dropdowntopic_options— the list of dropdown optionsmessage_label— label for the message textareasubmit_text— text on the submit button
To add a new topic option, add a new value and label pair:
topic_options:
- value: theme-question
label: "Question about a premium theme"
- value: hosting
label: "Hosting and deployment help"
To remove an option, delete its block.
Spam Protection
The form includes a honeypot field — a hidden input that humans do not fill but bots do. When a bot fills it, the submission is rejected.
Formspree also has built-in spam filtering on paid plans. For the free plan, the honeypot plus Formspree's basic filter handles most cases.
If you receive spam despite these protections:
1. Enable reCAPTCHA in the Formspree dashboard
2. Or upgrade to a paid Formspree plan for advanced filtering
Formspree Free Plan Limits
The free plan includes:
- 50 submissions per month
- Basic spam filtering
- Email notifications
- Dashboard access
If your form receives more than 50 submissions per month, Formspree prompts you to upgrade. Paid plans start at a small monthly fee.
Common Errors
Form submits but no email arrives — check the Formspree dashboard for the submission. If it is there, the email is being filtered as spam. Check the spam folder.
Form shows an error on submit — the form ID is wrong or the Formspree account is not verified. Check both.
Honeypot rejects real submissions — the honeypot field is visible to users. It should be hidden with CSS. Check that the template applies the hidden class.
Form does not appear on the page — the layout: contact line is missing, or content/contact.md does not exist.
Next Step
The contact form works. Next, add articles to collections:
- Blog Articles —
content/blog/*.md - Services Articles —
content/services/*.md - Projects Articles —
content/projects/*.md - Docs Articles —
content/docs/*.md - Tags Page —
content/tags.md