Logo

    React contact section components

    Four contact layouts: a compact centered card, a two-column form beside a tilted world map, and two split sections that pair the form with a shader or a dithered image.

    Trusted by Founders and Entrepreneurs from all over the world

    John Shahawy
    Henrik Söderlund
    John Ferry
    Meru Gokhale
    Georg Weingartner
    Jonathan Barshop
    Ray Thai
    Tony Pujals
    Next.js
    React
    Tailwind CSS
    Framer Motion

    Every contact section in the library

    The markup and styling are done; the submit handler is yours. Each block shows which fields it renders so you can match them to your backend.

    See all 4 contact sections

    What makes a contact form get filled in

    Every field you add costs you submissions, so justify each one. Name, email and message is the floor, and a company field is defensible if sales genuinely routes on it. What is not defensible is a phone number you never call or a dropdown of enquiry types that exists because someone wanted cleaner tickets. If you must collect more, ask for it in the reply rather than on the form, when the person is already invested.

    Validate on blur, not on every keystroke. Telling someone their email is invalid while they are still typing the second character is the single most irritating pattern in web forms. Show the error next to the field it belongs to, wire it up with aria-describedby so it is announced, and mark the input aria-invalid. When the server rejects a submission, keep everything the person typed and put the message where their attention already is, which is at the button they just pressed.

    Spam does not need a captcha at this volume. A hidden honeypot field that real users never fill, plus a check that the form took more than two seconds to complete, stops the overwhelming majority of bots and costs your visitors nothing. Rate limit by IP on the server as the backstop. Reach for a challenge only once you have evidence that targeted abuse is getting through, because every captcha you add taxes the people you actually want to hear from.

    Handle the submit state honestly. Disable the button while the request is in flight so nobody double-sends, and only show success after the server confirms it, since an optimistic thank-you that silently failed is worse than a visible error. Replace the form with a confirmation that says what happens next and roughly when. Publishing a plain email address alongside the form is also worth doing, because some people simply will not trust a form with anything important.

    Frequently asked questions

    How do I make a contact form actually send email in Next.js?

    Post the form to a route handler or a server action and send the message from there with an API such as Resend or Postmark, keeping the API key server side. Do not call an email provider from the browser, since any key you ship to the client can be extracted and used to send mail as you.

    How many fields should a contact form have?

    Three or four. Name, email and message covers almost every case, with an optional company field if your sales process needs it. Each additional required field measurably reduces the number of people who finish.

    How do I stop contact form spam without a captcha?

    Add a honeypot input that is hidden from users and reject any submission that fills it, then reject submissions that arrive suspiciously fast after the page loaded. Combine that with server-side rate limiting per IP and you will filter out most automated traffic.

    Should I show an email address as well as a contact form?

    Yes. Forms give you structured data and a spam filter, but they also hide where the message went, and some visitors want a record in their own sent folder. Listing a real address next to the form costs nothing and picks up the enquiries a form would have lost.

    Keep exploring

    Loved by thousands of people

    Here's what some of our users have to say about Aceternity UI.

    Featured by popular YouTubers

    See what the best YouTubers are saying about Aceternity UI.

    Video thumbnail
    Jeff from
    Fireship
    talks about how Aceternity UI can help you build awesome landing pages with speed
    Video thumbnail
    Watch
    Web Prodigies
    build an entire SaaS application from scratch with Aceternity UI
    Video thumbnail
    Josh from
    Josh Tried Coding
    talks about how Aceternity UI components can help your website stand out.
    Video thumbnail
    Watch
    Hitesh Choudhary
    build an entire website from scratch with Aceternity UI
    Video thumbnail
    Adrian from
    Adrian Twarog
    talks about Aceternity UI and how to use the components efficiently
    Video thumbnail
    Adrian from
    JavaScript Mastery
    creates an entire portfolio website with amazing details and beautiful UI with Aceternity UI
    Video thumbnail
    Watch
    Raj Talks Tech
    walk through Aceternity UI components and teaches how to incorporate them into your website

    ceternity UI

    Access an ever-growing collection of premium, meticulously crafted templates and Component Blocks.

    A product by Aceternity
    Building in public at @mannupaaji

    © 2026 Aceternity Labs LLC. All Rights Reserved.