diff --git a/core/installer/welcome/create-admin-account.html b/core/installer/welcome/create-admin-account.html
index 0beb6a9..5f6efd2 100644
--- a/core/installer/welcome/create-admin-account.html
+++ b/core/installer/welcome/create-admin-account.html
@@ -6,44 +6,38 @@
 		<meta name="viewport" content="width=device-width, initial-scale=1" />
 	</head>
 	<body>
-		<div style="display: contents">
-            <main class="container">
-              <article class="grid">
-                <div>
-                  <form action="/create-admin-account" method="POST">
-                    <input
-                      type="text"
-                      name="username"
-                      placeholder="Username"
-                      aria-label="Username"
-                      required
-                    />
-                    <input
-                      type="password"
-                      name="password"
-                      placeholder="Password"
-                      aria-label="Password"
-                      required
-                      />
-                    <input
-                      type="text"
-                      name="gandi-api-token"
-                      placeholder="Gandi API Token"
-                      aria-label="Gandi API Token"
-                      required
-                      />
-                    <input
-                      type="text"
-                      name="secret-token"
-                      placeholder="Secret Token"
-                      aria-label="Secret Token"
-                      required
-                    />
-                    <button type="submit" class="contrast">Create Admin Account</button>
-                  </form>
-                </div>
-              </article>
-            </main>
-        </div>
+		<main class="container">
+			<form action="" method="POST">
+			  <input
+				type="text"
+				name="username"
+				placeholder="Username"
+				aria-label="Username"
+				required
+			  />
+			  <input
+				type="password"
+				name="password"
+				placeholder="Password"
+				aria-label="Password"
+				required
+				/>
+			  <input
+				type="text"
+				name="gandi-api-token"
+				placeholder="Gandi API Token"
+				aria-label="Gandi API Token"
+				required
+				/>
+			  <input
+				type="text"
+				name="secret-token"
+				placeholder="Secret Token"
+				aria-label="Secret Token"
+				required
+			  />
+			  <button type="submit" class="contrast">Create Account</button>
+			</form>
+		</main>
 	</body>
 </html>
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 06ac89f..3d0ed70 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -69,8 +69,8 @@
 func (s *EnvServer) Start() {
 	r := mux.NewRouter()
 	r.PathPrefix("/static/").Handler(http.FileServer(http.FS(staticAssets)))
-	r.Path("/env").Methods("GET").HandlerFunc(s.createEnvForm)
-	r.Path("/env").Methods("POST").HandlerFunc(s.createEnv)
+	r.Path("/").Methods("GET").HandlerFunc(s.createEnvForm)
+	r.Path("/").Methods("POST").HandlerFunc(s.createEnv)
 	r.Path("/create-invitation").Methods("GET").HandlerFunc(s.createInvitation)
 	http.Handle("/", r)
 	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", s.port), nil))
diff --git a/core/installer/welcome/welcome.go b/core/installer/welcome/welcome.go
index ac13f06..2517a6f 100644
--- a/core/installer/welcome/welcome.go
+++ b/core/installer/welcome/welcome.go
@@ -8,13 +8,13 @@
 	"net/http"
 	"net/url"
 
-	"github.com/labstack/echo/v4"
+	"github.com/gorilla/mux"
 
 	"github.com/giolekva/pcloud/core/installer"
 )
 
 //go:embed create-admin-account.html
-var indexHtml string
+var indexHtml []byte
 
 //go:embed static/*
 var staticAssets embed.FS
@@ -34,18 +34,22 @@
 }
 
 func (s *Server) Start() {
-	e := echo.New()
-	e.StaticFS("/static", echo.MustSubFS(staticAssets, "static"))
-	e.POST("/create-admin-account", s.createAdminAccount)
-	e.GET("/", s.createAdminAccountForm)
-	log.Fatal(e.Start(fmt.Sprintf(":%d", s.port)))
+	r := mux.NewRouter()
+	r.PathPrefix("/static/").Handler(http.FileServer(http.FS(staticAssets)))
+	r.Path("/").Methods("POST").HandlerFunc(s.createAdminAccount)
+	r.Path("/").Methods("GET").HandlerFunc(s.createAdminAccountForm)
+	http.Handle("/", r)
+	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", s.port), nil))
 }
 
