rough prototype of browserify single build
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 657f260..5cd6cab 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -25,9 +25,8 @@
     'clean',
     [
       'styles:build',
-      'js'
-    ],
-    'symlink'
+      'js:build'
+    ]
   );
 });
 
@@ -56,7 +55,9 @@
   });
 });
 
-gulp.task('docker', () => {
-  gulp.start('serve:backend');
-  gulp.start('dev');
-});
\ No newline at end of file
+// gulp.task('docker', () => {
+//   gulp.start('serve:backend');
+//   gulp.start('build');
+// });
+
+gulp.task('docker', ['serve:backend', 'build']);
diff --git a/tasks/build.js b/tasks/build.js
index cef2a15..5d15922 100644
--- a/tasks/build.js
+++ b/tasks/build.js
@@ -19,8 +19,10 @@
 var opts = assign({}, watchify.args, customOpts);
 // var b = watchify(browserify(opts), { poll : 500 });
 var b = watchify(browserify(opts));
+var build = browserify(opts);
 
 b.transform(babelify, { presets : [ 'es2015', 'react' ] });
+build.transform(babelify, { presets: ['es2015', 'react'] });
 
 function bundle () {
   return b.bundle()
@@ -35,7 +37,17 @@
     .pipe(gulp.dest('static'));
 }
 
+function buildBundle() {
+  return build.bundle()
+    .on('error', plugins.util.log.bind(plugins.util, 'Browserify Error'))
+    .pipe(source('app.js'))
+    .pipe(gulp.dest('build/js'))
+    .pipe(gulp.dest('static'));
+}
+
 
 gulp.task('js', bundle);
 b.on('update', bundle);
 b.on('log', plugins.util.log);
+
+gulp.task('js:build', buildBundle);