Democracy in Crisis: How Pepe-posting meme warriors responded to real violence from the alt-right

Illustration by Blair Gauntt

In Charlottesville, when it seemed like the Nazis had been driven from town, shortly before the terrorist attack that killed Heather Heyer, a group of anti-racist protesters gathered in a small park and set fire to several Confederate flags and a big green, white and black Kekistani flag.

I stood in the dirt beneath a tree and watched the two flags wither and curl on the dark ground. One was born of the slaveholder insurrection against the U.S. and the other from what some in the message-board subculture call the “great meme war of 2016,” and both, somehow, represent the Trump coalition.

The fictional nation of Kekistan grew out of the Pepe the Frog meme. Pepe became popular after a “Boys Club” comic strip by his creator Matt Furie depicted him peeing with his pants all the way down because it “feels good man.”

The videogamers, “men’s rights” activists, hackers, trolls and shitposters who populate sites like 4chan started embracing the Pepe the Frog meme to symbolize, as Dale Beran wrote in a post that went viral last February, “embracing your loserdom, owning it.”

Soon, Pepe, who had come to embody the troll ethos, also found an analogue in politics. “Trump, the loser, the outsider, the hot mess, the pathetic joke, embodies this duality. Trump represents both the alpha and the beta,” Beran wrote.

In May, Furie drew another strip, showing Pepe lying dead in a casket. But his creation had by then already escaped him.

At the same time as the far-right elements on message boards began to adopt Pepe, they also began using the letters KEK instead of LOL to indicate online laughter. Then, when they noticed that there was an Egyptian god named Kek, which was depicted as a frog-headed man, these guys — and they are decidedly guys — had a mythology and a god. According to the Southern Poverty Law Center’s entry on the alt-right’s association with the deity, “Kek was portrayed as a bringer of chaos and darkness, which happened to fit perfectly with the alt-right’s self-image as being primarily devoted to destroying the existing world order.”

To go along with their new half-ironic religion, they created a purely digital (and imaginary) country called Kekistan and after the election they made Trump their God-Emperor. And they started getting flags made.

Now, to free his Pepe from the far right and the racists, Furie has sent cease and desist notices to a number of alt-right figures such as Richard Spencer, Mike Cernovich and Baked Alaska.

Baked Alaska, who claims to have been almost blinded by Antifa activists in Charlottesville, tweeted, “Hillary Clinton’s lawyers have been summoned to sue me, @cernovich, & others over a cartoon frog meme. Bad idea to start this battle.” The ability to post whatever they want online is the main political issue for many of the shitposters, and so they have called for a new meme war attacking Furie for challenging their use of his creation.

But the two flags burning beside each other stuck in my mind, so the next time I saw some of Keksters, at the Mother of All Rallies on the National Mall in September, I asked them about the association of their flag with that of the Nazis in Charlottesville.

I talked to one guy who carries a flag and wears a green robe, but he had nothing much to say before skimpering off behind an Eric Trump-looking Proud Boy like a cartoon puppy. There was another, more practical Kekistani looking battle-ready and standing over near a group of militia members. His allegiance to his online community was expressed in a t-shirt with a green fist rising up above the word “Kekistan.” Below, it said something about the “normie occupation,” a phrase used to indicate the oppression of the nerd by normal people.

He was wearing a fur hat with a GoPro camera mounted on its front. A walkie talkie and a megaphone hung from his backpack straps. With his long beard and cossack hat, it half looked like he was cosplaying Alexander Dugin, the bearded Russian theorist sometimes called “Putin’s Rasputin.”

When I asked him why he is out repping Kekistan rather than something else, he rather politely asked: “How OK with swearing are you?”

“Totally fine,” I said.

“I am an ethnic shitposter,” he said. “Which is essentially I’m an asshole for the sake of being an asshole.”

He said his name was Diogenes, because Diogenes the Cynic was the first real troll.

“At Charlottesville I saw people burning a Kekistan flag as well as a Confederate flag, and if a shitposter is just being an asshole to be an asshole, is that cool?” I asked. “Is that part of being an asshole or does that bother you like—”

“Oh, people have the freedom to do whatever they want so long as they’re the ones who bought it and own it themselves,” said Diogenes. “If it’s their property, like—”

“I just mean to have your thing associated with other things,” I said. “Being associated with what happened in Charlottesville. Is that weird or is that—?”

“No,” he said. “People are going to freely associate with whatever they want. I mean it’s unfortunate that they had to bring an insane racism to it, but there are those people and if they’re doing it — some of them do it just to be an asshole and they think that they’re edgy and it will hurt people’s feelings.”

He paused.

“And it does,” he said, almost admiringly, of the ability of racist remarks to cause emotional pain. “It’s when they legitimately mean it that it becomes an issue and it’s when they’re trying to make [racism into] law that it becomes an issue.”

That really stunned me, but it shouldn’t have. For shitposters like Diogenes, it seems that the big problem with the Nazis is that they aren’t ironic enough in their hatred.

This ironic stance that embraces and simultaneously denies embracing racist hate also explains the deep affinity between the trolls and Trump. Like the president, the shitposters think they’re wised up, but have ended up as useful idiots using their digital skills to help normalize Nazis and also further Russian active measures to undermine our democracy.

Baynard Woods is editor at large at the ‘Baltimore City Paper.’ This article was originally published in Little Village issue 229.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/democracy-in-crisis-how-pepe-posting-meme-warriors-responded-to-real-violence-from-the-alt-right/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Phone</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="83"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>