Contact Form
Enable a built-in contact form with CAPTCHA protection and email notifications via Resend.
Contact Form
Let visitors send you messages without exposing your email address. Messages are stored in your database and optionally forwarded to your inbox.
How It Works
- A visitor fills out the form on your public page (name, email, message).
- If CAPTCHA is configured, it verifies the submission is from a real person.
- The message is saved to your database.
- If email is configured, you receive a notification with the full submission details.
- You can view and manage all submissions at
/admin/inbox.
Setting Up
1. Enable the Form
Go to /admin/inbox and turn on Accepting messages in the header. Messages are always stored in your database; when email is configured you also receive a notification.
2. Configure Email (Optional)
At /admin/settings/email:
- Select a provider: Resend or Cloudflare Email Workers.
- Enter your API key.
- Set the "From" email address (must be verified with your provider).
When email is enabled, LinkDen sends a Contact Notification email to you with the full submission details (name, email, message, and any optional fields). You can preview this template in the Email Templates section.
3. Configure CAPTCHA (Recommended)
At /admin/settings/integrations → CAPTCHA, choose a provider:
Cloudflare Turnstile -- A privacy-friendly, invisible challenge.
- Go to Turnstile in the Cloudflare dashboard.
- Add your site and get the site key and secret key.
- Enter both keys in the CAPTCHA settings.
Google reCAPTCHA -- A traditional checkbox challenge.
- Register your site at google.com/recaptcha.
- Get the site key and secret key.
- Enter both keys in the CAPTCHA settings.
Tip: Without CAPTCHA, the form still works but has no bot protection. Turnstile is recommended for a frictionless visitor experience.
Managing Submissions
Navigate to /admin/inbox to view all submissions. Each one shows:
- Sender name and email
- Message content
- Date and time
- Read/unread status
You can mark as read, mark as unread, or delete any submission.
The Inbox item in the navigation shows an unread badge.
Form Fields
| Field | Required |
|---|---|
| Name | Yes |
| Yes | |
| Message | Yes |
| CAPTCHA | Only if configured |