Dear Next.js Aficionado,
Building and handling forms in Next.js or any other framework can easily be one of the most challenging stuff you need to do.
It’s so hard because you need some experience and knowledge in multiple disciplines like UX, Cybersecurity, Back-End Development, Front-End Development, and API Building, among others.
For example, make your form look slightly long and hard to fill out, and your website users may never use it. Or put a “suspicious privacy-intruding” field, and they not only won’t send it, but they will start having a “bad feeling” about your website.
There are many security considerations also…
Most of the time, you always need to create some backend to validate and process your forms. If you don’t validate server-side users’ data before sending it to your storage or database, that’s a significant vulnerability.
So building and handling Next.js forms is so much more work than just writing some simple JSX and an API route that accepts submissions.
That’s why I created this resource-like article where I shared links to useful articles, js libraries, and services that will help you build amazing and secure forms.
Next.Js Form Handling
Before we dig deep into the more complex stuff, let’s first review some of the React.Js and Next.js basics regarding forms.
As you may already know, there are some react-specific concepts like controlled and uncontrolled fields, handlers, states, etc. Also, Next.js offers other cool features that we can use for our task.
Building Forms with Next.js
React Forms Dodumentation
How to use forms in Next.js
Creating Advanced Reusable Forms
Next.Js Form Validation
There are two main things that we must bear in mind while creating web forms: proper UX and data validation.
Let’s learn about data validation first…
It’s important for both security and business reasons. On the one hand, we want our forms to be secure, so malicious users can’t use them to gain access to our database or infect the website.
On the other hand, we want to receive the correct information in a valid format from our users.
Here are some valuable resources on the topic:
A Definitive Guide to Sensible Form Validations
The Complete Guide to HTML Forms and Constraint Validation
Web Form Validation: Best Practices and Tutorials
A Step-by-Step Guide to Handling Form Validation in React
React Hook Form Validation with Complete Examples
React Hook Form vs. Formik: A technical and performance comparison
Next.Js Form Design
So we’ve talked about form validation and security, but that’s only half of the story. If we want our users to fill out and submit the forms we create, we need to design them a certain way.
They should look compact and elegant; here’s how we can achieve just that…
Form Design: Best Practice, Research Insights And Examples
Form Validation Best Practices: A Case Study Of How To…
How to Report Errors in Forms: 10 Design Guidelines
Best Practices for Hints and Validation in Web Forms
Form Validation: Why It Matters and How to Get It…
MDN Web Docs: Client-side form validation
Why You Shouldn’t Use Solid or Underlined Text Fields
Creating amazing and secure Next.Js forms that are constantly filled out and submitted takes work.
We need to plan a lot of stuff like the proper type and the number of fields, what we should validate and what we shouldn’t, and how to make them look compact and elegant, so they don’t repel our users.
I hope all the resources I collected here help you achieve your goal…
Building and handling forms can easily be one of the most challenging stuff you need to do, but you’re not alone. There is plenty of people who’ve done it the right way and shared their experience, so we can learn to do it too.