diff --git a/cms/envs/common.py b/cms/envs/common.py
index be398f6cb20cec47ef755768b23e52bf7e84c680..8a7422255a81cd90f48ddfec736746b730cfa00b 100644
--- a/cms/envs/common.py
+++ b/cms/envs/common.py
@@ -146,10 +146,10 @@ MANAGERS = ADMINS
 # Static content
 STATIC_URL = '/static/'
 ADMIN_MEDIA_PREFIX = '/static/admin/'
-STATIC_ROOT = ENV_ROOT / "staticfiles" 
+STATIC_ROOT = ENV_ROOT / "staticfiles"
 
 STATICFILES_DIRS = [
-    ('js/vendor', COMMON_ROOT / "static" / "js" / "vendor"),
+    COMMON_ROOT / "static",
     PROJECT_ROOT / "static",
 
 # This is how you would use the textbook images locally
@@ -219,7 +219,15 @@ for idx, filetype, fragment in sorted(fragments):
 
 PIPELINE_JS = {
     'main': {
-        'source_filenames': [pth.replace(PROJECT_ROOT / 'static/', '') for pth in glob2.glob(PROJECT_ROOT / 'static/coffee/src/**/*.coffee')],
+        'source_filenames': [
+            pth.replace(COMMON_ROOT / 'static/', '')
+            for pth
+            in glob2.glob(COMMON_ROOT / 'static/coffee/src/**/*.coffee')
+        ] + [
+            pth.replace(PROJECT_ROOT / 'static/', '')
+            for pth
+            in glob2.glob(PROJECT_ROOT / 'static/coffee/src/**/*.coffee')
+        ],
         'output_filename': 'js/application.js',
     },
     'module-js': {
diff --git a/cms/static/coffee/src/main.coffee b/cms/static/coffee/src/main.coffee
index 30d459ecc3d84b46df855806a395dbc0e07490bf..57b6d1ae93c2e240f286db8cca0b6d48bdae64f1 100644
--- a/cms/static/coffee/src/main.coffee
+++ b/cms/static/coffee/src/main.coffee
@@ -1,8 +1,4 @@
-jQuery.postWithPrefix = (url, data, callback, type) ->
-  $.post("#{CMS.prefix}#{url}", data, callback, type)
-
-jQuery.getWithPrefix = (url, data, callback, type) ->
-  $.get("#{CMS.prefix}#{url}", data, callback, type)
+AjaxPrefix.addAjaxPrefix(jQuery, -> CMS.prefix)
 
 @CMS =
   Models: {}
diff --git a/lms/static/coffee/spec/logger_spec.coffee b/common/static/coffee/spec/logger_spec.coffee
similarity index 100%
rename from lms/static/coffee/spec/logger_spec.coffee
rename to common/static/coffee/spec/logger_spec.coffee
diff --git a/common/static/coffee/src/.gitignore b/common/static/coffee/src/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a6c7c2852d068ff1fef480ac369459598a62f82e
--- /dev/null
+++ b/common/static/coffee/src/.gitignore
@@ -0,0 +1 @@
+*.js
diff --git a/common/static/coffee/src/ajax_prefix.coffee b/common/static/coffee/src/ajax_prefix.coffee
new file mode 100644
index 0000000000000000000000000000000000000000..59db5becca1168ac4c315fcc2a93d847c36b537b
--- /dev/null
+++ b/common/static/coffee/src/ajax_prefix.coffee
@@ -0,0 +1,16 @@
+@AjaxPrefix =
+    addAjaxPrefix: (jQuery, prefix) -> 
+        jQuery.postWithPrefix = (url, data, callback, type) ->
+            $.post("#{prefix()}#{url}", data, callback, type)
+
+        jQuery.getWithPrefix = (url, data, callback, type) ->
+            $.get("#{prefix()}#{url}", data, callback, type)
+
+        jQuery.ajaxWithPrefix = (url, settings) ->
+            if settings?
+                $.ajax("#{prefix()}#{url}", settings)
+            else
+                settings = url
+                settings.url = "#{prefix()}#{settings.url}"
+                $.ajax settings
+
diff --git a/lms/static/coffee/src/logger.coffee b/common/static/coffee/src/logger.coffee
similarity index 88%
rename from lms/static/coffee/src/logger.coffee
rename to common/static/coffee/src/logger.coffee
index 414dc4f187b8a7116eb3a8bde7ed902658961019..58395ba8316ad977419fccc3c9d6840d91b18877 100644
--- a/lms/static/coffee/src/logger.coffee
+++ b/common/static/coffee/src/logger.coffee
@@ -7,8 +7,8 @@ class @Logger
 
   @bind: ->
     window.onunload = ->
-      $.ajax
-        url: "#{Courseware.prefix}/event"
+      $.ajaxWithPrefix
+        url: "/event"
         data:
           event_type: 'page_close'
           event: ''
diff --git a/lms/envs/common.py b/lms/envs/common.py
index 24751675b1724edc520d43e6167322587f156ab8..a49a7b814f97350d92a83432413271b279a91204 100644
--- a/lms/envs/common.py
+++ b/lms/envs/common.py
@@ -184,7 +184,7 @@ ADMIN_MEDIA_PREFIX = '/static/admin/'
 STATIC_ROOT = ENV_ROOT / "staticfiles"
 
 STATICFILES_DIRS = [
-    ('js/vendor', COMMON_ROOT / "static" / "js" / "vendor"),
+    COMMON_ROOT / "static",
     PROJECT_ROOT / "static",
     ASKBOT_ROOT / "askbot" / "skins",
 
@@ -365,6 +365,10 @@ PIPELINE_JS = {
     'application': {
         # Application will contain all paths not in courseware_only_js
         'source_filenames': [
+            pth.replace(COMMON_ROOT / 'static/', '')
+            for pth
+            in glob2.glob(COMMON_ROOT / 'static/coffee/src/**/*.coffee')
+        ] + [
             pth.replace(PROJECT_ROOT / 'static/', '')
             for pth in glob2.glob(PROJECT_ROOT / 'static/coffee/src/**/*.coffee')\
             if pth not in courseware_only_js
diff --git a/lms/envs/dev.py b/lms/envs/dev.py
index 487ccfb3e7f93942dedef3cfdb27d4b38aa3c071..1a2659cb1f3a4d0a6a8497d7f6de2a2456d3ea13 100644
--- a/lms/envs/dev.py
+++ b/lms/envs/dev.py
@@ -56,8 +56,8 @@ CACHES = {
 SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd'
 
 ################################ DEBUG TOOLBAR #################################
-#INSTALLED_APPS += ('debug_toolbar',) 
-#MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
+INSTALLED_APPS += ('debug_toolbar',) 
+MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
 INTERNAL_IPS = ('127.0.0.1',)
 
 DEBUG_TOOLBAR_PANELS = (
diff --git a/lms/static/coffee/src/main.coffee b/lms/static/coffee/src/main.coffee
index 06a12e5b6ff7263e067f6e0ce1f98993b7f74497..d74035cd2a8624bce665123e2d4c0f0d5506473b 100644
--- a/lms/static/coffee/src/main.coffee
+++ b/lms/static/coffee/src/main.coffee
@@ -1,8 +1,4 @@
-jQuery.postWithPrefix = (url, data, callback, type) ->
-  $.post("#{Courseware.prefix}#{url}", data, callback, type)
-
-jQuery.getWithPrefix = (url, data, callback, type) ->
-  $.get("#{Courseware.prefix}#{url}", data, callback, type)
+AjaxPrefix.addAjaxPrefix(jQuery, -> Courseware.prefix)
 
 $ ->
   $.ajaxSetup