We're big fans of REPLs because they accelerate learning and are more productive by cutting out the need for UIs or scripts. We include a `repl.sh` script in every medium-to-large project, which starts a REPL with preloaded libraries, custom commands, and database connections when necessary. In NodeJS, we use the built-in `repl` module to create a custom eval function that can process and parse code before calling a callback. We also use async/await with Babel in the REPL to make it easy to update or delete from a development database. By creating shells and REPLs for projects, developers can gain a productivity win.