code: public void bake() {
  
          ContentStore contentStore = utensils.getContentStore();
          JBakeConfiguration config = utensils.getConfiguration();
          Crawler crawler = utensils.getCrawler();
          Asset asset = utensils.getAsset();
  
          try {
  
              final long start = new Date().getTime();
              LOGGER.info("Baking has started...");
              contentStore.startup();
              updateDocTypesFromConfiguration();
              contentStore.updateSchema();
              contentStore.updateAndClearCacheIfNeeded(config.getClearCache(), config.getTemplateFolder());
  
              // process source content
              crawler.crawl();
  
              // render content
              renderContent();
  
              // copy assets
              asset.copy();
              asset.copyAssetsFromContent(config.getContentFolder());
  
              errors.addAll(asset.getErrors());
  
              LOGGER.info("Baking finished!");
              long end = new Date().getTime();
              LOGGER.info("Baked {} items in {}ms", renderedCount, end - start);
              if (!errors.isEmpty()) {
                  LOGGER.error("Failed to bake {} item(s)!", errors.size());
              }
          } finally {
              contentStore.close();
              contentStore.shutdown();
          }
      }
docs: All the good stuff happens in here...