eli5: Making things for stuff takes a lot of time. Blockchains use lots of stuff, so it takes more time to make things for them. FirstByte is really smart and creates "negative-time" so you have more time to make your blockchain things.
tl;dr We are making it dead-simple for you to create native apps and websites for and with ByteBall using the Quasar Framework. This post introduces the project, its goals and timeline. Follow @first-byte to keep up to date!
byteball is awesome, and there are really a - lot - of - great - projects being built with it... but there should be more. This project seeks to make that a reality by providing developers with a dedicated (and mildly opinionated) starter kit for accelerating the development of their byteball projects.
as they with great ideas may not
necessarily great developers be.
Especially within the domain of applied cryptography and virtual currency, novice’s mistakes are more likely than beginner’s luck. FirstByte minimizes these risks by enabling those with moderate skill (or a willingness to learn) to produce shippable best-practice apps for all major computing platforms from one code base and in record time. Tailored to meet the needs of both Byteball enthusiasts and professional developers, the core of FirstByte is built on the Quasar Framework and byteball.js - and is distributed under the permissive MIT license.
The Quasar Framework is the super-charged node.js developer's darling that uses es6, babel and webpack (among other pieces of core tech) that provides a way to easily build reproducible best-practice Vue.js front-end projects for any operating system from the same codebase. Whether cordova apps for iOS and Android; Electron apps for Windows, MacOS and Linux; or even SSR+PWA websites - Quasar has you covered.
So now what?
At this very moment, the Quasar team is getting ready to release its 1.0.0-alpha, and FirstByte is the very first official, extended "starter-kit" that will be released with the 1.0.0-beta. It will serve as the "golden standard" by which all other extended starter-kits for 1.0 will be measured.
With FirstByte, the core team of Quasar is raising the stakes by extending its best-in-class developer experience to the crypto-realm. By integrating a fully-rigged set of testing harnesses and range of back-ends, Quasar will have graduated from being merely the best front-end framework to a full-stack solution flexible enough for the most discerning tastes.
When this first phase of the project is completed, there will be a FirstByte hackathon run by Quasar and Byteball with the support of Utopian (date and location TBA).
Inheritance is a powerful pattern, and this project will leverage it. FirstByte in and of itself is a lerna-based monorepo hosted at a public git repository where all of the development and CI pipelines are managed. When it is viable, it will be available as a WIP via NPM and YARN - as well as from IPFS and DAT.
Quasar delivers a number of things “from the core” that are available in all projects:
- quasar-cli for best in class development with HMR (even in electron)
- over 100 curated and pixel-perfect Material Design components
- the innate ability to build SPA, PWA, SSR, Cordova and Electron apps
- All ES6 language features
- ESLint in Standard (or AirBnB) style
We envision the creation of a number of different flavours of FirstByte starters, but for the time being we will just be making the "Pure flavour" as described below.
Each of the flavours of FirstByte are tailored for special needs, and the template (from which the flavours were constructed) will be provided so that the concoction of new flavours can be made with a simple pull request.
- Pure - just the basics, for master chefs and those who aspire to greatness
- Caramel Sweet - the simplest of the bunch, hard to adapt, easy to use
- Black Salt - with a special focus on security, anonymity and NAT punching
- Bitterly Complex - rewarding for the connoisseur of files
- Sour and Severe - so the deals don’t have to be - a contract focussed flavour
- Umami - generative and distinguished - only for professionals
The Pure flavour will be a minimal setup that extends the basic Quasar core with:
- a collection of maintenance scripts for development, publication and distribution
- multiple test-runners, including Jest, Cypress and Webdriver-based E2E with sample tests
- ESLint extended with A11Y “lifting”
- CI pipelines and dockerfiles
- GraphQL / Apollo / Prisma API and DB
- the Byteball.js library
- integration with now.js for immediate project delivery
- automated documentation of APIs and functions
- robust system configuration and secret management using ENV variables
- developer configurable colors, icons, background images, graphs and animations
- i18n language translation engine rigged for use with content, not just interface
The Caramel Sweet flavour makes a number of decisions for the developer regarding authentication, authorization, web storage, internationalisation, routing and uses a dead-simple provisioning approach with the free tier of now.sh - so that inside a matter of minutes an app can be launched.
For security professionals, Black Salt is not intended for use as a web-application, but rather within the trusted domain of the operating system. With ngrok integration, 2FA and token authentication, in-memory decryption of local data, this flavour is a great starting point for privacy and security-first applications.
The Bitterly Complex flavour treats files as first-class citizens and allows for several methods of interaction with IPFS, the local filesystem and specialist concerns like uploading, transcoding and even base64.
The Sour and Severe flavour is focussed on writing, verifying and using smart-contracts, perhaps for those interested in building a platform for trading or exchange.
The Umami flavour is for researchers: Generating, creating and visualizing datasets harvested from the DAG (or even master-nodes!), cross-referenced with other sources and creating highly reactive force-graphs, trees and other delta-based sets of information. If the developer is interested in making predictions about performance, this would be the place to start.
In addition to that which is provided by Byteball, Quasar, vue.js and byteball.js, the FirstByte Pure starter will describe in detail every component, plugin and script. The factors that make each flavour distinct will be described in minutia. Partially generated from JSDoc comments, and partially handwritten by the authors, the approach to be maintained is a “living document”. Further, the entire documentation will be i18n based and translated using the Utopian.io / DaVinci service.
scaffolding of the starter-kit
extension with backends
integration of byteball.js / other libs
integration with @quasar 1.0 distribution channel
baseline app builds
- @nothingismagick (lead)
- @phearzero (integration)
- @rstoenescu (integration & review)
- @gregory.latinier (review)
- @fabien (review)