diff --git a/packages/rocketchat-message-mark-as-unread/client/actionButton.coffee b/packages/rocketchat-message-mark-as-unread/client/actionButton.coffee
deleted file mode 100644
index 3dec96d2ccd84edc29c8ea69312d79b52c087c0f..0000000000000000000000000000000000000000
--- a/packages/rocketchat-message-mark-as-unread/client/actionButton.coffee
+++ /dev/null
@@ -1,23 +0,0 @@
-Meteor.startup ->
-	RocketChat.MessageAction.addButton
-		id: 'mark-message-as-unread'
-		icon: 'icon-flag'
-		i18nLabel: 'Mark_as_unread'
-		context: [
-			'message'
-			'message-mobile'
-		]
-		action: (event, instance) ->
-			message = @_arguments[1]
-			RocketChat.MessageAction.hideDropDown()
-			Meteor.call 'unreadMessages', message, (error, result) ->
-				if error
-					return handleError(error)
-				subscription = ChatSubscription.findOne rid: message.rid
-				if not subscription?
-					return
-				RoomManager.close subscription.t + subscription.name
-				FlowRouter.go('home')
-		validation: (message) ->
-			return message.u._id isnt Meteor.user()._id
-		order: 22
diff --git a/packages/rocketchat-message-mark-as-unread/client/actionButton.js b/packages/rocketchat-message-mark-as-unread/client/actionButton.js
new file mode 100644
index 0000000000000000000000000000000000000000..0cdb0b54cb2f3d3b3ac0eefe9395b86b9aeb23da
--- /dev/null
+++ b/packages/rocketchat-message-mark-as-unread/client/actionButton.js
@@ -0,0 +1,29 @@
+Meteor.startup(() => {
+	return RocketChat.MessageAction.addButton({
+		id: 'mark-message-as-unread',
+		icon: 'icon-flag',
+		i18nLabel: 'Mark_as_unread',
+		context: ['message', 'message-mobile'],
+		action() {
+			const message = this._arguments[1];
+			RocketChat.MessageAction.hideDropDown();
+			return Meteor.call('unreadMessages', message, function(error) {
+				if (error) {
+					return handleError(error);
+				}
+				const subscription = ChatSubscription.findOne({
+					rid: message.rid
+				});
+				if (subscription == null) {
+					return;
+				}
+				RoomManager.close(subscription.t + subscription.name);
+				return FlowRouter.go('home');
+			});
+		},
+		validation(message) {
+			return message.u._id !== Meteor.user()._id;
+		},
+		order: 22
+	});
+});
diff --git a/packages/rocketchat-message-mark-as-unread/package.js b/packages/rocketchat-message-mark-as-unread/package.js
index 36da7db18ffe2bc90eea48de98927449ebf3854b..fd2d458d114a757f411c62bf5dae2c4592db8a15 100644
--- a/packages/rocketchat-message-mark-as-unread/package.js
+++ b/packages/rocketchat-message-mark-as-unread/package.js
@@ -6,10 +6,7 @@ Package.describe({
 
 Package.onUse(function(api) {
 	api.use([
-		'coffeescript',
 		'ecmascript',
-		'underscore',
-		'less',
 		'rocketchat:lib',
 		'rocketchat:logger',
 		'rocketchat:ui'
@@ -18,11 +15,11 @@ Package.onUse(function(api) {
 	api.use('templating', 'client');
 
 	api.addFiles([
-		'client/actionButton.coffee'
+		'client/actionButton.js'
 	], 'client');
 
 	api.addFiles([
 		'server/logger.js',
-		'server/unreadMessages.coffee'
+		'server/unreadMessages.js'
 	], 'server');
 });
diff --git a/packages/rocketchat-message-mark-as-unread/server/logger.js b/packages/rocketchat-message-mark-as-unread/server/logger.js
index a1a5b63fe348123722a8215dfce73cab90fc71bc..2e92f980640de13cd0cd7630f190c98ae3345a02 100644
--- a/packages/rocketchat-message-mark-as-unread/server/logger.js
+++ b/packages/rocketchat-message-mark-as-unread/server/logger.js
@@ -1,9 +1,7 @@
-/* globals logger:true */
-/* exported logger */
-
-logger = new Logger('MessageMarkAsUnread', {
+const logger = new Logger('MessageMarkAsUnread', {
 	sections: {
 		connection: 'Connection',
 		events: 'Events'
 	}
 });
+export default logger;
diff --git a/packages/rocketchat-message-mark-as-unread/server/unreadMessages.coffee b/packages/rocketchat-message-mark-as-unread/server/unreadMessages.coffee
deleted file mode 100644
index 9c1cf55d66fe652061eba0ecd77a21c060b130f3..0000000000000000000000000000000000000000
--- a/packages/rocketchat-message-mark-as-unread/server/unreadMessages.coffee
+++ /dev/null
@@ -1,19 +0,0 @@
-Meteor.methods
-	unreadMessages: (firstUnreadMessage) ->
-		if not Meteor.userId()
-			throw new Meteor.Error 'error-invalid-user', 'Invalid user', { method: 'unreadMessages' }
-
-		originalMessage = RocketChat.models.Messages.findOneById firstUnreadMessage._id, {fields: {u: 1, rid: 1, file: 1, ts: 1}}
-		if not originalMessage?
-			throw new Meteor.Error 'error-action-not-allowed', 'Not allowed', { method: 'unreadMessages', action: 'Unread_messages' }
-
-		if Meteor.userId() is originalMessage.u._id
-			throw new Meteor.Error 'error-action-not-allowed', 'Not allowed', { method: 'unreadMessages', action: 'Unread_messages' }
-
-		lastSeen = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(originalMessage.rid, Meteor.userId()).ls
-		if firstUnreadMessage.ts >= lastSeen
-			logger.connection.debug('Provided message is already marked as unread')
-			return
-
-		logger.connection.debug('Updating unread  message of ' + originalMessage.ts + ' as the first unread')
-		RocketChat.models.Subscriptions.setAsUnreadByRoomIdAndUserId(originalMessage.rid, Meteor.userId(), originalMessage.ts)
diff --git a/packages/rocketchat-message-mark-as-unread/server/unreadMessages.js b/packages/rocketchat-message-mark-as-unread/server/unreadMessages.js
new file mode 100644
index 0000000000000000000000000000000000000000..befaab73f6dae7aed462e2d5d2cfb7f053d11536
--- /dev/null
+++ b/packages/rocketchat-message-mark-as-unread/server/unreadMessages.js
@@ -0,0 +1,30 @@
+import logger from './logger';
+Meteor.methods({
+	unreadMessages(firstUnreadMessage) {
+		if (!Meteor.userId()) {
+			throw new Meteor.Error('error-invalid-user', 'Invalid user', {
+				method: 'unreadMessages'
+			});
+		}
+		const originalMessage = RocketChat.models.Messages.findOneById(firstUnreadMessage._id, {
+			fields: {
+				u: 1,
+				rid: 1,
+				file: 1,
+				ts: 1
+			}
+		});
+		if (originalMessage == null || Meteor.userId() === originalMessage.u._id) {
+			throw new Meteor.Error('error-action-not-allowed', 'Not allowed', {
+				method: 'unreadMessages',
+				action: 'Unread_messages'
+			});
+		}
+		const lastSeen = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(originalMessage.rid, Meteor.userId()).ls;
+		if (firstUnreadMessage.ts >= lastSeen) {
+			return logger.connection.debug('Provided message is already marked as unread');
+		}
+		logger.connection.debug('Updating unread  message of ' + originalMessage.ts + ' as the first unread');
+		return RocketChat.models.Subscriptions.setAsUnreadByRoomIdAndUserId(originalMessage.rid, Meteor.userId(), originalMessage.ts);
+	}
+});