Refactor build process to separate out shelf logic from playground