For freelancers & consultants

A contact form that looks
as good as your work.

Replace "email me" with a proper project-brief form. Project type, budget, and preferred start date arrive as clean fields — no backend, no website required if you don't have one yet.

  • Instant email alerts
  • Spam filtered server-side
  • Free to start — no credit card
AR

Alex Rivera

Brand & product designer

Available

Send me a project brief and I'll reply within one business day.

Recent inquiries

P

Priya N.

Brand identity · $5k–$15k

12m
n

northwind.io

Product design · $15k+

3h
M

Marco T.

Landing page · Under $5k

1d

New brief received

Emailed to you instantly

Why "just email me" loses clients

A mailto link on a portfolio site tells you nothing about the project until you're three emails deep — and by then, a more organized freelancer already replied.

Every inquiry looks different

One client sends two lines, another sends an essay — neither tells you the budget or timeline you actually need.

Tire-kickers and real clients look the same

Without a budget field upfront, you can't tell a serious inquiry from someone shopping around at any price.

Slow replies cost bookings

A good lead who doesn't hear back within a day often books whoever answered first — even if their work is weaker.

No spam protection

A public email or bare contact form invites bot spam that buries the real inquiries you're waiting for.

Built for how solo work actually gets booked

A proper intake form qualifies a lead before you spend a single minute on a call.

Project-type selector

A dropdown of the services you actually offer, so you know what a lead wants before you open the message.

Budget-range select

Qualify a lead's budget on arrival — no more back-and-forth just to find out you're not a fit.

Preferred start date field

A clean date picker for when a client hopes to kick off — not a synced calendar, just a clear signal.

Brief & file uploads

Let clients attach a brief, mood board, or reference file right in the form — single or multiple files.

Spam protection built in

Server-side spam detection runs on every submission, with optional reCAPTCHA or Turnstile on top.

A hosted page if you skip a website

No portfolio site yet? Publish an intake page at its own subdomain using the "Freelancer" template.

A project-brief form for freelancers and consultants

Most freelancer sites still ask a visitor to "reach out" by email, which means every inquiry arrives as a different length, in a different format, missing whatever detail you actually needed first. NBForms turns that into a structured form that posts straight to your endpoint: project type and budget as select fields, a preferred start date, and an optional file upload for a brief or mood board — arriving as clean data instead of a paragraph you have to parse. You get an instant email alert the moment someone submits, and every inquiry is saved to a searchable dashboard so nothing gets buried in your inbox.

NBForms doesn't send an automated reply to the client — there's no auto-responder template — but you can set a custom thank-you message or redirect them to a booking page right after they submit, so the handoff still feels considered. Server-side spam filtering runs on every submission automatically, with optional reCAPTCHA or Turnstile if your contact page gets heavy traffic.

Because it's just an HTML form action, it drops into whatever your site is built with — Squarespace, Webflow, WordPress, or hand-written HTML — and there are ready-made snippets for 16 frameworks if you build in React, Vue, or similar. No portfolio site yet? Publish a hosted intake page from the "Freelancer" template in the template library and start collecting briefs today. Running an agency instead of working solo? See our agency contact forms guide. Getting started is free with no credit card, and pricing beyond that is pay-as-you-go credits — no subscription ticking up while you're between projects.

At a glance

  • No backend or server required — just an HTML form action
  • Project type and budget arrive as structured select fields
  • Date field for preferred start — no calendar sync claimed
  • Single & multi-file uploads for briefs and references
  • Instant email alert, plus a searchable submissions dashboard
  • Free to start, pay-as-you-go credits beyond that

A project-brief form you can paste today

Project type and budget come in as structured fields, with a spot for a preferred start date and a reference file. Styled with Tailwind CSS out of the box.

