Lovable and Bolt prompt
Paste this prompt into Lovable or Bolt. It asks for a contact form that posts to Formgong and tells the builder not to add a database or an email service.
What you are copying
This starter is a prompt for Lovable or Bolt. You paste it into the builder chat. The builder writes the form. Formgong receives the post.
The prompt names the endpoint, the public access key, _lang, the honeypot and the success check. It tells the builder not to add a backend.
It also says not to add Resend, a database, an edge function or a server action for this form. Those are common detours in generated apps.
The extra block is plain HTML that matches the prompt. Use it if you would rather paste markup than ask the builder to write it.
Longer, tool-specific guides already exist for Lovable and for Bolt. This page is the short prompt. Those pages explain the clicks around it.
What to check in the diff
The form should post to /submit on the Formgong origin. If you see a new table, a secret, or an email SDK, ask the builder to remove them.
The access key in the prompt is fk_your_access_key until you create a form. Replace it, or use the button on this page while signed in.
Field names should stay name, email and message, with phone optional. Telegram prints those names. A renamed field is harder to scan.
botcheck must be present, empty, and hidden. If the builder deletes it as unused, put it back. It is the honeypot.
Fetch should send Accept: application/json. A JSON body also needs Content-Type: application/json. FormData should not set that header.
The prompt says to skip Turnstile unless you provide a site key. Do not let the builder invent a key.
The prompt says not to load a third-party font for the form. If the app already has a font, the form can inherit it.
After the builder finishes
Publish, or use the builder preview if it can reach the internet, and send a test. Then open the Formgong inbox.
Connect Telegram in the form settings for immediate delivery. On the free plan, email is a daily digest.
Free keeps 300 submissions a month for 30 days, in the EU. Spam is stored and not delivered, and it does not count.
Settings such as recipients and Telegram live in Formgong. You can change them without asking the builder to regenerate the form.
Formgong is the operator. If the product misbehaves, write to support@formgong.com. The builder's own account is a separate support path.
Preview
Form code
Add a contact form to this project. Submissions go to Formgong. Do not add a database, an edge function, a server action, or an email provider such as Resend.
Spec:
- A plain form may use action="https://formgong.com/submit" and method="POST". With JavaScript, POST the same fields to https://formgong.com/submit with fetch.
- Hidden input name="access_key" value="fk_your_access_key". The key is public. Keep it in frontend code. Do not move it to a secret.
- Hidden input name="_lang" value="{lang}". Formgong uses it for the thank-you page and error text. On a multilingual site, use the page language.
- Fields: name, email with type="email", and message. All three are required. phone is optional. Keep these field names. Telegram prints each name in bold above the answer.
- Honeypot: an input with type="text", name="botcheck", tabindex="-1" and autocomplete="off", inside a wrapper with aria-hidden="true". Hide it with CSS: position:absolute; inset-inline-start:0; top:0; width:1px; height:1px; overflow:hidden; clip-path:inset(50%). Never fill it.
- Fetch success: send header Accept: application/json. For a JSON body also send Content-Type: application/json. For FormData, do not set Content-Type. If the JSON success field is true, show a short thank-you and reset the form. Otherwise show the response message.
- Turnstile only if a site key is provided: script src="https://challenges.cloudflare.com/turnstile/v0/api.js" and a div with class="cf-turnstile" and data-sitekey. Otherwise leave it out.
- Do not load a font from a third party. Do not add file uploads.
- The endpoint origin is https://formgong.com.Plain HTML the prompt is asking for
<form action="https://formgong.com/submit" method="POST" style="position:relative"> <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
Does this prompt work in both Lovable and Bolt?
Yes. It does not depend on one file layout. If the builder picks React, Vue or plain HTML, the same endpoint and fields still apply.
The builder added Supabase or Resend. Now what?
Ask it to delete that code and keep only the post to Formgong. The linked Lovable and Bolt guides describe the same correction in more detail.
Is the access key safe in the prompt?
It is a public key. Anyone can send a submission with it. They cannot read your inbox or change where mail goes.
Where are the longer guides?
On the Lovable and Bolt pages under For, linked from this page. This starter is the prompt itself, not a replacement for those guides.