diff --git a/app/assets/javascripts/onboard.js b/app/assets/javascripts/onboard.js
deleted file mode 100644
index dee720fa..00000000
--- a/app/assets/javascripts/onboard.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Place all the behaviors and hooks related to the matching controller here.
-// All this logic will automatically be available in application.js.
diff --git a/app/assets/stylesheets/front/page.css.scss b/app/assets/stylesheets/front/page.css.scss
deleted file mode 100755
index 62cca345..00000000
--- a/app/assets/stylesheets/front/page.css.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/* License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later */
-@import 'mixins';
-
-
-body { padding: 0; }
-
-@media screen and (max-width: 700px) {
-  .overview { padding: 10px; }
-  .overview-col { 
-    width: 100%;  
-    display: block;
-    padding: 0;
-    margin-bottom: 10px;
-  }
-  .overview-col:last-of-type { margin: 0; }
-}
-
diff --git a/app/controllers/front_controller.rb b/app/controllers/front_controller.rb
index 631e559c..e43cf7b7 100755
--- a/app/controllers/front_controller.rb
+++ b/app/controllers/front_controller.rb
@@ -1,17 +1,14 @@
 # License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
 class FrontController < ApplicationController
-
-
-
   def index
-		flash.keep
-		if current_role?([:nonprofit_admin,:nonprofit_associate])
+		if !Nonprofit.any?
+			redirect_to onboard_path
+		elsif current_role?([:nonprofit_admin,:nonprofit_associate])
 			redirect_to NonprofitPath.dashboard(administered_nonprofit)
 		elsif current_user
 			redirect_to '/profiles/' + current_user.profile.id.to_s
 		else
-			respond_to { |format| format.html }
+			redirect_to new_user_session_path
 		end
 	end
-
 end
diff --git a/app/views/front/index.html.erb b/app/views/front/index.html.erb
deleted file mode 100755
index 51bbd547..00000000
--- a/app/views/front/index.html.erb
+++ /dev/null
@@ -1,22 +0,0 @@
-<%- # License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later -%>
-
-
-
-<% content_for :head do %>
-	<meta name="viewport" content="width=device-width, user-scalable=no">
-<% end %>
-
-<% content_for :stylesheets do %>
-	<%= stylesheet_link_tag 'front/page' %>
-<% end %>
-
-<% content_for :javascripts do %>
-  <%= IncludeAsset.js('/client/js/front/page.js') %>
-<% end %>
-
-
-<main>
-  <%= render 'layouts/top_nav' %>
-
-</main>
-
diff --git a/client/js/front/page.js b/client/js/front/page.js
deleted file mode 100644
index 505c51bf..00000000
--- a/client/js/front/page.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// License: LGPL-3.0-or-later
-require('../common/onboard')
\ No newline at end of file
diff --git a/spec/controllers/front_spec.rb b/spec/controllers/front_spec.rb
new file mode 100644
index 00000000..b64291c6
--- /dev/null
+++ b/spec/controllers/front_spec.rb
@@ -0,0 +1,42 @@
+# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
+require 'rails_helper'
+require 'controllers/support/shared_user_context'
+
+describe FrontController, :type => :controller do
+  describe 'authorization' do
+    include_context :shared_user_context
+    describe 'accept all' do
+      describe 'index' do
+          include_context :open_to_all, :get, :index
+      end
+    end
+  end
+
+  it 'index redirects to onboard with no non-profits' do
+    get( :index)
+    expect(response).to redirect_to onboard_url
+  end
+
+  describe 'have nonprofit info' do
+    include_context :shared_user_context
+    it 'redirect to nonprofit admin' do
+      sign_in user_as_np_admin
+      get(:index)
+      expect(response).to redirect_to NonprofitPath.dashboard(nonprofit)
+    end
+    it 'redirect to nonprofit admin' do
+      sign_in user_as_np_associate
+      get(:index)
+      expect(response).to redirect_to NonprofitPath.dashboard(nonprofit)
+    end
+
+    it 'redirect to general user' do
+      nonprofit
+      unauth_user.create_profile
+      sign_in unauth_user
+      get(:index)
+      expect(response).to redirect_to profile_url(unauth_user.profile.id)
+    end
+
+  end
+end
\ No newline at end of file
diff --git a/spec/controllers/support/shared_user_context.rb b/spec/controllers/support/shared_user_context.rb
index 1ce177e3..7517f4a1 100644
--- a/spec/controllers/support/shared_user_context.rb
+++ b/spec/controllers/support/shared_user_context.rb
@@ -105,6 +105,8 @@ RSpec.shared_context :shared_user_context do
     expect(response.status).to eq 302
   end
 
+  alias_method :redirects_to, :reject
+
   def fix_args( *args)
     replacements = {
         __our_np: nonprofit.id,