VisualJS
Visual Basic reimagined for the internet age
Install / Use
/learn @yazz/VisualJSREADME
VisualJS
Visual Basic reimagined for the internet age

Docs (in progress)
https://yazz.com/visifile/docs/book/main.html <br/><br/><br/>
PDF of last physical magazine (March 2020)
https://yazz.com/visifile/docs/yazz_march_2020.pdf <br/><br/><br/>
What is VisualJS?
VisualJS is a browser based tool to build internal web applications using reusable components. It works with PC/Mac/Linux (desktop application or NodeJS) or as a container (Docker, Kubernetes). To develop an app:
- Start the VisualJS web server
- Create an app in your web browser
- Share the app with others by sending them the app URL
VisualJS is perfect for prototyping apps. Some demo apps can be found at https://yazz.com <br/><br/><br/>
Benefits
- Easy to use: Easy to use drag and drop visual interface (like Visual Basic)
- Supports multiple web wallets: Currently supports Metamask
- Standard scripting language: Uses Javascript
- Permissive license: Open source MIT license so you can do whatever you want with it
- Easy to distribute apps: Apps can be exported to a single HTML file and sent by email (even SQLite database apps)
- Works almost anywhere: Windows, Linux, Mac, Raspberry PI, NodeJS, Docker, Kubernetes, OpenShift, Istio
- Works offline: Editor works both locally and offline
- Reuse existing databases: Can read MS Access databases (even Linux or Mac can read MS Access files) <br/><br/><br/>
Features
- Build local or online dApps as a series of forms
- Add components to a form, such as buttons, images, input fields
- Add interactivity using Javascript
- Connect to databases such as Postgres, Mysql
- Connect to REST APIs
- Connect the outputs of one component to the inputs of another
- Build Microservices
- Each app has a built in SQLite database
- App source code saved as a single .vjs file <br/><br/><br/>
What it can't do
- Build slick UIs for public facing websites
- Build mobile apps
- Build self contained executables (need to pass in a .vjs file)
- High performance apps
- Low level systems <br/><br/><br/>
Quick Install Guide
NodeJS on Mac
Assuming that you have NodeJS, NPM, and Git installed, enter the following commands at the command line:
<pre style="display:inline;">> git clone https://github.com/yazz/visualjavascript.git > cd VisualJS > npm install > xcode-select --install > npm uninstall sqlite3 > npm install sqlite3 --build-from-source --target_arch=arm64 --fallback-to-build > npm start</pre>Browse to http://0.0.0.0:80 to open VisualJS <br/><br/>
NodeJS
Assuming that you have NodeJS, NPM, and Git installed, enter the following commands at the command line:
<pre style="display:inline;">> git clone https://github.com/yazz/visualjavascript.git > cd VisualJS > npm install > npm start</pre>Browse to http://0.0.0.0:80 to open VisualJS <br/><br/>
Docker
Make sure that you have Docker installed. Then:
<pre style="display:inline;">> docker run -p 80:80 yazzcom/yazz:march2022 </pre>Browse to http://0.0.0.0:80 to open VisualJS <br/><br/>
Useful links:
- Demo which works on desktop web browsers here: https://yazz.com/app/appstore.html
- Link to PDF docs: https://yazz.com/visifile/docs/yazz_march_2020.pdf
- Link to Hacker News Post (when it was known as Yazz Pilot): https://news.ycombinator.com/item?id=21734845
- Link to Kubernetes Operator (Previous name was AppShare) https://github.com/leskil/appshare-operator <br/><br/><br/>
Command line options:
--cacert1 Public HTTPS CA certificate 1
--cacert2 Public HTTPS CA certificate 2
--cacert3 Public HTTPS CA certificate 3
--debug Allow to run NodeJS in debug mode (default false)
--deleteonexit Delete database files on exit (default false)
--deleteonstartup Delete database files on startup (default false)
--help Output usage information
--hostport Server port of the central host (default 80)
--host Server address of the central host (default yazz.com)
--https Run using a HTTPS (default is false)
--jaegercollector Jaeger Open tracing collector endpoint (default not set) eg: http://localhost:14268/api/traces
--loadjscode Load the following JS from the command line (default not set)
--loadjsfile Load the following JS from a file (default not set)
--loadjsurl Load the following JS from a URL (default not set)
--locked Allow server to be locked/unlocked on start up (default true)
--maxJobProcessDurationMs Maximum time to wait for a job to complete (default 10000 ms)
--maxprocessesretry Number of processes to retry when all cores are busy (default 10 processes)
--port Which port should I listen on? Default 80 or 3000 (if not run as sudo)
--private Private HTTPS key location
--public Public HTTPS certificate location
--runapp Run the app with ID as the appstore (default not set)
--runhtml Run using a local HTML page as the appstore (default not set)
--showdebug Allow to show debug info (default false)
--statsinterval Allow to show debug info every x seconds (default 10 seconds)
--showprogress Show progress when starting VisualJS (default false)
--showstats Allow to show stats debug info (default false)
--usehost Use host name [usehost]
--useselfsignedhttps Use self signed HTTPS for local development (default false)
--version output the version number
--virtualprocessors How many virtual processors to run (default 6 processors)
<br/><br/><br/>
Roadmap
- 2013 Started developement in Clojure/Clojurescript
- 2014 Named Clojure on Coils
- 2015 Development slows, as focus moved to Light Table / Eve project
- 2016 Clojure development stopped as Eve making good progress.
- 2016 Started Development of Visifile in Javascript, an search engine for internal enterprise data
- 2018 Eve project shuts down
- 2018 Visifile launches but finds out the problem is too difficult to solve. Pivots the product to a low code tool (also because Eve has been shut down)
- 2019 Visifile code removed from codebase
- 2021 Enterprise App Store for ISVs to discover, create, buy, and sell VisualJS components and apps to enterprises
- 2021 Support for Istio, Rancher, KNative, OpenWhisk, OpenFaas, AWS
- 2021 Enterprise connectivity via Red Hat, IBM, Salesforce, SAP, Oracle, Stripe, and other enterprise components
- 2021 Desktop version in Mac app store
- 2021 Paid for hosting options
- 2022 An editor to make programs in VR/AR editor
- 2025 Machine Learning and vision components
- 2027 Miniature thumbnail size version
- 2030 Dust sized version
- 2032 Dust sized version with internal camera for medical diagnoses applications <br/><br/><br/>
FAQ
<br/><br/><br/>
FAQ - High Level Questions
What is VisualJS?
VisualJS is a tool to build internal web applications. Applications are built using pre-built graphical and server side components, with glue code written in Javascript. VisualJS can run on Windows, OsX (via the Mac App store), and Kubernetes and Docker containers. Ideally VisualJS is used for small throwaway or demo apps, but can also be used for more complex apps since it also contains an embedded SQLite database.
What is VisualJS's killer feature?
VisualJS's killer feature is the ability to create simple webapps extremely fast, on almost any platform, with no licensing or troublesome installation procedures. The application can then be distributed as a single HTML file WITHOUT even needing the original VisualJS runtime.
Who should use VisualJS today?
An ideal user for VisualJS is someone who wants to build small web apps for internal use (such as demos), or someone who wants to do small data processing tasks. So far there have been independant people and large enterprises have used VisualJS for building demos and for small data processing tasks.
What does VisualJS mean by Self Service?
When we say Self Service we mean that VisualJS can be used by people who are not professional programmers. This is possible because VisualJS has a drag and drop user interface which makes it easy for "non techies" to design and build applications. Also, many components included in VisualJS have a custom design time graphical editor which make it easy to configure them.
How much will VisualJS cost?
VisualJS is free to download and use. It uses the MIT license so you are free to copy and distribute VisualJS applications that you build. VisualJS, the company behind VisualJS may release a paid hosted version at some point which will most likely be a web based service (like hosted Wordpress).
Is VisualJS Production ready?
Yes, VisualJS is production ready and has been used in many enterprise environments.
Is there commercial support for VisualJS?
If you require commercial support then please go to https://yazz.com. If you want a consulting assignment with VisualJS our email is contact@yazz.com
I'm worried about vendor lock-in. What happens if Yazz goes out of business?
VisualJS is Open Source so you can download the opensource repo or fork the Github repo. VisualJS is also based on VueJS, HTML, and Javascript so you can slowly migrate applications off VisualJS to similar technologies in the Javascript ecosystem if needed.
