Commit 2c90696f authored by Bryan Tong's avatar Bryan Tong

Merge branch 'fixup-tree' into 'master'

Cleanup leftover html docs; Lock kado dep to ^4.2.0@npm rather than master@git

See merge request !45
parents 84326a57 01fa05bc
"v4": {
"remoteUrl": "",
"remoteBaseUrl": "",
"remoteRawUrl": "",
"remoteUrl": "",
"remoteBaseUrl": "",
"remoteRawUrl": "",
"latest": true,
"article": {
"kado-4-released": "/doc/article/",
......@@ -91,8 +91,9 @@
"dev": true
"kado": {
"version": "git+",
"from": "git+"
"version": "4.2.0",
"resolved": "",
"integrity": "sha512-gv9P1902oTVYtJSLP5pU0nU63tbUG78dJjA+qEe65uGnw+eNhzRMdaHBV2DPDucj3jMg1y2H32MCS1O11zcxxQ=="
"locate-path": {
"version": "3.0.0",
......@@ -105,9 +106,9 @@
"p-limit": {
"version": "2.2.2",
"resolved": "",
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"version": "2.3.0",
"resolved": "",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
......@@ -205,9 +206,9 @@
"dev": true
"yargs": {
"version": "14.2.2",
"resolved": "",
"integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==",
"version": "14.2.3",
"resolved": "",
"integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
"dev": true,
"requires": {
"cliui": "^5.0.0",
......@@ -220,13 +221,13 @@
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^15.0.0"
"yargs-parser": "^15.0.1"
"yargs-parser": {
"version": "15.0.0",
"resolved": "",
"integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
"version": "15.0.1",
"resolved": "",
"integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
......@@ -19,7 +19,7 @@
"main": "./app.js",
"dependencies": {
"kado": "git+"
"kado": "^4.2.0"
"devDependencies": {
"highlight.js": "^9.18.1",
<h1 id="fallupdate2019">Fall Update 2019</h1>
<p>Hi Everyone,</p>
<p>First of all, I would like to thank all the users that have taken the time to
use Kado over the last few months or even earlier! I appreciate that a lot! That
being said, the Kado team and I are moving forward towards the end of 2019 and I
am making progress with planing as well.</p>
<p>Today I went ahead and released Kado 3.9.6 which contains updates to all the
latest dependencies. There were 20 this time around. </p>
<p>We are pleased that Kado is helping web developers make the internet easy to
develop against. For our programs written against Kado, wow what an improvement.
There is just a sense of calm even as we pile together large software projects.
That is what Kado does best: Bring structure and order to a large and complex
<p>My thoughts when first writing Kado were to come up with a coding organization
system that could accomodate small and simple projects. Then, scale out to
massive projects, without having to change the structure or organization of the
code. Depending on the kind of development done means Kado doesn't fit everyone.
However, being a programmer that participates in projects with a lot of
potential, its great to have a solution to the scaling problem that can be
employed early on.</p>
<p>Another great benefit of Kado is compartmentalizing the work and code involved
in the work. This greatly reduces code conflicts, even with many developers
working on the same project. It is also much easier to take an excerpt of the
project and hand it to an external developer using Kado. This helps to cut down
on confusion from the developer end and helps keep the project flow moving at
a much higher rate.</p>
<p>Why am I saying all of this? Well, it does have a point. Kado version 4 is
coming and with it are some changes to the basic structure of what Kado is and
how it functions. Initially, I did not completely know what Kado was. I wrote
the thesis outlining the boundaries of how the system was supposed to work and
what we were supposed to accomplish. However, that did not directly translate
into what the system would look or feel like. So I broke ground and just started
molding a web system that was the compilation of over a decade of professional
web development work. So far I have been thrilled with the setup and result of
the API, however its becoming more clear to me what Kado is:
This was a huge revelation to me now that we have this working Kado application.
Now, I know the real purpose of Kado and how it will help shape the world of
web development.</p>
<p>Coming soon we are going to be breaking apart the core components of Kado and
making the base package a lot lighter. Kado will become a backbone engine that
doesnt actually serve an interface or any modules out of the box. After 3 years
of development it is clear what the core role Kado kernel is. That is to build
and introspect the registered code modules and provide a structure layout for
the rest of the application to use.</p>
<p>These include:
* Database Access
* Email Sending / Receiving
* UI Asset Management (Static Files)
* Breadcrumb Navigation
* Cron Execution
* Event Logging
* Interface Library
* Language Library providing language pack support
* Application Logging
* Messaging (Email, Tickets, Chat, etc)
* Navigation Library providing navigation structures in any UI
* Permission Library for fine grained permission control
* Profiler Library which tracks and measures application performance
* Search Library providing a search backbone for all modules
* URI Library provides a consistent registry of available application paths
* View Library provides registration and listing of all registered UI views.
* Webpack building system</p>
<p>One of the main problems Kado has is doing too much, however I believe as long
as we stay focused on providing the right needs the user space can flourish. To
me, of course its going to be a slow start because Kado is too new of a way
doing things. However, as time passes we will continue to revise Kado and work
on the balance between application and web engine. Which brings me to the next
point of the Kado update.</p>
<p>Kado is a <strong>WEB ENGINE</strong> which is the same as a <strong>GAME ENGINE</strong> meaning that it
provides a lot of the base APIs to ease the development of new applications.
Games always run into this issue when it comes to adding menus to the game.
They almost all make their own and then end up with a coding nightmare. Similar
to how Unreal Engine serves this purpose for games, Kado aims to serve this
purpose for web development. Now unlike ever before, your website is developed
against a real time, high performance web engine. And the API's are easier than
ever. Let me talk a little bit about how Kado works. Below I will illustrate the
Kado stack in my mind.</p>
<p>C -&gt; C++ -&gt; libuv -&gt; Node.JS -&gt; ExpressJS -&gt; Kado -&gt; Application Code -&gt;
Web Page or Program</p>
<p>Let me elaborate:
* The core of Node.JS is built in C
* While most of the handlers and modules are built in C++
* Next comes the event system also written in C++ libuv which is the core of
how Node.JS moves along
* Now for Node.JS itself which creates a consistent overlay between JS and
the Operating System
* Now for ExpressJS which provides a sinatra style web server and some
powerful API's
* Finally Kado which provides this stack wrapped together in a platform that
helps organize your code.</p>
<p>**Important NOTE Kado also provides process management at the core eliminating
the need to add clustering later.</p>
<p>Kado should work on any program, from web development, to back ends, to Desktop
UI. The secret here is not restricting how the application is built or even the
code the application is built on. Kado provides organization to help navigate
applications and help control where business logic lives.</p>
<p>A quick break down of the Kado folder structure.</p>
<pre><code>- Project Root
-- interface (interface definitions)
--- public (static files for public serving)
--- view (contains views for global use)
---- home.html (homepage mark up)
--- kado.js (define interface such as expressjs)
-- kado_modules
--- blog (module folder)
---- kado.js (module definitions)
-- app.js (application configuration)
<p>The structure of the application will remain consistent with version 3 except
for one notable change where an additional 'kado.js' file has been added to the
interface folder which helps define routes and interface configuration globally.</p>
<p>Kado continues to struggle with the issue of doing one thing and doing it well.
Right now we are honing in on becoming the application structure system that
takes node to the next level. If you are interested in helping us in any way,
please let me know!</p>
\ No newline at end of file
<h2 id="introductiontokadotransitionfromlearningtocoding">Introduction To Kado: Transition From Learning To Coding</h2>
<p><em>by Justin Fowler on 09/09/2019</em></p>
<h3 id="introduction">Introduction</h3>
<p>Starting off, having no knowledge of HTML, JavaScript, and CSS, made being a Web
Developer seem too advanced and so far out of my reach. Just thinking about it
seemed bleak and not worth the try. I figured if I needed a website built, why
not hire someone to build it for me right? I feel like I was among the majority
of people who felt this way, until I was introduced to a program that would
eventually change my way of thinking.</p>
<h3 id="codecademy">Codecademy</h3>
<p>In November of 2018 I began using a free Website called Codecademy. I started
off with HTML, and this deployed me in to the world of Web Developing. This was
perfect for me. The basics, with a simple understanding of how to write it.
Codecademy is a very interactive program. It’s filled with literature to help
you understand the code you’re learning, how to write it properly, and comes
equipped with a practice terminal so you can write code along with your lessons.
Upon completion of a lesson there is usually a project that you get to build,
(or debug) using knowledge of what you just learned. Then its followed up by a
multiple choice quiz, or quizzes. This program was a great start for me. Of
course at times, there were struggles. Fortunately Codecademy has video
tutorials, and even offers human tutoring for a small fee. </p>
<p>Before I knew it, I completed the HTML course! I advanced to the CSS course,
then made my way to JavaScript soon after. I was beginning to understand the
purpose each of these languages served, and how to write them efficiently.
Coming from a Web Development background which held no experience what-so-ever,
to writing clean code and seeing results, really surprised me. It made me feel
like I could conquer the world. It was around this time I was introduced to
Kado and started the Journey I’m on today. </p>
<h3 id="usingkado">Using Kado</h3>
<p>My transition into Kado from Codecademy was intimidating at first. I felt like
there was a lot of steps to follow to get the installation process going. Being
so fresh, I doubted my ability to be able to get the desired result. I was
definitely hesitant to get the ball rolling. After viewing the docs on,
I realized they were written in a descriptive manor, which would help getting
Kado installed on my laptop. After following the steps, I had Kado running and
ready for use. Still though, I was only used to practicing code in a “safe zone,
on Codecademy. Actually seeing it all in front of me the way it was presented,
was a lot to take in at a glance. So many files. So much code. Not to mention
this being my first time using Webstorm. I felt like I had a lot to learn before
I even got started. Nevertheless, I asked my team to educate me on the basics
of Webstorm to help get me on my way. </p>
<h3 id="projectmagic">Project Magic</h3>
<p>The more I dove into Kado, I realized it used everything I’had learned in my
Codecademy lessons. This started to relieve my hesitation and nervousness I’had
been feeling. I remember the first file I played around with, was an HTML file.
I was clicking around and making words bold and italic, I even turned my page
into a dark theme! It was fun. I remember thinking…How cool is this. I am
actually doing it. Eventually my team got me started on Magic. This is a project
we are currently building using Kado. This is where I really get to use my
JavaScript skills I’d learned from Codecademy! Since I’ve been working with
Magic on Kado, I’ve worked on Datatables, which order data and hold information
that uses JavaScript to get and pass information to. I’ve worked on HTML to add
forms, and edit text on the Web page. I’ve used CSS to color pages, and make
drop down effects for boxes. And most importantly I've been able to find and
debug issues easily, using Kado. </p>
<h3 id="summary">Summary</h3>
<p>To put it simply. From a beginners point of view, Kado may be intimidating to
look at, but it is a very easy program to use. It has been a blast getting to
know the program and use it for Web Developing. I am so glad that I took this
route to get where I am today, and I’m looking forward to seeing what my future
holds as I build with Kado! I would recommend to anyone to try out this program.
Whether you have a solid background in Developing or your just getting started
out, Kado is the way to go. </p>
\ No newline at end of file
<h1 id="kado6monthsin">Kado 6 Months In</h1>
<p><em>by Bryan Ramey on 8/30/19</em></p>
<h2 id="workingwithkadothoughtsandimpressions">Working With Kado: Thoughts and Impressions</h2>
<h3 id="summary">Summary</h3>
<p>I have now been actively developing with Kado for 6 months in a professional
environment and I truly feel that Kado as a development platform has made the
process easier and faster for many reasons.</p>
<h3 id="problemsolving">Problem Solving</h3>
<p>One of the disadvantages I have experienced as well as read about many times in
developing with Node.JS is that starting a project from scratch is often time
consuming and requires an experienced developer. With Kado, this entire process,
as well as setting up a main and admin panel when I desire, is done on install.
After I install and with little configuration, I can simply start my application
and go to localhost:3000 (admin) and localhost:3001 (main) to begin developing.
Kado also makes it very easy to override the default views that come installed
and begin developing the look of my applications. </p>
<h2 id="advantagesinproductivityandstarttime">Advantages in Productivity and Start Time</h2>
<h3 id="advantagedriven">Advantage Driven</h3>
<p>Another advantage of using Kado as a development platform that cuts down on
production time is the packages it comes with. Only a couple years ago,
developing in Node.JS was made more difficult by the lack of supporting quality
packages. Doing simple things such as logging and formatting those logs took a
long time to accomplish compared to other languages such as PHP. Today that is
no longer case. There are quality packages for some basic as well as more
advanced functions to support developers and our application development and
Kado has gathered some of the best and included them as well as integrated some
into Kado itself. An example is Winston. Winston is a lightweight simple and
universal logging library and using Winston with Kado is as easy as
K.log('This is an INFO message') or K.log.error('This is an Error!'). Kado
produces readable and clear logs including date and time, project name, levels,
and descriptions. After start-up, I see a log that looks similar to this:</p>
<pre><code>[2019-08-29T18:45:00.1234 – KADO] INFO: ProjectName started!
<p>It does not get much better than that. Other packages included for developing
ease include Moment, Mustache, Bluebird, Bootstrap etc… as well as packages
used in everyday Node.JS development such as Express, jQuery, MySQL2, and
Sequelize. These packages are all examples of packages I use everyday developing
and I find being able to access them quickly with Kado's K. structure to be very
time saving and easy. It also makes it easier to develop a pattern to your work.
For example, I use the <code>K.bluebird()</code>, <code>K.datatable()</code>, and
<code>K.modelRemoveById()</code> daily. </p>
<h3 id="projectspinup">Project Spin Up</h3>
<p>The fastest way to see Kado in action after installing and creating an <code>app.js</code>
file is to insert the Kado samples. After I do this, I can immediately run
<code>node app</code> and have access to an admin panel and a main website. This is fast
and allows me to see the work I am doing right away. But what if I want to
override the main view to look like my site? This is also very easily done with
Kado. In the app.js file, I can override the views folder or files to look for
my view files. I accomplish this by creating an interface folder in my
application with a main and admin folder and a views folder in each of those.
Than I use the files in these folders to override the default views. An example
of this can be found at</p>
<h3 id="reviewandfutureposts">Review and Future Posts</h3>
<p>There are many other things that are made easier and faster with Kado being used
as the development platform including the file structure of Kado itself and
Module creation. Module creation is fast and simple, and after answering a few
questions, I can include a new module into the admin panel, the main panel if I
choose, create a Model, and create files for basic lists and entries in the
admin panel, making creating modules and editing and creating items in that
module faster and more efficient. Module creation is another feature in Kado I
enjoy as it takes allot of the hassle out of the process. The routes, views,
and basic functions of my modules are created and I don't have to worry about
the structure of my project while creating modules. I will dig deeper into
module creation next time as it is a major reason why I enjoy and recommend
developing with Kado.</p>
\ No newline at end of file
This diff is collapsed.
<h1 id="contributing">Contributing</h1>
<p>When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change. </p>
<p>Please note we have a code of conduct, please follow it in all your interactions with the project.</p>
<h2 id="mergerequestprocess">Merge Request Process</h2>
<li>Ensure your code is homogeneous, copyrighted, and safe for distribution. </li>
<li>Add or modify the the proper documentation to match your changes.</li>
<li>Do not increase version numbers, project maintainers will do this.</li>
<li>Ensure all pipelines are passing including local tests.</li>
<li>Merge Request must be signed off on by one or more project maintainers. Only
project maintainers may complete merges.</li>
<h2 id="codeofconduct">Code of Conduct</h2>
<h3 id="ourpledge">Our Pledge</h3>
<p>In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
<h3 id="ourstandards">Our Standards</h3>
<p>Examples of behavior that contributes to creating a positive environment
<li>Using welcoming and inclusive language</li>
<li>Being respectful of differing viewpoints and experiences</li>
<li>Gracefully accepting constructive criticism</li>
<li>Focusing on what is best for the community</li>
<li>Showing empathy towards other community members</li>
<p>Examples of unacceptable behavior by participants include:</p>
<li>The use of sexual language or imagery and unwelcome sexual attention or
<li>Trolling, insulting/derogatory comments, and personal or political attacks</li>
<li>Public or private harassment</li>
<li>Publishing others' private information, such as a physical or electronic
address, without explicit permission</li>
<li>Other conduct which could reasonably be considered inappropriate in a
professional setting</li>
<h3 id="ourresponsibilities">Our Responsibilities</h3>
<p>Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.</p>
<p>Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.</p>
<h3 id="scope">Scope</h3>
<p>This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.</p>
<h3 id="enforcement">Enforcement</h3>
<p>Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.</p>
<p>Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.</p>
<h3 id="attribution">Attribution</h3>
<p>This Code of Conduct is adapted from the <a href="">Contributor Covenant</a>, version 1.4,
available at <a href=""></a></p>
\ No newline at end of file
This diff is collapsed.
<h1 id="download">Download</h1>
<p>Thank you for your interest in downloading Kado. Below, we will provide a few
different methods for importing Kado into your project or system.</p>
<h2 id="installfromnpm">Install from NPM</h2>
<pre><code>$ npm install kado
<p>This is the preferred installation method and is the easiest. Provided you have
already installed <a href="">Node.JS</a> then you should have <code>npm</code>
available on your system. Simply execute the command above from your project
root to install Kado into your project.</p>
<h2 id="downloaddirect">Download Direct</h2>
<p>Please use the link below to download an archive file containing the latest
version of Kado.</p>
<h3 id="kado4recommended">Kado 4 (recommended)</h3>
<li><a href=""></a> - All Platforms</li>
<li><a href="">kado-4.0.0.tar.gz</a> - All Platforms</li>
<li><a href="">kado-4.0.0.tar.bz2</a> - All Platforms</li>
<li><a href="">kado-4.0.0.tar</a> - All Platforms</li>
<h3 id="kado3legacy">Kado 3 (legacy)</h3>
<li><a href=""></a> - All Platforms</li>
<li><a href="">kado-3.10.6.tar.gz</a> - All Platforms</li>
<li><a href="">kado-3.10.6.tar.bz2</a> - All Platforms</li>
<li><a href="">kado-3.10.6.tar</a> - All Platforms</li>
<h2 id="cdnusage">CDN Usage</h2>
<p>Through the use of NPM based CDN services Kado can be used through their public
links. We do not encourage this method.</p>
<h3 id="jsdelivr">JSDelivr</h3>
<p>Using JSDeliver they provide a base URL and then you append the URI to the file
your program is interested in.</p>
<p>Example loading kado/lib/Parse</p>
<pre><code>&lt;script type="text/javascript" src=""&gt;&lt;/script&gt;
<p>NOTE: Kado modules are built using CommonJS and as such CommonJS must be used
to load kado modules.</p>
\ No newline at end of file
<h1 id="whykado">Why Kado</h1>
<h2 id="buildanything">Build Anything</h2>
<p>Kado is a powerful system that can be used to build websites, APIs, CRMs,
billing systems, anything really.</p>
<h2 id="solidfoundation">Solid Foundation</h2>
<p>Built upon the most tried and tested Node.js tool stack, Kado is a new tier in
development that hones in the development process.</p>
<h2 id="becomeaninja">Become a Ninja</h2>
<p>A Kado developer is empowered within a modern environment. Kado focuses the
developer on the problem the developer is trying to solve and washes away the
boilerplate code that clutters applications.</p>
<h2 id="builtfromexperience">Built from Experience</h2>
<p>The Kado tool stack has been curated through years of development and revision.
Security and reliability matter. On top of that Kado includes a production ready
process system that can scale to any size.</p>
<h2 id="getstartedtoday">Get Started Today</h2>
<p>Give Kado a try today and start embracing the power it can give your team.
Try our <a href="../guides/">Quick Start</a> guide!</p>
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment