After years of requests (unfortunately unanswered due to lack of time),  last year I made public the code for the contract generator.

Screenshots of the signature area in Contract Generator on medium and wide screens.
Click the image to run the public generator

You can generate a contract online (eg: using the public Generator), and then:

  • download it as a single file*,
  • upload it to your own server**,
  • and send your client a link to it.

When signed by your client, the .php file will delete itself from existence and replace itself with a static HTML version that has a Print button (and, other than the .html extension, the same filename).

The client will be immediately redirected to the signed version and, optionally, email notifications will be sent out to both parties.

The Generator is written in vanilla Javascript (doesn’t require PHP or have any jQuery or Node dependencies), and can be ran online without any registration or account (at stefanmatei.com/contract-generator/ â€” where your data stays only in your browser’s Local Storage (and only until you click “reset data”)); or it can be downloaded and ran from your own server.

If downloading and running the generator on your own, you have (by default) the option to use it without any build step — you can read more on this in the Readme.md from the generator folder on GitHub.


Update 🆕 12/31/23: Added functionality for shortcodes.

A simple interface with pairs of fields for “replace this” and “with this”. Each pair of inputs has a red button with an X inside it to remove the item. Screenshot from Safari iOS in landscape mode.