diff --git wordpress.org/public_html/wp-content/plugins/wporg-bbp-topic-nsfw/inc/class-plugin.php wordpress.org/public_html/wp-content/plugins/wporg-bbp-topic-nsfw/inc/class-plugin.php
new file mode 100644
index 000000000..ba794f3a1
--- /dev/null
+++ wordpress.org/public_html/wp-content/plugins/wporg-bbp-topic-nsfw/inc/class-plugin.php
@@ -0,0 +1,105 @@
+<?php
+
+namespace WordPressdotorg\Forums\Topic_NSFW;
+
+class Plugin {
+
+	/**
+	 * @var Plugin The singleton instance.
+	 */
+	private static $instance;
+
+	const META_KEY = 'topic_nsfw';
+
+	/**
+	 * Always return the same instance of this plugin.
+	 *
+	 * @return Plugin
+	 */
+	public static function get_instance() {
+		if ( ! ( self::$instance instanceof Plugin ) ) {
+			self::$instance = new Plugin();
+		}
+		return self::$instance;
+	}
+
+	/**
+	 * Instantiates a new Plugin object.
+	 */
+	private function __construct() {
+		add_action( 'bbp_loaded', array( $this, 'bbp_loaded' ) );
+	}
+
+	/**
+	 * Initializes the plugin.
+	 */
+	public function bbp_loaded() {
+		// Change the topic title when NSFW flag checked.
+		add_filter( 'bbp_get_topic_title', array( $this, 'get_topic_title' ), 10, 2 );
+
+		// Display the form for new/edit topics.
+		add_action( 'bbp_theme_before_topic_form_subscriptions', array( $this, 'form_topic_nsfw_checkbox' ), 15 );
+
+		// Process field submission for topics.
+		add_action( 'bbp_new_topic_post_extras', array( $this, 'topic_post_extras' ) );
+		add_action( 'bbp_edit_topic_post_extras', array( $this, 'topic_post_extras' ) );
+	}
+
+	/**
+	 * Add "NSFW" status to title.
+	 */
+	public function get_topic_title( $title, $topic_id ) {
+		// Don't run in the admin.
+		if ( is_admin() ) {
+			return $title;
+		}
+
+		// Don't run when viewing a topic edit page or a reply edit page.
+		if ( bbp_is_topic_edit() || bbp_is_reply_edit() ) {
+			return $title;
+		}
+
+		if ( $this->is_nsfw_topic( $topic_id ) ) {
+			$title = sprintf(
+				'<abbr title="%s">%s</abbr> ',
+				esc_attr__( 'Not safe for work', 'wporg-forums' ),
+				esc_html__( '[NSFW]', 'wporg-forums' )
+			) . $title;
+		}
+
+		return $title;
+	}
+
+	/**
+	 * Output topic NSFW checkbox.
+	 */
+	public function form_topic_nsfw_checkbox() {
+		$is_nsfw = $this->is_nsfw_topic();
+		?>
+		<p>
+			<label for="topic-nsfw">
+				<input type="checkbox" name="<?php echo esc_attr( self::META_KEY ); ?>" id="topic-nsfw" value="yes"<?php checked( $is_nsfw, 'yes' ); ?>> 
+					<?php esc_html_e( 'My site or content may be considered Not Safe for Work (NSFW)', 'wporg-forums' ); ?>
+			</label>
+		</p>
+		<?php
+	}
+
+	/**
+	 * Process topic form submission.
+	 */
+	public function topic_post_extras( $topic_id ) {
+		if ( isset( $_POST[ self::META_KEY ] ) ) {
+			update_post_meta( $topic_id, self::META_KEY, 'yes' );
+		} else {
+			delete_post_meta( $topic_id, self::META_KEY );
+		}
+	}
+
+	/**
+	 * Is a NSFW topic?
+	 */
+	public function is_nsfw_topic() {
+		return get_post_meta( get_the_ID(), self::META_KEY, true );
+	}
+}
diff --git wordpress.org/public_html/wp-content/plugins/wporg-bbp-topic-nsfw/wporg-bbp-topic-nsfw.php wordpress.org/public_html/wp-content/plugins/wporg-bbp-topic-nsfw/wporg-bbp-topic-nsfw.php
new file mode 100644
index 000000000..8dbdfe24b
--- /dev/null
+++ wordpress.org/public_html/wp-content/plugins/wporg-bbp-topic-nsfw/wporg-bbp-topic-nsfw.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Plugin Name: bbPress: Topic NSFW
+ * Description: Display a topic NSFW flag on new/edit topic forms.
+ * Version:     1.0
+ * Author:      WordPress.org
+ * Author URI:  http://wordpress.org/
+ * License:     GPLv2 or later
+ */
+
+namespace WordPressdotorg\Forums\Topic_NSFW;
+
+// Store the root plugin file for usage with functions which use the plugin basename.
+define( __NAMESPACE__ . '\PLUGIN_FILE', __FILE__ );
+
+// Includes.
+require dirname( __FILE__ ) . '/inc/class-plugin.php';
+
+// Instantiate the Plugin.
+Plugin::get_instance();
diff --git wordpress.org/public_html/wp-content/themes/pub/wporg-support/sass/_normalize.scss wordpress.org/public_html/wp-content/themes/pub/wporg-support/sass/_normalize.scss
index a3e8be90f..aab717c5e 100644
--- wordpress.org/public_html/wp-content/themes/pub/wporg-support/sass/_normalize.scss
+++ wordpress.org/public_html/wp-content/themes/pub/wporg-support/sass/_normalize.scss
@@ -52,6 +52,7 @@ a:hover {
 
 abbr[title] {
 	border-bottom: 1px dotted;
+	text-decoration: none;
 }
 
 b,
