Astro Project Enquiry
Template
Collect the first version of a project brief before scheduling a call. This template asks for a name, email, estimated budget and project description, making it useful for freelance and agency websites.
Make it yours
A better project enquiry
Try the form and take the Astro code.
Interactive demo · submissions stay in this preview
Set up this template in Astro
Astro renders the component to HTML at build time. Its native form sends a POST from the visitor’s browser to SiteBackend, so static deployment works without an Astro Action or an API endpoint in your project.
1. Create your SiteBackend form
Create a site and a form in your dashboard. Copy the form endpoint and replace
YOUR_FORM_IDin the downloaded component.2. Add the .astro component
Save the download as src/components/WorkflowForm.astro. The frontmatter and scoped style block are included. No integration, client directive or server adapter is needed.
Full component: src/components/WorkflowForm.astro
--- // Replace YOUR_FORM_ID with the ID from your dashboard. --- <form class="sb-form" action="https://api.sitebackend.com/forms/YOUR_FORM_ID" method="POST"> <h2>Make something great.</h2> <p>Tell us what you’re building. We’ll take it from here.</p> <label for="name">Your name</label> <input id="name" name="name" type="text" placeholder="Alex Morgan" required> <label for="email">Email address</label> <input id="email" name="email" type="email" placeholder="[email protected]" required> <label for="budget">Estimated budget</label> <input id="budget" name="budget" type="text" placeholder="$5,000–$10,000" required> <label for="brief">Your project</label> <textarea id="brief" name="brief" placeholder="The idea, the timeline, the big picture…" required></textarea> <input type="text" name="_gotcha" tabindex="-1" autocomplete="off" style="display:none"> <button type="submit">Send project brief</button> </form> <style> .sb-form { max-width: 440px; padding: 32px; margin: 24px auto; font-family: system-ui, sans-serif; color: #0b0a16; background: #fff; border: 1px solid #e7e5f0; border-radius: 20px; } .sb-form h2 { font-size: 28px; margin: 0 0 8px; } .sb-form p { color: #6b6a80; line-height: 1.6; } .sb-form label { display: block; font-size: 14px; font-weight: 600; margin-top: 20px; } .sb-form input, .sb-form textarea { box-sizing: border-box; width: 100%; margin-top: 8px; padding: 12px; border: 1px solid #e7e5f0; border-radius: 8px; font: inherit; } .sb-form textarea { min-height: 110px; resize: vertical; } .sb-form button { width: 100%; margin-top: 24px; padding: 14px; border: 0; border-radius: 8px; background: #6d3fe0; color: #fff; font: inherit; cursor: pointer; } .sb-form :focus-visible { outline: 2px solid #6d3fe0; outline-offset: 3px; } </style>3. Use the component on your page
Create
src/pages/project-enquiry.astro, or import the component into an existing page. Adjust the relative import path if your folders differ.src/pages/project-enquiry.astro
--- import WorkflowForm from "../components/WorkflowForm.astro"; --- <WorkflowForm />4. Connect notifications and test a submission
Enable email notifications in your form settings if you want an alert for each submission. If you restrict allowed origins, include your production URL and local development origin (typically http://localhost:4321). Submit from your own site and confirm it appears in the dashboard. The preview above demonstrates the form without sending data.
Customizing the Astro implementation
Keep styling in the component’s scoped style block. If you add interactive behavior later, a small browser script can submit FormData with fetch; you do not need a React island just to send a form.
What this form collects
- name and email tell you who to follow up with.
- budget is a free-text estimate, letting visitors provide a range or say that it is undecided.
- brief gives visitors space to describe goals, scope and timing.
Make it fit your workflow
- Change the budget input to a select with ranges that match the work you accept.
- Add a named timeline or service field to collect the context needed for your first call.
- If you add a file input for briefs, set multipart/form-data on the form and configure accepted upload types in your dashboard.
The budget is an enquiry field, not a payment or quote calculation. Review the brief in your inbox, add notes or tags to the saved contact, and agree the scope with the sender before work begins.
More Astro templates
Astro Contact Form Template
Add a contact form to your static Astro site with a copyable .astro component, scoped CSS, a spam honeypot and SiteBackend email notifications.
Astro Waitlist Template
Add a waitlist to an Astro launch page with a static name and email form, scoped CSS and SiteBackend submission storage and CSV export.