Forms
Nitip has two forms: Contact (name, email, phone, the services someone is interested in, a message) and the job application on each role’s page. The prompts build them with their states — sending, “Thank you”, “Something went wrong” — and a hidden field that catches spam bots.
Demo mode
Section titled “Demo mode”Until you connect a service, the forms run in demo mode: they wait a moment and show “Thank you”, but nothing is sent anywhere. Connect them before you publish.
Connecting a form service
Section titled “Connecting a form service”The forms send their fields as JSON to the address in an environment variable:
| Tool / framework | Variable |
|---|---|
| Lovable, Bolt, Replit (Vite) | VITE_FORM_ENDPOINT |
| v0 and other Next.js projects | NEXT_PUBLIC_FORM_ENDPOINT |
| Astro | PUBLIC_FORM_ENDPOINT |
- Create a form at a service that accepts JSON posts — for example Formspree, Web3Forms, Basin — or a webhook in Zapier, Make or n8n.
- Copy the address it gives you (e.g.
https://formspree.io/f/abcdwxyz). - Set it as the variable above: in the tool’s settings for secrets or environment variables, or in a
.envfile. - Send a test from the Contact page and check that it arrives.
Both forms can use the same address: every submission carries a form field (contact or application), and applications name the role in position.
Other ways
Section titled “Other ways”- Your tool’s database: Lovable and some others can save submissions in a database and email you. Ask: “Save Contact form submissions to the database and email me each one.”
- Your own server: the endpoint can be any URL that accepts a JSON POST — your CRM, a serverless function.
The hidden fax field stays empty for people and gets filled by bots; the form service or your handler should drop
submissions where it is filled. Most form services also filter spam themselves.