Ok, I am giving it a shot. Here is my setup:
;;;;;;; org path
(defvar org-load-path
(list (file-name-as-directory
(expand-file-name "org" starter-kit-dir)))
"List of directories to find org-files that
`org-babel-load-file' can load code from")
(defun org-require (feature)
"Load a FEATURE from an org-file.
FEATURE is a symbol, and it is loaded from an org-file by the name of FEATURE.org, that is in the `org-load-path'. The FEATURE is loaded from `org-babel-load-file'."
(let ((org-file (concat (symbol-name feature) ".org"))
(path))
;; find the org-file
(catch 'result
(loop for dir in org-load-path do
(when (file-exists-p
(setq path
(expand-file-name
org-file
dir)))
(throw 'result path))))
(let ((default-directory (file-name-directory path)))
(org-babel-load-file path))))
(org-require 'org-ref)
(org-require 'doi-utils)
(org-require 'org-show)
In the only directory I define in org-load-path, I put
org-show.org,
org-ref.org, and
doi-utils.org, and the code above is in an init file. When I load emacs, for these files, so far, it works great. They are simple files that only tangle to one .el file so far.