Best practices for handling multiple forms per page

I am wondering how others are handling pages with multiple forms.
Given the following scenario: you have a home page with a search form, a newsletter subscription form and a sign-in form. All of these are kind of different:

  1. The Subscription form might show up on many pages, but I don’t want to add the Subscription Form validation and logic to all Controllers/Handlers that have a different purpose, but the page just happens to have a Newsletter subscription form. I solved this by having the subscription form post to an AJAX Action. I am not fully happy with this, since deactivating JS in my browser sends me to a URL where I see a JSON response. I do have some ideas here, but would like to hear from others first.

  2. The Search form can simply take me to a search results page

  3. While the Sign In form needs to give some feedback before redirecting to a admin cp.

For all of these, how do you organise or manage form validation and returning feedback to the user?
Ideally the HomePageController does not need to know which or how many forms are on the page and exclusively retrieves some content form the DB. But then again, I also want the submitted values in Twig.

I appreciate your feedback

Ajax is fine. I wouldn’t care about browsers that have JavaScript disabled, because today nothing works without JavaScript on the frontend. Create specific endpoints for the search form, the newsletter subscription and the login. Then handle that request in specific action handlers, services etc and return the response as JSON.