A whole new developer ecosystem: CakeCutter 🍰

A couple months ago, I wrote a blog Introducing Cakecutter, which was, essentially, a modular version for create-python-project. Both of these projects were very easy, because they were just simple projects for me to practice the Rust programming langu…


This content originally appeared on DEV Community and was authored by Dhravya

A couple months ago, I wrote a blog Introducing Cakecutter, which was, essentially, a modular version for create-python-project. Both of these projects were very easy, because they were just simple projects for me to practice the Rust programming language. I made them and forgot about it. But little did I know, small projects go a long way.

But then, a couple days ago, Yash (who is a fellow admin of the Coding Horizon community and an amazing developer), texted me, saying that he sees a lot of potential in my little pet project.

“Cakecutter is cool, let’s make it better”

And that’s exactly what we did.

We discussed new things we can implement, and decided to rewrite the entire thing in Golang

Ok, but what exactly is Cakecutter?

In a nutshell, Cakes are templates, which contain everything you need to set up a project. This includes:

  • The file structure of a project (for eg. some boilerplate files, README, src/ folder) [DOCS]
  • File content (for eg. Pre-generated licenses, or boilerplate code) [DOCS]
  • Commands to set up a project (for eg. Downloading dependencies, creating virtual environment) [DOCS]

Additionally, questions can be asked when setting up a project. Questions can be a selection between multiple things, or an input. Then, the answers to the questions can be used to fill in a template. [DOCS]

An example use case for this would be, asking the name of a user to auto-generate license, or you can even generate an entire README file with it!!

You can create files based on answer to a question, for example, creating a file only if the project is a typescript project.

And, you can even run commands based on answers. Example use case would be asking host OS to run setup commands!

This is a hell lot of power and functionality in just ONE CakeFile! (Just like real cakes 😆)

Have a look at the Basic example cake and you can also try out the Python cake

Sold yet? Install cakecutter.

Head over to https://docs.cakes.run/1-install/, or use with NPX:

npx cc

These are not even the biggest updates.

Like create-react-app , most people don’t like to make cakes. They like to eat them. We knew this, and a way to share cakes had to be made.

So, we created a publish command, so you can publish your cakes for others to use!

Try out this command to instantly generate a very simple python project template. Now you don’t need to create cakes!

npx cc cut python

Also, we created the website Cakes.run where you can find the documentation, installation guidelines, and also browse the cakes created by others.

To learn more about how to create cakes, Read the docs, and go through the examples repository

Your support is appreciated. Here’s how you can help

The entire stack - from the API, website, CLI, Docs - Everything is open source. You can find them on the Cake-cutter github organisation.

⭐ Star all repositories to spread the word. Especially this one, the main CLI 👇🏻

GitHub logo cake-cutter / cc

Create projects from pre-built cakes (templates) Supports files, packages, content, running commands, sharing cakes and more!

Cakecutter

License: MIT
Create projects from pre-built cakes (templates) in seconds

Read the full Documentation

👀 What is Cakecutter?

Sometimes, the most difficult thing is to just get started with a project. Cakecutter is a tool that helps you to cut the cake and start your amazing project instantly.

What Cakecutter does:

  • Users can publish, create or use a cake from Cakes.run. Cakes are basically TOML files which contain all the information needed to create a project.
  • According to the information in the Cakefile, Cakecutter will create all the files and (you can also fill them with content) in the correct location.
  • Setup commands (installing dependencies, etc) can be defined in the Cakefile. These commands are run after the files are generated.
  • Cakecutter can ask questions to the user and take input. The input can then be used as variables for the project template. Read the docs here




Follow Yash, the major contributor of this project, on DEV community and Github - https://github.com/kekda-py

Follow me, Dhravya Shah on Github - https://github.com/dhravya


This content originally appeared on DEV Community and was authored by Dhravya


Print Share Comment Cite Upload Translate Updates
APA

Dhravya | Sciencx (2022-06-17T04:36:43+00:00) A whole new developer ecosystem: CakeCutter 🍰. Retrieved from https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/

MLA
" » A whole new developer ecosystem: CakeCutter 🍰." Dhravya | Sciencx - Friday June 17, 2022, https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/
HARVARD
Dhravya | Sciencx Friday June 17, 2022 » A whole new developer ecosystem: CakeCutter 🍰., viewed ,<https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/>
VANCOUVER
Dhravya | Sciencx - » A whole new developer ecosystem: CakeCutter 🍰. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/
CHICAGO
" » A whole new developer ecosystem: CakeCutter 🍰." Dhravya | Sciencx - Accessed . https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/
IEEE
" » A whole new developer ecosystem: CakeCutter 🍰." Dhravya | Sciencx [Online]. Available: https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/. [Accessed: ]
rf:citation
» A whole new developer ecosystem: CakeCutter 🍰 | Dhravya | Sciencx | https://www.scien.cx/2022/06/17/a-whole-new-developer-ecosystem-cakecutter-%f0%9f%8d%b0/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.