                 (message "Done! Please restart Emacs for changes to take effect")))))))))
 
 (defun doom//quickstart ()
-  "TODO"
+  "Quickly deploy a private module and Doom.
+
+This deploys a barebones config to `doom-private-dir', installs all missing
+packages and regenerates the autoloads file."
   (declare (interactive-only t))
   (interactive)
   (let ((short-private-dir (abbreviate-file-name doom-private-dir)))
-    (when (file-directory-p doom-private-dir)
-      (error "%s already exists! Aborting." short-private-dir))
-    (message "Creating %s directory" short-private-dir)
-    (make-directory doom-private-dir)
+    (unless (file-directory-p doom-private-dir)
+      (print! "Creating %s" short-private-dir)
+      (make-directory doom-private-dir t))
     (let ((init-file (expand-file-name "init.el" doom-private-dir)))
-      (if (not (file-exists-p init-file))
-          (message "%sinit.el already exists. Skipping.")
-        (message "Copying init.example.el to %s" short-private-dir)
+      (if (file-exists-p init-file)
+          (print! "%sinit.el already exists. Skipping." short-private-dir)
+        (print! "Copying init.example.el to %s" short-private-dir)
         (copy-file (expand-file-name "init.example.el" doom-emacs-dir)
                    init-file)))
     (let ((config-file (expand-file-name "config.el" doom-private-dir)))
       (if (file-exists-p config-file)
-          (with-temp-file config-file
-            (insert ""))
-        (message "%sconfig.el already exists. Skipping."))))
-  (doom-initialize)
-  (let* ((doom--inhibit-reload t)
-         (autoremove-p (doom//packages-autoremove))
-         (install-p (doom//packages-install)))
-    (or autoremove-p install-p))
+          (print! "%sconfig.el already exists. Skipping." short-private-dir)
+        (with-temp-file config-file (insert "")))))
+  (print! "Installing plugins & generating autoloads file, if necessary")
+  (doom//packages-install)
   (doom//reload-autoloads)
-  (message "\n\nDone! Doom Emacs is ready.\n")
-  (message "Remember to run M-x all-the-icons-install-fonts after starting Emacs for the first time."))
+  (print! "\n\nDone! Doom Emacs is ready.\n")
+  (print! "Remember to run M-x all-the-icons-install-fonts after starting Emacs for the first time."))
 
 (provide 'core-dispatcher)
 ;;; core-dispatcher.el ends here

respectively."
  (doom//byte-compile args))

(def-dispatcher! (recompile cc)
  "Re-byte-compiles outdated *.elc files."
  (doom//byte-compile args 'recompile))



(def-dispatcher! info
  "Output system info in markdown for bug reports."
  (doom/info))

(def-dispatcher! (version v)
  "Reports the version of Doom and Emacs."
  (doom/version))

(def-dispatcher! (refresh re)
  "Refresh Doom. Same as autoremove+install+autoloads.

This is the equivalent of running autoremove, install, autoloads, then
recompile. Run this whenever you:
