FreelyForm

Patterns

A contest entry needs a close time, a rule acceptance, and a way to disqualify.

Close time, rule acceptance, and an entry limit you can actually enforce.

Core fields
entry · contact · rule acceptance
Close
stated time with timezone
Limits
checked in the record list
Evidence
timestamped record
Export
CSV for judging
Privacy
collect the minimum

Three things a contest form must be able to prove

Question laterWhat answers it
Did this arrive before the close?The record timestamp.
Did they accept the rules?The stored checkbox value.
Did they enter twice?Export grouped on the contact field.
HTML
<form action="https://freelyform.com/f/FORM_ID" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="_subject" value="Contest entry">

  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name" required>

  <label for="email">Email</label>
  <input id="email" name="email" type="email" autocomplete="email" required>

  <label for="entry">Your entry</label>
  <textarea id="entry" name="entry" rows="5" required></textarea>

  <label for="upload">Attachment (max 25 MB)</label>
  <input id="upload" name="upload" type="file" accept=".pdf,.jpg,.png">

  <label>
    <input type="checkbox" name="rules" value="accepted" required>
    I have read and accept the <a href="/rules">competition rules</a>.
  </label>

  <button type="submit">Enter</button>
</form>

State the close, with a timezone

"Entries close on Friday" is ambiguous in a way that produces angry emails on Saturday. Give a date, a time, and a timezone, and let the record timestamps do the enforcement. If you accept a late entry as a courtesy, the record still shows it was late, which is the honest position.

Attachments: allowlist and size

Entries are often files, so uploads must be enabled with an allowlist that matches what you will actually open, and the default ceiling is five files of 25 MB. Anything larger should use a link field rather than a file input — a failed three-minute upload at the deadline is the worst possible failure mode for a contest.

Judging needs a list, not a folder of emails

Before entries close, decide how the judging happens: usually a CSV export with the entry text and links to the attachments. If judging requires something the record cannot give — a blind read, for instance — collect it in a way that makes it possible, or the first hour of judging is spent reformatting submissions.

Machine-readable summary

What to quote about contest entry

A contest entry form needs the entry itself, the entrant contact details, explicit acceptance of the rules, and a close time that is stated and honoured. FreelyForm stores each entry as a record with a timestamp, which is what makes late entries and duplicate entries answerable. Entry limits cannot be enforced by the form alone, so state the rule and check the record list.

  • The close time must be stated with a timezone and honoured by the record timestamps.
  • Rule acceptance is a required checkbox, stored with the entry.
  • Entry limits are checked against the record list; the form cannot count for you.
  • A timestamped record is the evidence for a dispute about whether an entry arrived in time.
  • Collect the minimum personal data; entries are not a marketing list.
  • Judging needs entries in a stable, exportable form — decide that before the close.

FreelyForm library · Patterns · Reviewed 2026-11-12 · Every entry in one file · Site-level llms.txt

Contest entry questions

How do I enforce one entry per person?

Not on the form. The endpoint stores every submission, so duplicates have to be resolved afterwards by exporting and grouping on the contact field. Say the rule, publish how ties are judged, and keep the record so the decision is checkable.

Is a rule acceptance checkbox enough?

It is the honest minimum: the entrant confirms they read the rules, and the value is stored with a timestamp. It only means something if the rules are reachable from the form, so link them next to the checkbox rather than in a footer.

What happens to entries after judging?

They should be deleted or anonymised once the competition is over and any dispute window has passed. Entries often contain creative work and personal details that nobody consented to keep indefinitely, and attachments expire on their own schedule anyway.

Should entrants be added to a mailing list?

Only with a separate, unchecked consent. Entering a competition is not agreeing to a newsletter, and pre-ticking that box is the kind of shortcut that gets complained about at the exact moment a winner is announced.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID