OpsLevel Logo
Product

Visibility

Catalog

Keep an automated record of truth

Integrations

Unify your entire tech stack

AI Engine

Restoring knowledge & generating insight

Standards

Scorecards

Measure and improve software health

Campaigns

Action on cross-cutting initiatives with ease

Checks

Get actionable insights

Developer Autonomy

Service Templates

Spin up new services within guardrails

Self-service Actions

Empower devs to do more on their own

Knowledge Center

Tap into API & Tech Docs in one single place

Featured Resource

March Product Updates
March Product Updates
Read more
Use Cases

Use cases

Improve Standards

Set and rollout best practices for your software

Drive Ownership

Build accountability and clarity into your catalog

Developer Experience

Free up your team to focus on high-impact work

Featured Resource

The Ultimate Guide to Microservices Versioning Best Practices
The Ultimate Guide to Microservices Versioning Best Practices
Read more
Customers
Our customers

We support leading engineering teams to deliver high-quality software, faster.

More customers
Hudl
Hudl goes from Rookie to MVP with OpsLevel
Read more
Hudl
Keller Williams
Keller Williams’ software catalog becomes a vital source of truth
Read more
Keller Williams
Duolingo
How Duolingo automates service creation and maintenance to tackle more impactful infra work
Read more
Duolingo
Resources
Our resources

Explore our library of helpful resources and learn what your team can do with OpsLevel.

All resources

Resource types

Blog

Resources, tips, and the latest in engineering insights

Guide

Practical resources to roll out new programs and features

Demo

Videos of our product and features

Events

Live and on-demand conversations

Interactive Demo

See OpsLevel in action

Pricing

Flexible and designed for your unique needs

Docs
Log In
Book a demo
Log In
Book a demo
No items found.
Share this
Table of contents
 link
 
Resources
Blog

Cookiecutter vs. Yeoman: choosing the right scaffolder for your service

Insights
Service Creation
Standardization
Automation
DevOps
Platform engineer
Cookiecutter vs. Yeoman: choosing the right scaffolder for your service
OpsLevel
|
July 25, 2022

So, you’re looking to create a new project. But before you start, you must decide which scaffolding generator you’ll use. You have two main tools at your disposal which we are going to compare: Cookiecutter vs Yeoman.

Both tools can help you get your application up and running quickly, but each has unique advantages and disadvantages. So, which one should you use for your project? Let’s begin by first understanding what a scaffolding generator is.

What Is a Scaffolding Generator?

A scaffolding generator is a tool that can help you quickly create the skeleton of an application. It can be helpful if you want to develop an application without worrying about setting up the basic structure yourself.

Why Use a Scaffolding Generator?

There are several reasons why you should use a scaffolding generator in your project.

     
  1. Speed: With it, you can quickly set up the basic structure of your application.
  2.  
  3. Proper focus: It allows you to focus on developing the features of your application rather than setting up the infrastructure.
  4.  
  5. Consistency: It enables you to have a consistent starting point for all team members working on the project.
  6.  
  7. Reuse: It allows you to save time by having a well-defined structure that you can use for all your future projects.

Now having learned what a scaffolding generator and its benefits are, let’s take a closer look at the two most popular scaffolding generators to help you decide which one to choose.

Cookiecutter

Cookiecutter is a scaffolding generator that helps you quickly create the skeleton of a new application. It’s an open-source project on GitHub under the BSD-3 license. Although it’s written in Python, you don’t need to know Python to use Cookiecutter.

You can use Cookiecutter as a command-line utility; it works cross-platform and is supported officially on Windows, Mac, and Linux. It’s available as a PyPI package (Python package index, a software repository for the Python programming language).

How to Install Cookiecutter

You can install it using pip, a package management system for Python software packages. To install Cookiecutter, you first need to install Python on your system. You can find instructions for installing Python here. Next, you install Cookiecutter by running the following command:

Features

Cookiecutter helps you create projects from templates (cookiecutters), which means you can start with a basic skeleton and then add the features you need.

You can use it to generate project templates for any programming or markup language like HTML, CSS, Python, Go, Ruby, JavaScript, Markdown, and many more. It allows you to create new projects with all the necessary files and directory structures.

Pros of Cookiecutter

Some of the benefits or advantages of using Cookiecutter include

     
  • a large variety of templates: Cookiecutter has a large selection of more than 6,000 templates, so you can easily find one that closely matches your project’s needs.
  •  
  • saves time and effort: It can be a huge time saver, especially when starting from scratch. It requires little setup and is easy to use.
  •  
  • well-documented: You can visit the official documentation here to learn everything about Cookiecutter.
  •  
  • cost: It’s open source and free to use.

Cons of Cookiecutter

Some of the potential disadvantages of using Cookiecutter include

     
  • requires Python: You need to have Python installed on your system.
  •  
  • smaller community: Cookiecutter is not as widely used as Yeoman, so there’s less of a community support network.

Yeoman

Yeoman is a scaffolding generator that helps you quickly create the skeleton of a new application. It’s written in JavaScript but can be used to generate projects in any language. It’s an open-source project hosted on GitHub and available under the BSD-2 license.

