diff --git a/src/Miscellaneous/BoardTips.coffee b/src/Miscellaneous/BoardTips.coffee
new file mode 100644
index 000000000..b68d7550d
--- /dev/null
+++ b/src/Miscellaneous/BoardTips.coffee
@@ -0,0 +1,20 @@
+BoardTips =
+ tips:
+ qa: [
+ 1
+ <%= html(
+ 'New to /qa/?
' +
+ '/qa/ is NOT an effective way to contact the mods.
' +
+ 'Use IRC or feedback instead. ' +
+ 'More details here.'
+ ) %>
+ ]
+
+ init: ->
+ tip = BoardTips.tips[g.BOARD.ID]
+ seen = Conf['BoardTips.seen']
+ return if !tip or (seen[g.BOARD.ID] and seen[g.BOARD.ID] >= tip[0])
+ seen[g.BOARD.ID] = tip[0]
+ $.set 'BoardTips.seen', seen
+ el = $.el 'span', tip[1]
+ new Notice 'info', el
diff --git a/src/main/Main.coffee b/src/main/Main.coffee
index c0a06de0e..ca6a1eb04 100644
--- a/src/main/Main.coffee
+++ b/src/main/Main.coffee
@@ -51,6 +51,7 @@ Main =
Conf['selectedArchives'] = {}
Conf['cooldowns'] = {}
Conf['Index Sort'] = {}
+ Conf['BoardTips.seen'] = {}
Conf["Last Long Reply Thresholds #{i}"] = {} for i in [0...2]
# XXX old key names
@@ -508,6 +509,7 @@ Main =
['Banner', Banner]
['Flash Features', Flash]
['Reply Pruning', ReplyPruning]
+ ['Board Tips', BoardTips]
<% if (readJSON('/.tests_enabled')) { %>
['Build Test', Build.Test]
<% } %>