Technology

Solomon takes advantage an accessible and modern tech stack in order to iterate quickly and encourage community contributions.

Ethereum

Solomon's core technology is built around Ethereum, which is still the gold standard for smart contract development, with great documentation and mature development practices. Solidity is the most widely used language for the Ethereum virtual machine.

Frontend

Aside from blockchain contracts guaranteeing buyer protection for online transactions, Solomon's core strength is its extensible frontend plugin. Using popular, modern, and light frameworks and development practices is key for growing a developer community and having the best chance of avoiding future tech stack obsolescence.

Monorepo

We use Nx for code organization and development workflows. Nx is aa opinionated framework for organizing a code base in reusable modules. See an overview of how we use Nx in the architecture section.

Vue3

Vue3 is a significant upgrade over Vue2, which is one of the most popular javascript frameworks. It enables more convenient Typescript integration, a composition API for better code organization and reuse, native Postcss integration, and numerous speed/build size improvements.

Solomon's plugin developed as a Vue3 component, although we provide builds that work natively in the browser and other populate frameworks.

Vite

Vite is an extremely fast and convenient development server built by the creator of Vue. It integrates cleanly with Vue3, and removes a lot of the headache and bloat of Webpack.

VitePress

VitePress is a fast static site generator geared towards building documentation sites.

This site is built on VitePress.

Services

For the various services surrounding the smart contracts and frontend plugin, Solomon evaluates requirements and tech options, and attempts to choose the best one for the job.

Node/Typescript

We use Node with Typescript to take advantage of the wide availability of Ethereum libraries written in JS/TS.

Python

We often use Python when speed and safety are less important than ecosystem and ease of development. We use MyPy for static type checking.

Rust

Solomon uses Rust when possible to take advantage of its speed and safety.