Minimal contact form
Labels, three fields and a button. No style block. The browser draws the controls. The post is the same as the other starters.
What you are copying
This starter is the contact form with no style block and no utility classes. The browser draws the controls with its default look.
That is useful when you want to see the request clearly, or when your own stylesheet will do the painting.
The fields are still name, email, an optional phone and a message. The button submits a normal POST.
There is no framework, no font and no script. If your global CSS restyles inputs, that CSS will apply. This file does not fight it.
The preview on this page also skips the card styles used by the other starters, so the controls look closer to an unstyled form.
What is still required
Even a bare form needs access_key, _lang and botcheck. Those are how Formgong knows the form, the language and the honeypot.
The honeypot is hidden with a short style attribute on its wrapper. That is the only style in the snippet. Without it, people might fill the trap.
Turnstile is in a comment. The extra snippet is the same form with those lines uncommented and YOUR_TURNSTILE_SITE_KEY still to replace.
Uncommenting the lines does not create a key. Create the widget in Cloudflare, enable Turnstile on the form, then paste the site key.
A commented script does not run. Leave the comment in place until you actually want the widget.
Same delivery as the styled starters
Telegram prints the field names in bold. Keep them short. Translate only the text the visitor reads.
Without _redirect, Formgong shows its thank-you page. Add _redirect only as an absolute https URL you own.
Free includes 300 submissions a month, 30 days of retention, immediate Telegram and a daily email digest.
Data is stored in the EU. Formgong operates the service. The support address is support@formgong.com.
When the bare form works, you can wrap it in your own layout. You do not have to start from a styled starter.
Preview
Form code
<form action="https://formgong.com/submit" method="POST"> <input type="hidden" name="access_key" value="fk_your_access_key"> <input type="hidden" name="_lang" value="en"> <label>Name <input type="text" name="name" autocomplete="name" required></label> <label>Email <input type="email" name="email" autocomplete="email" required></label> <label>Phone <input type="tel" name="phone" autocomplete="tel"></label> <label>Message <textarea name="message" required></textarea></label> <div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)"> <label>Leave this field empty <input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label> </div> <!-- Optional. Turn Turnstile on for this form, then remove these comment marks and paste your site key. <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY" data-language="en"></div> --> <button type="submit">Send</button> </form>
The same form with Turnstile lines uncommented
<form action="https://formgong.com/submit" method="POST"> <input type="hidden" name="access_key" value="fk_your_access_key"> <input type="hidden" name="_lang" value="en"> <label>Name <input type="text" name="name" autocomplete="name" required></label> <label>Email <input type="email" name="email" autocomplete="email" required></label> <label>Phone <input type="tel" name="phone" autocomplete="tel"></label> <label>Message <textarea name="message" required></textarea></label> <div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)"> <label>Leave this field empty <input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label> </div> Optional. Turn Turnstile on for this form, then remove these comment marks and paste your site key. <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY" data-language="en"></div> <button type="submit">Send</button> </form>
Questions and answers
Why is there still a style on the honeypot?
So the trap stays off screen. Everything else is unstyled on purpose. Removing that one rule makes the trap visible.
Will my site CSS break the POST?
CSS does not change the POST. A style can hide the submit button, but the field names and the action URL are what matter.
Is this smaller for a reason?
Yes. It is the same request with less paint, so you can drop it into a page that already has a design.
Do I need the phone field?
No. Delete that label if you do not want a phone number. Leave email if you want a reply address in the inbox.