Yazz Pilot is a tool for building internal web applications. It can connect to Rest APIs, Postgres, and other stuff. JavaScript is used for scripting events and writing code. There is a demo which works on desktop web browsers here:
Demo: https://yazz.com/app/homepage.html
Link to PDF docs: https://yazz.com/visifile/docs/yazz_march_2020.pdf
Link to Hacker News Post: https://news.ycombinator.com/item?id=21734845
- Build apps apps in minutes using drag and drop UI
- Fast to deploy on Docker or any Kubernetes cluster
- Can run with NodeJS
- Reuse via pre built components such as buttons, text boxes, and data access components to talk to Postgres, Mysql, or REST APIs
- Can automatically pipe changes from one UI component to another
- Drag and drop UI interface
- Code business logic in Javascript
- Each app has a built in SQLite database
- Open source MIT license
- Can run in Docker, Kubernetes, or OpenShift, as a Snap package, or locally on Mac, Windows, Linux, Raspberry PI using NodeJS
- Can build Microservices
- All apps can be saved as a single .pilot file
- Apps can be saved as a single HTML file and sent by email (Even SQlite based apps)
- All code is stored as immuntable, and identified by a SHA256 hash
- The Yazz editor and output programs can work offline without internet connectivity
- Extra UI or server components can be build as plugins (as .pilot files)
- The Yazz extensible IDE allows you to build new ways of editing code. Currently a text editor and a Visual Basic style editor are included
- An App Store so that Enterprise users and third party ISVs can discover, create, buy, and sell Yazz components and apps
- A VR/AR editor
- Paid for hosting options
- Support for Istio, Rancher, KNative, OpenWhisk, OpenFaas, AWS
- Machine Learning and vision components
- Enterprise connectivity via Red Hat, IBM, Salesforce, SAP, Oracle, Stripe, and other enterprise components
First you need to run Yazz Pilot, assuming you have Docker installed:
> docker run -p 80:3000 -d zubairq/pilot
......................................................................................................
Yazz Pilot started on:
http://0.0.0.0:3000
Upload a micro-service:
> cat a.js
function(args) {
/*
rest_api('test3')
*/
return {ab: 163}
}
> curl -F '[email protected]' http://localhost:3000/file_upload
Finally browse to the following URL in your browser to see the microservice running:
http://0.0.0.0:3000/test3
docker run -p 80:3000 -d zubairq/pilot
......................................................................................................
Yazz Pilot started on:
http://localhost:3000
snap install --devmode --edge pilot
pilot
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:1234:1234 bobrik/socat TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock
docker run -p 80:3000 -d zubairq/pilot
http://localhost
1) Install GIT from https://git-scm.com/downloads
2) Install Node.js 8.9 64 bit installer from https://nodejs.org/en/download/
git clone https://github.com/zubairq/pilot.git
cd pilot
sudo npm install
node src/electron.js
nexe src/electron.js -r public/ -r src/ -r package.json -r node_sqlite3.node -o pilot
--help output usage information
--version output the version number
--port Which port should I listen on? Default 80 or 3000 (if not run as sudo)
--host Server address of the central host (default is local machine IP address)
--locked Allow server to be locked/unlocked on start up to other machines in intranet (default true)
--deleteonexit Delete database files on exit (default false)
--deleteonstartup Delete database files on startup (default false)
--runapp Run using a local app on startup (default not set). "homepage" often used
--https Run using a HTTPS (default is false)
--private Private HTTPS key location
--public Public HTTPS certificate location
Yazz Pilot's killer feature is being able to build simple applications in minutes. It is run as a container and has no dependencies.
Yazz Pilot's long term vision is as a system for embedded computing, for personal automation and medical applications. It could be used for personal automated assistents, such as helping automated devices, or for small medical devices that can be inserted into body using TensorFlow and tiny cameras for detection and processing of issues with the body. We are developing an app store, and initial versions of Yazz are building UIs for internal enterprise apps, but we also believe that we should support systems which do not require apps, as some systems can use autodiscovery of components to each other to work. As an example, if a particular cell type is found by computer vision which is not recognised, Yazz could go out to the network to see if another compnent recognises this cell
Yazz breaks down all problems into single function components. A component can call other components as well if needed
Yes, Yazz Pilot is production ready. Yazz.com itself runs on Yazz
No
Yazz Pilot has been tested with standard Kubernetes, Open Shift, and Docker. We will test with more versions, including Rancher astime goes on.
Anyone who wants to build small web apps for internal use on their intranet
The author is a huge fan opf Visual Basic 6 and earlier, and the VBX/OCX component ecosystems that existed in the 1990s, so the author of Yazz is trying to recreate the Visual Basic 6 ecosystem in Javascript.
The Scheduler is a NodeJS process which decides which worker processes to send server tasks to.
Using IPC (Inter Process Communication)
A component is the basic unit of code in Yazz, represented as a function in a .pilot text file.
The Visual basic style development environment in Yazz is just a Yazz component itself. Other development paradigms can also be built in, with a VR/AR development environment planned for the future using Oculus Quest and WebXR.
Yazz Pilot is free to download and use. We will be releasing a hosted version at some point.
We could work full time on Yazz but we made a conscious decision to work part time on it until we know we have product market fit. This is so that we make sure that we are solving real problems that people have in the real world. We are scared that if we went full time then we would lose touch with reality, as seems to happen with so many startups in this space. Of course, being part time is much harder, as things move much more slowly with regard to developing the product, but we expect that we will be more efficient since we won't be building stuff that isn't needed.
Not yet, but AI is planned in the future for machine vision and learning algorithms. Also AI may be used to match component inputs and outputs and for intelligent code completion in the IDE.
When we say Self Service we mean that Yazz can be used by people who are not Professional programmers.
If you require commercial support then please go to https://yazz.com
Yazz Pilot is Open Source so you can download the opensource repo or fork the Github repo.
I'm worried about vendor lock-in - what happens if Yazz stays in business but I still need to move off?
Yazz is based on VueJS, HTML, and Javascript so you can slowly migrate to similar technologies in the ecosystem.
We will be releasing our dev guidelines soon.
Yazz Pilot runs all server components in their own child NodeJS process, so if a component goes bad then Yazz Pilot will restart kill the NodeJS process, restart a new NodeJS process, and return an error code to the caller
Yazz removes the complexity of separate version control systems like git. Changes to your code are structured using distributed diff algorithms.
There is no relation except that both Unison and Yazz are based on the principal of immutable code.
StoryScript is a Glue code for multiple languages, whereas Yazz is only one dialect of Javascript
Some concepts of universality are taken from Eve
One of the developers works at Microsoft full time
One of the developers works at Goole full time, related to new Operating System concepts and Fuchsia
They have their reasons. Plus, they HATE Javascript. They much prefer .NET, Dart, Go, Typescript, and other cool stuff!
You need to save the apps that you wish to keep by pessing the button "Save as .pilot file" fro the editor.
Yazz's basic file format is text, so you can use any editor.
How does Yazz compare to https://www.anytype.io/?
As of January 2020 AnyType is still closed source. Anytype does use IPFS for storage which is a technology, along with QRI that Yazz is considering for data storage.
As of January 2020 Retool is a great SAAS offering
First off, yazz, uses VueJS under the hood to build UI components. Yazz is very different to all those frameworks as Yazz does not require deep coding skills or knowledge of HTML. You do need to know some Javascript to use Yazz though.
No
It doesn't. Well, Airtable is a database tool which can have apps built on top of as well, whereas Yazz Pilot really is to build apps on top of enterprise APIs and databases.
Anvil uses Python to build apps whereas Yazz Pilot uses Javascript. But Anvil is very good, try it!
Mendix is a commercial low code product owned by Siemens, and is a very different thing since it is closed source.
Outsystems is a commercial low code product and is a very different thing since it is closed source.
Node Red is a very intuitive system to process events and actions by linking nodes together. It has a different use case than Yazz.
Huginn is a very intuitive personal task handler
IFTTT is a web only SAAS task automator
Zapier is a web only SAAS task automator
Stdlib is great cross platform event handler
Delphi was a desktop IDE from the 1990s using Pascal as the programming language, and had a great set of controls and was even VBX (Visual Basic Custom Controls) comptible. Not many people use Deplhi today a it is mostly used for desktop Windows apps
No
No
Yes, we were wrong... here is what we wrote earlier against Javascript:
What is a connected client? A connected client is a device which connects to the world of realtime data from any Connected Client, whether it is a phone, a watch, a web browser, or anything else. But Chris Schmidt of Meteor says it far better than I ever could in this must see video:
https://www.youtube.com/watch?v=8G2SMVIUNNk
In the video Chris Schmidt talks about how the Meteor platform based on Javascript will solve the problems of the connected web. I agree that you can build amazing things with Meteor, but I do not necessary agree that Javascript is the most productive language in which to do this. I think that Clojure and Clojurescript can be used to let you build Connected Clients much faster, and all without Javascript.
But how can we say that Javascript is not the right language for this? Well, Javascript is very much like the early 8088 assembly languages of 40 years ago, where it can run in many places, but over time more and more high level languages were built on top of it, like C, C++, Basic, Java, etc. Javascript is going through exactly the same thing now and more and more languages are appearing on top of it. Like any challenged technology Javascript is evolving rapidly with ES6, to fight off any newcomers.
We were limiting ourselves to a very small subset of developers by being in Clojure/Clojurescript, whereas Javascript has a much larger developer reach
It is under development
Yes! One of the great things about Yazz is that it can be run offline in your own datacenter, or on your own PC, totally disconnected from the internet. We have even seen Yazz running on a standalone disconnected Raspberry PI.
As of January 2020 Bubble is a hosted web app builder, one of the first great online CRUD app builders.
You can join us here http://yazz-workspace.slack.com
The extension is ".pilot" but you can also use the ".js" extension for loading some simple Javascript apps