project-brief.html
<form action="https://api.nbforms.com" method="POST" class="space-y-5 max-w-md min-w-[400px]">
  <input type="hidden" name="_token" value="YOUR_TOKEN" />

  <div class="mb-1">
    <h2 class="text-xl font-bold text-gray-900 tracking-tight">Send me a project brief</h2>
    <p class="text-sm text-gray-500 mt-1">I reply within one business day.</p>
  </div>

  <div>
    <label class="block text-xs font-semibold text-gray-700 mb-1.5">Name</label>
    <input type="text" name="name" required class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#2e9e6b] focus:ring-4 focus:ring-[#2e9e6b]/10" />
  </div>

  <div>
    <label class="block text-xs font-semibold text-gray-700 mb-1.5">Email</label>
    <input type="email" name="email" required class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#2e9e6b] focus:ring-4 focus:ring-[#2e9e6b]/10" />
  </div>

  <div class="grid grid-cols-2 gap-4">
    <div>
      <label class="block text-xs font-semibold text-gray-700 mb-1.5">Project type</label>
      <select name="project_type" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#2e9e6b] focus:ring-4 focus:ring-[#2e9e6b]/10">
        <option>Brand identity</option>
        <option>Web design</option>
        <option>Product design</option>
        <option>Consulting</option>
        <option>Other</option>
      </select>
    </div>
    <div>
      <label class="block text-xs font-semibold text-gray-700 mb-1.5">Budget</label>
      <select name="budget" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#2e9e6b] focus:ring-4 focus:ring-[#2e9e6b]/10">
        <option>Under $5k</option>
        <option>$5k – $15k</option>
        <option>$15k+</option>
      </select>
    </div>
  </div>

  <div>
    <label class="block text-xs font-semibold text-gray-700 mb-1.5">Preferred start date</label>
    <input type="date" name="start_date" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#2e9e6b] focus:ring-4 focus:ring-[#2e9e6b]/10" />
  </div>

  <div>
    <label class="block text-xs font-semibold text-gray-700 mb-1.5">Brief or reference file (optional)</label>
    <input type="file" name="reference_files" multiple class="w-full text-sm text-gray-600 file:mr-3 file:rounded-lg file:border-0 file:bg-[#2e9e6b]/10 file:px-3 file:py-2 file:text-xs file:font-semibold file:text-[#2e9e6b] hover:file:bg-[#2e9e6b]/15 transition-colors" />
  </div>

  <div>
    <label class="block text-xs font-semibold text-gray-700 mb-1.5">Tell me about the project</label>
    <textarea name="brief" required rows="3" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#2e9e6b] focus:ring-4 focus:ring-[#2e9e6b]/10"></textarea>
  </div>

  <button type="submit" class="w-full rounded-full bg-[#2e9e6b] px-4 py-3 text-sm font-semibold text-white shadow-lg shadow-[#2e9e6b]/25 transition-all hover:brightness-110">Send Brief</button>
</form>

Replace YOUR_TOKEN with the token from your form's setup page. Keep or drop the Tailwind classes — NBForms only cares about the action and field names.

Freelancer contact forms — FAQ

Can I capture a client's budget and project type before we ever talk?

Yes. Add select fields for project type and budget range, so you see qualifying details the moment an inquiry arrives instead of digging for them over email.

Can clients share a preferred start date?

Yes, using a date field — it's a clean date picker on the form, not a synced calendar or scheduling tool. The preferred date arrives with the rest of the submission for you to confirm.

Can clients attach a brief, mood board, or reference files?

Yes. Add a file field to accept a single upload or multiple files, so a brief document or reference images come in attached to the inquiry.

Does NBForms send my client an automatic reply?

No — there's no auto-responder template. You can set a custom success message or redirect the client to a thank-you or booking page right after they submit, and you get an instant email alert on your end.

Do I need my own website to collect project inquiries?

No. Publish an intake page as its own hosted page at a free nbforms.com subdomain, using the "Freelancer" template — a profile-style page with your bio, availability badge, and the form, live in minutes.

What does this cost for a solo freelancer?

Creating and building forms is free. Beyond the free monthly submission quota, pricing is pay-as-you-go credits — nothing recurring while you're between projects. See the pricing page for details.

Look like the professional you are

Free to start. No credit card. Add a hosted page whenever you're ready to skip the portfolio site entirely.

Create Your Freelance Form