The one tool that will rule them all. By developers for technical experts and non-technical experts.
Kody, a general-purpose terminal based, low-code no-code tool that helps you generate artifacts.
Getting Started
Getting started with Kodyfire is as easy as 1,2,3. Below is a quick summary of the command you need to run in order to get started.
npm install -g kodyfire-cli
# from your project root folder
npm i react-kodyfire
kody g react component
Install the CLI
Install the kody cli by running
npm install -g kodyfire-cli
or
yarn global add kodyfire-cli
You can check the documentation with
kody --help
Open your project
Note: If you are looking for more customization, we recommend you to create your own kody locally. Instructions below. Don't forget to share your kody with us if you have made it public.
Open the project you are willing to work on using vscode. If you are starting a project from scratch, you can start our experimental project installer kody install
(not required). It will prompt you to choose the project type and the destination folder.
Install a kody
Based on your project, select the kody that works for you or customize your own. There are 14 kody packages available at the moment.
To list available kodies. (The search command simply displays available kodies and no keyword are required.
kody search
The command will list available kodies. Install your kody of choice. For example, if you want to install the react kody
npm install -s react-kodyfire
or
yarn add react-kodyfire
Please note you can install as many kodies in the same project as you wish.
Generate your artifact
There are 2 methods you can generate your artifacts with:
- The
generate
command - The
run
command
Method 1: Generator mode kody generate
The recommended way of using kody is using the generate
command. The command will assist you creating your artifact based on the chosen concept
. For example, a react component
is considered a concept
.
In order to generate your artifacts, run the generate
command. The syntax is kody g|generate [kody] [concept]
. If you ommit kody
and/or concept
the assistant will prompt you to select the missing. As an example, run the following command from your terminal:
kody generate react component
Method 2: Runner mode kody run
The run
command is similar to the generate
command. The run
requires a definition file which is simply a json file containing all the concept definitions you have created using the ride
command. The generate
command on the other hand creates one or more concept definition on the run and process them on one run. Every command has its use cases.
Initialize kody
In order to start using kody, you need to initialize your project.
kody init
This will add the definition files required for kody runs. Important: Please run the command only once. The command will override existing definition files. We will disable overriding in a future version.
Ride your kody
In order to update your definition, use the kody ride command to assist you populate the required fields
kody ride
Launch a kody run
Once you are satisified with your definition file, execute the run command to generate your artifacts.
kody run -s laravel-kody.json
To run all kodies defined within your project, run the following command:
kody batch
Available kodies
Name | Description |
---|---|
basic-kodyfire | A general purpose code generator that should handle most of the generation use cases |
typescript-kodyfire | Generate typescript related artifacts |
tsconfig-kodyfire | Generate tsconfig files for your typescript projects |
nextjs-kodyfire | Generate nextJs components and related artifacts |
react-kodyfire | Generate react components |
laravel-kodyfire | Laravel artifacts generation |
vuexy-kodyfire | Vuexy theme artifacts generation |
uml-kodyfire | Uml diagrams generation using plantuml |
readme-kodyfire | Readme file generation |
word-kodyfire | Generate ms word document based on a template |
pdf-kodyfire | Generate PDF document from HTML templates |
social-image-kodyfire | Generate dynamic images for social sharing based on HTML templates |
social-gif-kodyfire | Generate dynamic gif images for social sharing based on HTML templates |
linkedin-quizzes-kodyfire | Practice Linkedin skill assessement tests from your terminal |
What is Kody
Kody is a general-purpose terminal based, low-code no-code tool that helps you generate artifacts.
Kody should integrate within your development cycle flawlessly
Kody is extensible and aims to be highly customizable
Kodyfire or kody, is embeddable into existing systems like vscode, Google Chrome and all extensible system offering a Javascript/Typescript api
Third-party systems like webapps can build on top of it to further accelerate the process of generating artifacts.
We are in experimental phase and the current project is a POC for demonstration purposes
Kody is technology agnostic and can be used to generate code into your programming language and framework of choice
Here are few examples of what kody can/will do
- A REST API based on x framework (example: Laravel)
- A frontend using x framework/library (example: Vue.js)
- A fullstack web app
- A mobile app using x framework (flutter)
- A browser extension
- An editor/ IDE extension
- A Word extension
- A UML diagram using x library
- A Word document based on a model
- A PDF invoice
- Mailing
- Third-party API interactions
- Cron jobs
- Deploy an application to a web server
- Automate git commits by specifying when and what each commit includes
- Migrate from one framework to another framework
- Migrate from one database schema to another database schema
- Upgrade an x framework from version y to version z
- And much more…
- Imagination is the limit
Objectives
- Low code benefit
- Code convention
- Increased productivity
- //TODO
Create a kody
In most cases you might need a custom kody to suit your needs
Scaffold a new kody
Create a basic kody using the scaffold command. Follow the prompts to setup your kody
kody scaffold
This will create a folder containing the basic structure for a kody. You can start using right away within your project.
Setup your kody
Install npm dependencies
npm i
Build your kody
npm run build
Override defaults
//TODO
Add concepts
//TODO This will build your kody and export the basic templates files.
Add as an NPM dependency
In order to be able to use it within your project run the following command
npm i -s ./yourkody-kodyfire
Publish your kody
Please remember that Kody is still in exploration phase and things will change frequently. Contribution is always highly requested.
Prepare your kody
Add the required kodyfire metadata to your package.json
{
// A command for handling this part will be added in a future version
"kodyfire": {
"id": "your-id", // must be unique.
"type": "kodyfire", // Example of valid technology names: laravel, express, react, angular, flutter, html, css. Default: kodyfire
"version": "0.0.1"
}
}
Publish to Github
Intialize your project as a git repository and push to a public Github repo
Publish to npm
Once you are satisfied with your kody and you would to like to share it with the community. Run the following command.
npm Publish
Note: You'll need an NPM account
Share with community
Congratulation publishing your first kody. Don't forget to share your kody repo link by opening an issue on Kody's github repository.
Philosophy
Single source of truth model SSOT: shared data between 2 kodies should be moved to the ssot.
Use any available third-party library that will help us achieve our goal
Continuously reduce human intervention
Gradually eliminate human introduced errors when automation is possible
Adopt a build, evaluate, and restart mindset in developing the project. Kody does not depend on the language it’s made of or the environment it lives in. Kody should adapt and mutate.
Experimental phase
Concepts and technologies used / to be used
AST
Transducer
Transformer
Plugin & Play architecture
Architecture
Plugin & Play architecture
Comparison
//TODO
- Schematics
- Yoaman
- Bubble
- n8n
- appsmith
- Tooljet
- Others
Milestones
Low-code
//TODO
No-code
Provide a web app for building kodies
Future Objectives
- Intelligent Kody using AI
- Use AST to update an existing artifact
- Reverse engineering: From code to Kody definition. Possible use cases: Migrate from one technology to another
- Use as a benchmark tool
- Kodies as a node within a network
- Aggressive automation: Pushing the boundaries of what automation can do for us
- Kody endless run
Packages
Kodyfire: The main repo. Hold the documentation and all kody related packages. Uses lerna to handle npm package management.
Kodyfire-core: Contains the things that are common to all other kody package.
Laravel-kodyfire: A kody package to generate Laravel related artifact. This a ported package from an existing and requires refactoring to make simpler. Documentation to be added.
Vuexy-kodyfire: A kody package to generate vuexy theme related artifact. A valid license and your own copy of vuexy theme is required. Documentation to be added.
Kodyfire-cli: The command line tool to run kody runs
Credits
- Typescript
- Angular schematics
- Commander
- Prompts
- Handlebars
- xz
- Ajv
- php-parser
- Boxen
- //TODO: List all third-party libraries
Glossary/Terminology
//TODO
- SSOT: // TODO
- Artifact: // TODO
- Template: // TODO
- Definition file: // TODO
- Definition source: // TODO
- Resolver: // TODO
- Transformer: // TODO
- Recipe: // TODO
- Domino: // TODO
- Ride: // TODO
- Schema: // TODO
- Technology: // TODO
- Kody: // TODO
- Concept: // TODO
- Command: // TODO
- Kodyfire: // TODO
- Run: // TODO
- Root source: // TODO