Skip to content

Contact form and lead inbox

A contact form for your portfolio website, with the inbox behind it.

A contact form for a portfolio website is a short form on your own site, normally name, email and message, that lets a recruiter or a client write to you without you publishing your email address for scrapers to harvest. In Folio the form is part of the portfolio rather than a service you bolt onto it: you turn it on in site settings, and each submission is saved as a lead in your account, so a notification that gets filtered or bounces cannot lose you the message. There is no endpoint to wire up, no plugin to keep patched, no SMTP credentials to paste, and no vendor logo sitting under the send button.

Publish a portfolio that already knows how to take a message.

No card at signup. The form, the lead inbox, the spam wall, Slack and Discord alerts and the CSV export are on every plan, Free included. Be clear on what Free withholds: zero custom domains, so you go live at portfolio.wrxstack.com/yourname, a Made with Folio credit on the site, 10 core designs and 10 AI drafts a month. Mapping a name you own and dropping that credit are Pro, at Rs 599 or $9 a month.

services to wire up
0
the form and the inbox ship with the site

What is a contact form on a website

A contact form is a message box that protects your address.

A contact form is a small set of fields on a page, plus something on the other side that catches what is typed into them. A visitor fills in who they are, how to reach them, and what they want, and presses send. Nothing about your inbox is revealed to do it. That is the whole idea, and it is why a plain "email me" link is a weaker choice than it looks: an address printed in your markup is an address that gets scraped, and a mailto link only works for a reader whose machine has a mail client set up and ready.

Should a portfolio have a contact section at all? Yes, and it is not close. Every other page on the site exists to make a stranger want to talk to you. The form is the one place where that intention turns into a message you can answer, and burying it behind a link to a Google Form or a Calendly page adds a step exactly where you can least afford one. If a hiring manager has to leave your site to reach you, some of them simply will not.

The part people get wrong is not the form. It is everything after the send button. A form that fires an email into a Gmail account is one spam filter away from silence, and the client never knows their message vanished. They just assume you ignored them. Folio treats the submission as a record first: it lands in a lead inbox that lives in your account with a status on it, and the email is a notification about a thing that already exists rather than the only copy of it.

How to add a contact form to your website

From no form to a triaged first message.

This is the whole setup on Folio. There is no endpoint to create, no key to paste, and nothing to keep patched.

  1. 01

    Publish the portfolio.

    Paste a resume or a short bio and Folio drafts the site, projects included. You edit every word before anything is public. Free publishes at portfolio.wrxstack.com/yourname, which is enough to send to a recruiter today.

  2. 02

    Turn the form on.

    One switch in site settings. The contact section appears on your public site with three fields: name, email, message. Nothing to design, nothing to embed, nothing to configure.

  3. 03

    Send yourself a test message.

    It arrives in the Inbox marked new, with the page the visitor came from recorded next to it. The sender IP is stored as a one-way hash, never in the clear, so you keep the anti-abuse signal without holding raw addresses.

  4. 04

    Route the alert to where you actually look.

    Add a Slack or Discord incoming webhook, or any https endpoint you own, and a new lead pings you there in real time. Folio requires https, refuses a URL with credentials embedded in it, checks Slack and Discord URLs against an exact host allowlist, and never exposes the webhook publicly.

  5. 05

    Triage, reply, and keep the record.

    Star what matters, move each message through new, read, replied, archived or spam, and leave yourself a private note the sender will never see. A canned reply opens a prefilled mail draft. When you want the list elsewhere, export it as CSV.

The inbox behind the form

Where the messages go, and what you can do with them.

A contact form is only as good as the thing that catches it. Folio ships the catching part, which is the part every form service leaves to you.

Durable

The message is a record, not just an email.

Every submission is written to your lead inbox as its own row. Email is treated as best-effort notification on top of that. If a notification is filtered, delayed or bounced, the lead is still sitting there waiting for you.

Triage

Five statuses and a star.

A lead is new, read, replied, archived or spam. Flag the ones worth chasing so they pin to the top, filter by status or by date, search the list, and clear a backlog with bulk actions instead of one click per row.

Notes

A private note the sender never sees.

Attach up to 2,000 characters of your own context to any lead: the rate you quoted, the referral it came through, the reason you passed. It stays owner-side, and it travels with the lead into your CSV export.

Replies

Canned replies that open a real draft.

Pick a template and Folio builds the subject and body, greets the sender by first name, and hands you a prefilled mail draft. The reply goes out from your own address, so the thread lives in your mailbox where it belongs.

Spam

Three layers, none of them a puzzle for the visitor.

Hidden honeypot fields catch the naive bots, a proof-of-work challenge makes bulk submission expensive, and the endpoint caps a single IP at 5 submissions per hour. Anything flagged is filed under spam rather than deleted, so a false positive is recoverable.

Yours

You can take the list and leave.

Export every lead as a CSV with the timestamp, status, flag, name, email, message, referring page and your private note. No plan holds your contacts hostage, because the export is not a paid feature.

How it compares

The four other ways people put a contact form on a site.

Each of these works. The question is how much of the plumbing you are agreeing to own, and where the message ends up once someone presses send.

The four other ways people put a contact form on a site.
CapabilityFolioForm endpoint serviceWordPress pluginHand-coded HTMLGeneral site builder
SetupOne switch in site settingsCreate an endpoint, paste its URL into your markupInstall it, configure it, keep it patchedWrite the markup, then build a server to receive itDrag a form element onto the page
Where the message actually landsA lead row in your account, kept even if the email failsThe vendor dashboard, and a forwarded emailYour database if the plugin stores it, and your mail serverWherever your handler sends it, which is usually just emailThat builder inbox, tied to that builder
TriageStatuses, a star, notes, search, date filters, bulk actionsA submissions listDepends entirely on the pluginYou build itA basic list of entries
Spam defenseHoneypot, proof of work, and 5 per IP per hourVendor filtering, with the stronger controls on paid tiersA second plugin bolted on top of the firstYou write it, and you keep writing itWhatever the builder ships that year
Instant alert to Slack or DiscordBuilt in, plus any https endpoint you ownUsually an integration on a paid planAnother plugin, or a Zapier hopYou write it yourselfEmail notification, and little else
Works on a site you did not build hereNo. The form is part of a Folio site, and there is nothing to embedYes. That is the entire productYes, on WordPressYes, anywhere you control the HTMLOnly on that builder

Competitor cells describe the published shape of each option, not a price, because any vendor can change a tier next quarter. Folio is held to the same standard here. The form, the inbox, the alerts and the export are on Free; your own domain and a site without the Made with Folio credit are not, and neither is the full gallery of 60 designs.

The numbers, awkward ones included

Everything on this page is a product fact you can check.

No survey, no benchmark, no borrowed statistic. Just what the code does.

  • 3

    fields on the public form

    name, email, message. No custom fields

  • 5

    statuses in the lead inbox

    new, read, replied, archived, spam

  • 5

    submissions per IP per hour

    the public rate limit on the endpoint

  • 0

    custom domains on Free

    you publish on a Folio address

The honest limits

What this is not, before you find out the hard way.

Folio is not a form builder. It does not generate a snippet you can paste into a WordPress theme, a Canva site or a hand-rolled HTML page, and it will not run on a domain it does not serve. If your site lives somewhere else and you only want the form, a hosted form endpoint is the correct tool and you should use one. Folio is for the case where the portfolio and the contact form are the same product, so there is nothing to connect and nothing to break when you redesign.

The fields are fixed: name, email, message. There are no custom questions, no dropdowns, no file uploads, no multi-step flows, and no conditional logic. That is a deliberate trade. Three fields is what a stranger with a real project will fill in, and a longer form is a filter you rarely meant to install. If you need a budget field and a project brief, link out to a dedicated form tool from your site and keep the built-in form for everyone else.

And the pricing, plainly. The contact form, the lead inbox, the triage, the webhook alerts and the CSV export are not gated. Free gets all of it. What Free does not get is a domain of your own, because the plan includes zero of them, and a site free of the Made with Folio credit. So a client landing on a Free portfolio sees a Folio address and a Folio badge. If a message arriving at a page under your own name matters to you, and for freelance work it usually does, that is Pro at Rs 599 or $9 a month. We would rather you knew that before you signed up than after.

FAQ

Honest answers.

What is a contact form on a website?

It is a group of input fields, most often a name, an email and a message, that a visitor fills in to write to the site owner. When they press send, the site takes what they typed and delivers it, usually by storing it and emailing a notification. Two things make it better than printing your address on the page. Your inbox is never exposed to the crawlers that harvest addresses for spam lists, and the sender does not need a working mail client on the device in front of them to reach you.

How do I add a contact form to my portfolio website?

On Folio it is one switch. Open site settings, enable the contact section, and the form appears on your published portfolio with three fields. There is no endpoint to register, no API key, no SMTP host, and no snippet to paste anywhere. From that moment every message written into it becomes a lead in your inbox with the referring page attached, and you can point a Slack or Discord webhook at it if you would rather be told in real time than check a tab.

Do I need to code a contact form or install a plugin?

Not here, no. Writing one by hand means owning the markup, a server route to receive the post, validation, storage, spam handling and a way to be notified, and then owning all of that forever. A plugin hands you most of it and asks for updates, a captcha add-on and a database in return. Folio has already built that path, so the only decision left to you is whether the form is on or off. If your site is not a Folio site, though, a hosted form endpoint is the honest recommendation.

How do I link a QR code to my website contact form?

Point the code at the page, not at the form. Every Folio account gets a digital card at a public address, and Folio renders a QR for it that you can scan on screen or download as a PNG for a business card, a slide, a conference badge or a poster. Whoever scans it lands on your site, where the contact section is already waiting a scroll away. That beats encoding an email address into the code itself, because a link can be redesigned later and a printed address cannot be taken back.

Where do the messages go, and what stops spam?

Each submission becomes a row in a lead inbox that belongs to your workspace, and the email you receive is a notification about it rather than the only copy, so a message cannot quietly die in a spam folder. Three defenses sit in front of the endpoint. Hidden fields no human ever sees catch the crude bots, a proof-of-work challenge makes mass submission expensive rather than free, and one IP is limited to five submissions an hour. Anything caught is filed as spam and kept, so you can rescue a false positive.

Is the contact form free?

Yes, and so is the inbox behind it. There is no entitlement gate on the form, the statuses, the private notes, the Slack and Discord alerts or the CSV export, which means a Free account keeps every lead and can walk away with the whole list. The limits sit elsewhere and you should know them: Free gives you zero custom domains, so you publish at portfolio.wrxstack.com/yourname, the site carries a Made with Folio credit, and you get 10 core designs. Your own name on the address bar is a Pro feature.

Can I use the Folio contact form on my WordPress, Wix or Canva site?

No, and it is worth saying plainly rather than burying it. Folio does not produce an embeddable form, an iframe or a snippet of any kind, and the form only renders on a site Folio serves. If your portfolio lives on another platform and all you want is the form, use a hosted form endpoint built for exactly that. Folio makes sense when you want the portfolio, the resume, the blog and the contact inbox to be one account instead of five subscriptions stitched together.

Contact Form for Portfolio Website + Inbox | Folio