Toss for Craft CMS

Free for Craft CMS 5

Nobody should write a privacy policy

They should answer questions about their business and have the policy follow. Toss ships a clause library covering US privacy law, generates eleven kinds of legal document from one set of answers, and tells you when what you published stopped being true.

Toss

Two lines in your template

Policies render through Craft's own routing, so there is nothing to wire up. The kits can be placed automatically or by hand, and every one of them is reachable from Twig.

twig
{# Link to them, render them, date them #}
{{ craft.toss.url('privacy-policy') }}
{{ craft.toss.render('privacy-policy') }}
{{ craft.toss.effectiveDate('terms-of-service')|date('j F Y') }}

{# The kits, placed by hand if you would rather #}
{{ craft.toss.footerLinks() }}
{{ craft.toss.agreement('terms-of-service') }}

{# Gate your own tags on consent #}
{% if craft.toss.allows('analytics') %}…{% endif %}

{# Hold every iframe in existing content until consent arrives #}
{{ entry.body|tossGate('marketing') }}

Features

The documents are the easy half. What a site actually needs is the other half — links people can find, a notice when something changes, and a record of who agreed to what.

Eleven documents, one questionnaire

Privacy policy, terms of service, cookie policy, disclaimer, return and refund, shipping, acceptable use, DMCA, EULA, affiliate disclosure and custom pages.

  • About seventy questions, in plain English
  • Questions that stop applying are blanked, not just hidden

The law is derived, not asked about

Nobody knows off-hand whether the CPRA covers them. Toss works out which of CalOPPA, CCPA/CPRA, the state privacy wave, COPPA, GDPR, PIPEDA, CAN-SPAM, DMCA §512 and the FTC endorsement guides apply, and shows you the list.

Tells you what moved it

Because the compiler is a pure function of its inputs, Toss can compare what is published with what would be generated now — and name the clause the library reworded, or the answer you changed.

  • A text diff shows that something changed
  • This shows what changed it

Consent that actually gates

Non-essential tags never reach the browser as executable script. They are held as data and promoted only once their category has been granted — with decline weighted the same as accept.

  • Fourteen vendor presets, already categorised
  • |tossGate holds embeds already in your content

A record with a date on it

Every acceptance points at one exact published version, so two questions stay answerable years later: what did this customer agree to on the day they signed up, and who has not accepted the current terms.

  • Signed checkbox — a record cannot be forged
  • Hashed IP, never the address itself

Fails the build, not the audit

`toss/policies/check` exits non-zero when a published policy no longer matches what the answers and the shipped library say. The closest thing there is to a test for “is our privacy policy still true”.

Frequently Asked Questions

The questions worth answering before you install it.

Start free, upgrade when you need to

Lite covers a privacy policy and terms of service on your primary site. Pro is $79 with a $59/year renewal, and adds the other nine document types, cookie consent with real script gating, the acceptance record, and drift detection that explains itself.