make me a snowclone

Corpora Explorer


  • #animal# (134)
  • #veggie# (120)
  • #cute# (30)

Saved Snowclones + Examples

Saved Snowclones

These snowclones are saved locally in your browser.

    You don't have any saved snowclones!


Need some inspiration? Check out these examples!


What is this?

Snowcloner is a web toy for generating randomized text within templates — or you could think of it as writing your own Mad Libs, and then having the computer fill them in! The name comes from snowclone, a cliché phrasal template.

How do I make a snowclone?

One place to start is the corpora explorer. Using the dropdown menus, you can select different tokens to add to your grammar. Each token is a collection of words or phrases that can be slotted into your template. The size of the collection is the number next to the token in the grammar, and you can see full collection in the corpora explorer.

The template editor is where you write your template and use your tokens! When you want to use a random token into the text, you type in its name surrounded by #s, like #this#. When you want to see what your template produces, press the generate button!

What is a "structured token"?

A structured token is a token that contains structured information rather than single words. For example,  ›  has tokens with the properties "name", "synonyms", "qualities", and "nature". Structured tokens allow you to group that information together so that when you use, say, #artifacts-name# and #artifacts-qualities# in your template, you don't end up with the name of one artifact and the qualities of another.

Of course, if you want these properties to be all mixed up, easy enough — you can use the dropdown to add them to your grammar as separate tokens!

Note: on some corpora, you might see a "convert to structured data" button... and discover that when you press it, the data ends up grouped together in an unhelpful way. In this case, you probably want "select a key" instead. I've done my best to convert the corpora into a useful format, but it's fiddly sometimes!

How do I capitalize a token in my template?

There are a few special functions you can use to modify tokens in your template. You can use them by placing a . (period) and then the name of the modifier you want to use after the token name, but before the ending #. For instance, if you wanted to capitalize the #animal# token, you would put #animal.capitalize# in your template.

The modifiers available are:

  • lowercase: Make all of the letters in the text lowercase.
  • uppercase: Make all of the letters in the text uppercase.
  • capitalize: Capitalize the first letter of the text.
  • capitalizeAll: Capitalize the first letter of every word in the text.
  • formatNumber: If the text is a number with a lot of digits (e.g., 2147483647), format it more nicely (2,147,483,647).
  • a: Put "a" or "an" in front of the text, depending on whether it starts with a vowel or not.
  • s: Put "s", "es", or "ies" at the end of the text, depending on what it ends with.
  • firstS: Like the s modifier, but operates on the first word of the text.
  • ed: Put "d", "ed", or "ied" at the end of the text.
  • replace(X,Y): Replace X with Y. (You can replace X and Y here with whatever text you want.)
How do I share a snowclone I made with a friend?

If you want to share just the generated text, you can copy or screenshot it. If you want to send the snowclone itself, copy and send them the share link! This link changes every time you change your template or grammar — that is, it's not pointing to a file that's saved anywhere, but it does contain all the information necessary for reconstructing your snowclone.

This seems pretty basic! How do I do #fancy-thing#?

The bad news is that Snowcloner is intentionally designed to be pretty basic! The great news is that it's built on a powerful library called Tracery, which even has an online editor that offers some neat visualizations of your grammar. If you're interested in donig even more with generative text, definitely check it out!

About Snowcloner

Where do the corpora come from?

They are from Corpora, a public domain repository of lists of words and other structured language data. It was created with the goals of rapid project prototyping and as a teaching tool, both of which inspired and, I hope, are furthered by Snowcloner. It's a wonderful resource created and maintained by volunteers; if there is data that you'd like to play with in Snowcloner that's not yet in the repository, consider contributing it to Corpora!

How was Snowcloner made?

The two most important components of Snowcloner (after you, the author of the snowclone 😊) are Corpora and Tracery, which we rely on for the data and the text generation framework, respectively. Snowcloner exists because I wanted to bring these two resources together in a novel and accessible way.

The website itself is built with SvelteKit and deployed on Vercel, and you can check out the source code on GitHub.

Who made Snowcloner?

My name is Li! You can check out other things I've made on my personal website, and tell me how much you like this / ask me questions / bug me about bugs on Twitter, where I'm @thricedotted.