DEV Community

Cover image for Project Tours: meme-type | a translator for internet speak
Adam Davis
Adam Davis

Posted on • Updated on • Originally published at


Project Tours: meme-type | a translator for internet speak

Do you like to be sarcastic on the internet? Are you tired of having hold or release the shift key with every letter while you're mocking someone? Are you obsessed with making your writing as unintelligible as possible? Well, I've got an app for you!


meme-type screenshot


meme-type is an angularjs web app that transforms text into various type of internet speak. The live app is running here. View the project on Github here.

I was inspired to make this project while reading Because Internet by Gretchen McCulloch. In her book, McCulloch breaks down many online linguistic contructs, often taking an almost algorithmic approach. When I read her detailed analysis of keysmashing in the first few pages of the book, I knew I had to make this app.

Notable conversions


In the aforementioned Because Internet, McCulloch lays out a set of observed patterns of keysmashing. I've listed a few of these patterns below:

  • Almost always begins with "a"
  • Often begins with "asdf"
  • Other common subsequent characters are g, h, j, k, l, and ;, but less often in that order, and often alternating or repeating within this second group
  • Frequently occurring characters are the "home row" of the keys that the fingers are on in rest position, suggesting that key-smashers are also touch typists

My keysmash algorithm is inspired by these patterns, and thus uses to following rules to convert an input string to keysmashing:

  • The first four characters have a high probability of being a, s, d, and f, respectively
  • Only keys on the home row are used
  • The keys alternate between the right and left hand
  • Whitespace is preserved

Student athlete mode

Student athlete mode follows a post style about fitness, grinding, being better than everyone else, and using way too many emojis. See examples of this format on Know Your Meme.

In its current implementation, there are three ways in which an emoji will be added to a string:

  1. If the text is an exact match of the name of an emoji, it will include that emoji.
  2. If the text is an exact match of a keyword of an emoji, then it will randomly select from among the emoji that contain that keyword.
  3. If the text does not match an emoji, then there is a probabilistic chance of it selecting randomly from a set of emoji that are commonly used in this format. When this occurs, the emoji will have a chance to be repeated up to a total length of three.


meme-type is hosted using a combination of AWS S3, Cloudfront, and and Route53. For more info on how I use AWS to run my websites, see this post about the technical details of my blog.

npm package

The logic for meme-type's conversions is stored in an npm package I made called meme-type-npm. See it on Github here.


If you have comments or questions, feel free to write them below or reach out to me via one of the channels on my about page.


If you enjoyed this post or want to find out more about my upcoming projects, consider subscribing to my newsletter or checking out my blog. My email updates are only sent out once a month.

Top comments (0)

An Animated Guide to Node.js Event Loop

>> Check out this classic DEV post <<