How to make the WordPress Editor not accept HTML?

Remove post type support for the editor:

add_action(
  'init',
  function() {
    remove_post_type_support( 'post', 'editor');
  }
);

Now add a new meta box containing only a textarea

// print a new meta box
function generic_cb($post) {
  $content = (!empty($post->post_content)) ? $post->post_content : '';
  echo '<textarea name="content">'.$content.'</textarea>';
}

function add_before_editor($post) {
  global $post;
  add_meta_box(
    'generic_box', // id, used as the html id att
    __( 'Text Only Content' ), // meta box title
    'generic_cb', // callback function, spits out the content
    'post', // post type or page. This adds to posts only
    'pre_editor', // context, where on the screen
    'high' // priority, where should this go in the context
  );
  do_meta_boxes('post', 'pre_editor', $post);
}
add_action('edit_form_after_title','add_before_editor');

And save

// strip your data on save
function strip_post_content_markup($data) {
  if (!empty($data['post_content'])) {
    $data['post_content'] = strip_tags($data['post_content']);
  }
  return $data;
}
add_filter('wp_insert_post_data','strip_post_content_markup',1);

That is the cleanest solution I can come up with.

tech