Add a working contact form to Angular using FormsList.
TL;DR
Add a contact form to Angular using ReactiveFormsModule and HttpClient to submit to a FormsList endpoint. No Express backend needed — FormsList handles submissions, validation, spam filtering, and notifications.
Sign up at formslist.com and create a form.
Run ng generate component contact-form.
Use ReactiveFormsModule and HttpClient.
import { Component } from '@angular/core';
import { ReactiveFormsModule, FormGroup, FormControl, Validators } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-contact-form',
standalone: true,
imports: [ReactiveFormsModule],
template: `
@if (submitted) { <p>Thanks!</p> }
@else {
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<input formControlName="name" placeholder="Name" />
<input formControlName="email" type="email" placeholder="Email" />
<textarea formControlName="message" placeholder="Message"></textarea>
<button type="submit" [disabled]="form.invalid">Send</button>
</form>
}
`,
})
export class ContactFormComponent {
form = new FormGroup({
name: new FormControl('', Validators.required),
email: new FormControl('', [Validators.required, Validators.email]),
message: new FormControl('', Validators.required),
});
submitted = false;
constructor(private http: HttpClient) {}
onSubmit() {
this.http.post('https://formslist.com/f/YOUR_HASH', this.form.value,
{ headers: { Accept: 'application/json' } }
).subscribe(() => this.submitted = true);
}
}Use <app-contact-form /> in your template.
Run ng serve and submit a test form.
Build a fully functional contact form in React with hooks, validation, and email notifications. No backend server or API routes needed.
Learn moreLearn the best practices for validating form data on both the client and server side. Improve user experience, reduce errors, and keep your data clean.
Learn moreSet up your form backend in under a minute. No server required, no complex configuration — just a simple endpoint for your forms.