diff --git a/dawn-analytics/dev b/dawn-analytics/dev
index a633a446acd35e05aa596c341f16c41c5f38fba7..a488739190fc2c2ce9f0b66329097f749529f9ae 100644
--- a/dawn-analytics/dev
+++ b/dawn-analytics/dev
@@ -25,7 +25,7 @@ pipeline {
 
         stage('deploy') {
             steps {
-                upgradeKubernetes('dawn-analytics', 'staging')
+                upgradeKubernetes('dawn-analytics', 'dev')
             }
         }
     }
diff --git a/dawn-gateway/dev b/dawn-gateway/dev
index 2273a3355dd527af71cdedbecda86c5a1372d599..46d50c1a0a7ed4b0a347de5095a8855efc63baf4 100644
--- a/dawn-gateway/dev
+++ b/dawn-gateway/dev
@@ -1 +1,45 @@
-backendDevServicePipeline "dawn-gateway"
\ No newline at end of file
+pipeline {
+    agent { label 'node2' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'staging',
+                credentialsId: 'tgsiegel-gitlab-ssh',
+                url: 'git@gitlab.cs.umd.edu:dawn/go-backend/dawn-gateway.git'
+
+                sh '''
+                sudo docker build -t docker.registry.dawn.int:5000/dawn/dawn-gateway:latest . -f Dockerfile
+                sudo docker push docker.registry.dawn.int:5000/dawn/dawn-gateway:latest
+            '''
+            }
+        }
+
+        stage('deploy') {
+            steps {
+                upgradeKubernetes('dawn-gateway', 'dev')
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
+}
diff --git a/dawn-gdd/dev b/dawn-gdd/dev
index b723226a1e64e3108c722bd402f94629d54f9fe8..d62a4e67fa991c88edae921e7ef19b3792b50c7a 100644
--- a/dawn-gdd/dev
+++ b/dawn-gdd/dev
@@ -1 +1,45 @@
-backendDevServicePipeline "dawn-gdd"
\ No newline at end of file
+pipeline {
+    agent { label 'node2' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'staging',
+                credentialsId: 'tgsiegel-gitlab-ssh',
+                url: 'git@gitlab.cs.umd.edu:dawn/go-backend/dawn-gdd.git'
+
+                sh '''
+                sudo docker build -t docker.registry.dawn.int:5000/dawn/dawn-gdd:latest . -f Dockerfile
+                sudo docker push docker.registry.dawn.int:5000/dawn/dawn-gdd:latest
+            '''
+            }
+        }
+
+        stage('deploy') {
+            steps {
+                upgradeKubernetes('dawn-gdd', 'dev')
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
+}
diff --git a/dawn-gdd/staging b/dawn-gdd/staging
index 0633a68e776eb92b633c7a6dc72af5a818b4ff64..d7d6173c185bfecf0d32f07ded2a707c30d46c3b 100644
--- a/dawn-gdd/staging
+++ b/dawn-gdd/staging
@@ -1 +1,45 @@
-backendStagingServicePipeline "https://gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd.git", "staging", "dawn-gdd"
\ No newline at end of file
+pipeline {
+    agent { label 'node2' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'staging',
+                credentialsId: 'tgsiegel-gitlab-ssh',
+                url: 'git@gitlab.cs.umd.edu:dawn/go-backend/dawn-gdd.git'
+
+                sh '''
+                sudo docker build -t docker.registry.dawn.int:5000/dawn/dawn-gdd:latest . -f Dockerfile
+                sudo docker push docker.registry.dawn.int:5000/dawn/dawn-gdd:latest
+            '''
+            }
+        }
+
+        stage('deploy') {
+            steps {
+                upgradeKubernetes('dawn-gdd', 'staging')
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
+}
diff --git a/dawn-user/dev b/dawn-user/dev
index 9814b8ecd2346e5f25c60af4c4a24543d150200d..6d3ccadd9ab01370ec9dde07fb581184beb6f1e4 100644
--- a/dawn-user/dev
+++ b/dawn-user/dev
@@ -1 +1,45 @@
-backendDevServicePipeline "dawn-user"
\ No newline at end of file
+pipeline {
+    agent { label 'node2' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'staging',
+                credentialsId: 'tgsiegel-gitlab-ssh',
+                url: 'git@gitlab.cs.umd.edu:dawn/go-backend/dawn-user.git'
+
+                sh '''
+                sudo docker build -t docker.registry.dawn.int:5000/dawn/dawn-user:latest . -f Dockerfile
+                sudo docker push docker.registry.dawn.int:5000/dawn/dawn-user:latest
+            '''
+            }
+        }
+
+        stage('deploy') {
+            steps {
+                upgradeKubernetes('dawn-user', 'dev')
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
+}