Skip to content
CashPlanetAcademy

20 min · Free

A form people can fill

One form that works on a phone — name, request, and a clear thank-you. No server required.

A form is a conversation with a start and a finish. If people do not know it worked, they will send a second WhatsApp and you will have duplicates.

What you will make

A page with three fields and a button. Example: “Request a hymn” or “Tell us a missing price”.

<form id="ask">
  <label>Your name <input name="name" required autocomplete="name" /></label>
  <label>Your request
    <textarea name="request" required rows="3"></textarea>
  </label>
  <button type="submit">Send</button>
</form>
<p id="thanks" hidden>Received. We will not pretend this emailed anyone.</p>
<script>
  const form = document.querySelector("#ask");
  const thanks = document.querySelector("#thanks");
  form.addEventListener("submit", (event) => {
    event.preventDefault();
    const data = new FormData(form);
    const name = String(data.get("name") ?? "").trim();
    const request = String(data.get("request") ?? "").trim();
    if (name.length < 2 || request.length < 3) {
      return;
    }
    form.hidden = true;
    thanks.hidden = false;
  });
</script>

This does not send email. That is honest. A later host or a mailto: link can wait. The skill today is: collect, check, tell the person it worked.

Acceptance

  • Labels are visible. Placeholder-only fields fail when the keyboard covers them.
  • required is not enough — you still check length.
  • The thank-you is a sentence, not a spinner that never ends.
  • Large taps. One column.

You now have three artifacts from this track: a price list, a searchable list, and a form. Ship something is how they become URLs.