Yeoman can help you quickly create the skeleton of a project from scratch and give you complete control over your project’s structure. You can take care of creating the necessary files and directories used for storing modules or packages and critical components of your projects like services, controllers, models, or tests.

How to Install Yeoman

Yeoman is npm-based. To install Yeoman, you must have Node.js and NPM package manager installed on your system. You can install Yeoman by running the following command in the terminal or command prompt:

$ npm install -g yo

Note: In macOS, you must prefix the command with _sudo _for granting admin permissions.

The above command will install the yo command-line utility globally on your system, and you can run this command from anywhere to run any generators.

Next, you need to search for the desired generator from this site and install it. Generators are also npm packages. To install the webapp generator, for example, run the following command:

$ npm install -g generator-webapp

You can now create a new project with basic scaffolding for a web application by using the yo generator. For example, to generate a new web app, you would run the following command:

$ yo webapp

Yeoman also includes a diagnostic tool called the doctor, which can help you identify any potential issues preventing Yeoman from working correctly.

To run the doctor, you can use the following command:

yo doctor

If there are any issues the doctor finds, it’ll provide instructions on how to fix them.

Features

Yeoman is an opinionated tool that comes with a default set of conventions and standards that you should follow. It includes a set of generators for creating project structures using scaffolding templates, creating static assets, and managing dependencies.

However, if you don’t like the way Yeoman does something, you can always override its behavior by creating custom generators.

Pros of Yeoman

Some of the benefits of using Yeoman include

     
  • saves time and effort: You can use it to generate the boilerplate code for a new project or create files and folders that are needed for an existing project. In addition, it can help you to manage dependencies, run tasks like linting, build code, run tests, and more.
  •  
  • extensible: Yeoman is also very extensible, so you can easily add or remove features.
  •  
  • cost: It’s also open source and free to use.

Cons of Yeoman

Some of the potential disadvantages of using Yeoman include

     
  • opinionated: It comes with default conventions and standards. Some developers might find this nature of Yeoman to be constraining.
  •  
  • complex: It can be challenging to find the right template for your project, and the generated code can sometimes be challenging to customize to your specific needs.
  •  
  • steeper learning curve: The learning curve might be steep for those unfamiliar with Node.js or the command line.

Other Alternatives to Explore

Below are some of the other options available, so be sure to explore other alternatives as well.

     
  • ScaffoldHub: This is an open-source scaffolding generator written in JavaScript. It’s available on GitHub.
  •  
  • Create React App: This is a tool to create React applications with no build configuration. It’s open source and available on GitHub.
  •  
  • SlushJS: This is a scaffolding toolkit written in Node.js. It’s open source and available on GitHub.
  •  
  • Jhipster: This is an open-source application generator for creating Spring Boot + Angular/React projects.
  •  
  • Gulp: This is an open-source JavaScript toolkit for automating time-consuming tasks in the development workflow.

So, Which Tool Should You Use?

Choosing between Cookiecutter vs Yeoman can be tricky, as both tools have their own advantages and disadvantages.

If you’re just starting and need a quick way to generate a new project, Cookiecutter might be the better option. If you’re looking for more control over your project’s structure, Yeoman could be a better fit.

There are many other scaffolding tools available, so be sure to explore other popular options and choose the one that’s the best fit for you and your project. Ultimately, the best tool for your project will depend on your specific needs and preferences.

This post was written by Tarun Telang. Tarun is a software engineering leader with over 16 years of experience in the software industry with some of the world’s most renowned software development firms like Microsoft, Oracle, BlackBerry, and SAP. His areas of expertise include Java, web, mobile, and cloud. He’s also experienced in managing software projects using Agile and Test Driven Development methodologies.

More resources

March Product Updates
Blog
March Product Updates

Some of the big releases from the month of March.

Read more
How Generative AI Is Changing Software Development: Key Insights from the DORA Report
Blog
How Generative AI Is Changing Software Development: Key Insights from the DORA Report

Discover the key findings from the 2024 DORA Report on Generative AI in Software Development. Learn how OpsLevel’s AI-powered tools enhance productivity, improve code quality, and simplify documentation, while helping developers avoid common pitfalls of AI adoption.

Read more
Introducing OpsLevel AI: Finding Your Lost Engineering Knowledge
Blog
Introducing OpsLevel AI: Finding Your Lost Engineering Knowledge

Read more
Product
Software catalogMaturityIntegrationsSelf-serviceKnowledge CenterBook a meeting
Company
About usCareersContact usCustomersPartnersSecurity
Resources
DocsEventsBlogPricingDemoGuide to Internal Developer PortalsGuide to Production Readiness
Comparisons
OpsLevel vs BackstageOpsLevel vs CortexOpsLevel vs Atlassian CompassOpsLevel vs Port
Subscribe
Join our newsletter to stay up to date on features and releases.
By subscribing you agree to with our Privacy Policy and provide consent to receive updates from our company.
SOC 2AICPA SOC
© 2024 J/K Labs Inc. All rights reserved.
Terms of Use
Privacy Policy
Responsible Disclosure
By using this website, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Data Processing Agreement for more information.
Okay!