-func (s *Server) createAdminAccountForm(c echo.Context) error {
-	return c.HTML(http.StatusOK, indexHtml)
+func (s *Server) createAdminAccountForm(w http.ResponseWriter, _ *http.Request) {
+	if _, err := w.Write(indexHtml); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
 }
 
-type createAdminAccountReq struct {
+type createAccountReq struct {
 	Username      string `json:"username,omitempty"`
 	Password      string `json:"password,omitempty"` // TODO(giolekva): actually use this
 	GandiAPIToken string `json:"gandiAPIToken,omitempty"`
@@ -60,72 +64,86 @@
 	return items[0], nil
 }
 
-func (s *Server) createAdminAccount(c echo.Context) error {
-	var req createAdminAccountReq
+func extractReq(r *http.Request) (createAccountReq, error) {
+	var req createAccountReq
 	if err := func() error {
 		var err error
-		f, err := c.FormParams()
-		if err != nil {
+		if err = r.ParseForm(); err != nil {
 			return err
 		}
-		if req.Username, err = getFormValue(f, "username"); err != nil {
+		if req.Username, err = getFormValue(r.PostForm, "username"); err != nil {
 			return err
 		}
-		if req.Password, err = getFormValue(f, "password"); err != nil {
+		if req.Password, err = getFormValue(r.PostForm, "password"); err != nil {
 			return err
 		}
-		if req.GandiAPIToken, err = getFormValue(f, "gandi-api-token"); err != nil {
+		if req.GandiAPIToken, err = getFormValue(r.PostForm, "gandi-api-token"); err != nil {
 			return err
 		}
-		if req.SecretToken, err = getFormValue(f, "secret-token"); err != nil {
+		if req.SecretToken, err = getFormValue(r.PostForm, "secret-token"); err != nil {
 			return err
 		}
 		return nil
 	}(); err != nil {
-		if err := json.NewDecoder(c.Request().Body).Decode(&req); err != nil {
-			return err
+		if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
+			return createAccountReq{}, err
 		}
 	}
+	return req, nil
+}
+
+func (s *Server) createAdminAccount(w http.ResponseWriter, r *http.Request) {
+	var req createAccountReq
 	// TODO(giolekva): accounts-ui create user req
 	{
 		config, err := s.repo.ReadConfig()
 		if err != nil {
-			return err
+			http.Error(w, err.Error(), http.StatusInternalServerError)
+			return
 		}
 		if err != nil {
-			return err
+			http.Error(w, err.Error(), http.StatusInternalServerError)
+			return
 		}
 		nsGen := installer.NewPrefixGenerator(config.Values.NamespacePrefix)
 		suffixGen := installer.NewEmptySuffixGenerator()
 		appManager, err := installer.NewAppManager(s.repo, s.nsCreator)
 		if err != nil {
-			return err
+			http.Error(w, err.Error(), http.StatusInternalServerError)
+			return
 		}
 		appsRepo := installer.NewInMemoryAppRepository(installer.CreateAllApps())
 		{
 			app, err := appsRepo.Find("certificate-issuer-private")
 			if err != nil {
-				return err
+				http.Error(w, err.Error(), http.StatusInternalServerError)
+				return
 			}
 			if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
 				"GandiAPIToken": req.GandiAPIToken,
 			}); err != nil {
-				return err
+				http.Error(w, err.Error(), http.StatusInternalServerError)
+				return
 			}
 		}
 		{
 			app, err := appsRepo.Find("tailscale-proxy")
 			if err != nil {
-				return err
+				http.Error(w, err.Error(), http.StatusInternalServerError)
+				return
 			}
 			if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
 				"Username": req.Username,
 				"IPSubnet": "10.1.0.0/24", // TODO(giolekva): this should be taken from the config generated during new env creation
 			}); err != nil {
-				return err
+				http.Error(w, err.Error(), http.StatusInternalServerError)
+				return
 			}
 			// TODO(giolekva): headscale accept routes
 		}
 	}
-	return c.String(http.StatusOK, "OK")
+	if _, err := w.Write([]byte("OK")); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
 }
