# V2
Original Josh is being developed from 2014 with bootstrap 2 and it has lots of backwards compatible code.
A lot has changed in these years, including browsers compatibility, better support for modern CSS and JS.
so We decided to re-imagine Josh with modern code and standards.
Thus, V2 is Born.
# Principles
With V2, we wanted to have many new principles while developing it. some of them include
Following Code Guidelines (opens new window)
# JavaScript
- Use only one plugin for each type (ex: select, dropdowns, date pickers) except for charts
- Prefer JS plugins over jQuery plugins
- Use plugins which are in active development
- Avoid jQuery as much possible
- Use ES6 wherever possible
- Optimize code for faster page loading
# CSS
- Use sass/scss to generate all css
- Follow
7-1
Pattern i.e. modularscss
files - Proper bootstrap over-riding
- Let npm packages take care of vendor prefixes
- Compress/minify all output css files.
So at the end, you will find v2 not only faster on browsers but code is also well organized!
# Browser Support
We Support all modern browsers also including IE 11, as of 01-2020, it supports 93.88%
of Total browsers.
You can find all browsers list here (opens new window)
that % may increase in future.
Note: If you want to support other browsers, you can use polyfills but since bootstrap 4 also doesn't support many older browsers, you need to think your strategy as it can add extra load of work.
# Customization
Since Josh is a developer product, we want to make it easy onboarding for new developers, so we will be adding extensive documentation, how to videos.
# Options options options
Yes, you read it right...we want to add many options for left menu, colors, breadcrumbs everywhere.
in a nutshell, simple product to master but you can provide different UI for each client so learning curve will be less yet each client gets different product.
# The release plan for v2
We will release alpha versions until we make it following modern standards and adding enough features.
And then 2 beta versions
And then the stable release.
We push one update every Saturday.
# Alpha Stage:
- Can have drastic changes to structure ex: scss files
- Can add/remove plugins
# Beta Stage:
- Will try to make app more stable
- Bug fixing if any
Then, we will push an update for every week or bi-weekly with more layouts, options, configurations.