Art Deco™: The Node.JS Development Company In London

Art Deco is a UK-based, professional web development company: we implement back-end servers in Node.JS that power websites and services for people and enterprises, utilising cloud architecture to handle variable loads and minimise costs. We also create front-end applications and progressive web apps (PWAs) that connect to back-ends using the gold standard techniques of software engineering. Finally, we make novel developer tools of exceptional quality for ourselves, and contribute them to Open Source for thousands other developers. Art Deco crafts noble software of outstanding standard and provides the best customer service to its clients.

section break

section break

Node.JS — Your Language Of Choice

Software Engineering is an art, science and technology combined. It helps to automate processes and improve the standard of living, relieving humans of monotonous operations that can be solved using a computer program. 100 years ago, with the advent of new machinery, there was a promise for the future where people's time could be taken off of work, and put into spending their lives focusing on human tasks and communications. This has partly been achieved, but we have a long way to go still, and after reaching the required stage of progress in hardware, we are now peaking in the course of software evolution. The species that is increasingly dominating the environment and taking the central stage in this process of natural selection of the fittest is Node.JS. It is no surprise that in today's word, characterised by globalisation and interconnectedness, the programming language born on the web, is becoming The One of the web, who will redeem it and remake it in the way it's supposed to be.

Node.JS at the epicentre of modern software development

By bridging the gap between front-end development and back-end programming, and utilising the agility of functional paradigm together with the abstractions of OOP that help developer experience and documentation, Node.JS is winning hearts and souls and finding hundreds of new fans, both indie developers as well as development companies, all over the world each day. The applications of today designed to connect services, users and automatons can benefit the most when they are written in Node.JS, and Art Deco specialises in this field of modern web computing, applying the best practises of classical software engineering such as thorough automated testing, documentation plentiful of examples, and user-centred design together with more present-day trends of cloud and serverless deployment, single-page and progressive web apps and open source code coordination techniques like NPM scopes and GitHub orgs that help to pass the codebase between hired and future teams.

Our approach is that each program is a piece of art that can be perfected to the single line of code by employing a scientific method that consists of conducting research to understand the problem at hand, coming up with a possible solution, evaluating it against business requirements while rigorously and critically documenting the findings. The outcome is technology that is unique to each client, easy and pleasant to use for her customers and stakeholders, and straightforward to understand and maintain for other teams of developers.

section break

art deco fan Art Deco

Art Deco

Art Deco is a style that came into existence almost a hundred years ago and stretched for a few decades, and although the early French "high" Art Deco is mainly presented in the works of sculptors and textile and furniture designers, the majority would recognise it for everything modern that appeared in the 1920s: skyscrapers, ocean liners, cinemas and home technology such as radios.

Because tech is always logical and scientific, it is reflected in Art Deco's usage of geometrical shapes as influenced by cubism, however what makes it decorative is its ability to keep in touch with nature — Art Deco's themes would more often than not incorporate animal and plant life, so that people can feel more relaxed at home. It also portrays human as a powerful spiritual entity that with his mind is conquering the world and creating a better future. All of these concepts are the foundation of the philosophy of our company: we believe that the human race at the moment is going through the next coil of technological emergence and the last century has laid the foundations for the development of the web, cloud computing and AI.

Despite the benefits that technology brings us, we also recognise its potential to lead people astray and consume them, rather than being consumed, so we stand by the intrinsic human values such as face-to-face communication and connectedness with nature and advocate the good use of technology that helps to maintain those morals but does not replace them. Finally, we highly appreciate aristocratic virtues such as rationality and integrity, reject mainstream opinions and work on making noble software that through its quality and modern simplicity improves the world.

section break

art deco fan Implementation

Implementation

In our code, we use both functional and object-oriented approaches according to the problem being solved, as well as the latest standard of JavaScript programming language with EcmaScript modules and the most up-to-date syntax including object spread and rest operators, arrow and async functions and JSX components. When others choose to stick to the previous version of the standard and keep using require statements instead of imports just because Node.JS has not added the support for the later and install Babel for their JSX, we created our own 0-dependency transpiler ÀLaMode, which offers a unique solution by transpiling the source code using regular expressions, and allows to write modern code without being paused by insufficiencies of the runtime.

Like the transpiler, our implementations are free of external code and are straight to the point: they focus on solving the problem at hand with the maximum help of the language itself so that no client's time is wasted on setting up and adjusting 3rd party tools. If you're looking for a Node.JS development company that shows it can implement its own toolchain for daily work and thus proves its expertise, rather than just takes a free solution used by everyone else, choose Art Deco. Then your software won't be like anyone else's.

section break

art deco fan Automated Testing

Automated Testing

Quality Assurance is the field where Art Deco is second to none. We have invented a testing framework called Zoroaster that introduces the concept of context-testing into the JS world and helps us and other developers to keep their testing infrastructure separate from test cases' flow, document it and receive in-editor documentation hints on how to use its methods, verify its correctness to ensure double standard of quality assurance (the so-called testing the tests practice), and share it across packages to save valuable time that will be spent on coding and writing tests.

Most of our JavaScript functions are written in pure, functional style that allows them to undergo elementary unit-testing using the mask-testing feature of Zoroaster, where test logic for each method is setup only once, while we concentrate on comparing mappings of inputs to outputs in the most efficient manner. Final systems are covered by integration tests on different levels, including integration between modules as well as between APIs, browsers and cloud services. Automated testing not only proves the correctness of programs and their meeting of the requirements specification, but also serves as a regression basecamp that guarantees that any future changes won't break the existing implementation.

section break

art deco fan Documentation

Documentation

Creating programs is not just about writing code and returning it to the client. Documentation is an integral part of the process that helps to keep track of work that was done by exposing it to developers and other project participants in natural language, diagrams and examples. By providing 100% documentation coverage, our Node.JS development company makes sure that the execution of each feature of the system can be reproduced and understood by someone who is not an advanced specialist in it. It also serves as an outer layer of quality assurance, since by embedding examples and running them to compile documentation, we can visually see that the system is working as expected, and any unanticipated changes will be picked up by the documentation writer when submitting the code to source control system (e.g., GitHub).

Furthermore, when it comes to maintenance, documentation will always aid in getting organised very quickly and catching up with ideas that the initial develop put into practice. Art Deco is a big fan of pure JSDoc and does not employ TypeScript, but we go beyond simply annotating methods in code. Our practice involves writing type files in XML format, where each configuration option is described. The types are then embedded both in README files, as well as the source code, so that there is a single source of truth. In addition, we also programmed a Documentary documentation framework, that provides maximum productivity for us by allowing to automatically embed examples and their output, and cache it which saves an extraordinary amount of time so that our clients don't have to pay for our developers copying and pasting code into the guidelines manually each time there's a change.

section break

art deco fan Optimisation

Optimisation

Since our source code is written in ES6, and organised by NPM packages, we had to find a way to deliver the final product which is compatible with browsers, or is easy to install as a Node.JS system. To achieve that, we use Google Closure Compiler that puts source files together and produces an output with advanced optimisations, such as peep-hole optimisation, variable name mangling and others. The compiled JavaScript code is smaller in size and can be transmitted to users' browsers faster, but it also allows to us to write modern JavaScript, without having to worry about older browser compatibility.

On top of that, we also minify websites' CSS files (rename class names, remove whitespace, etc) and concatenate them into a single file for faster page load and thus greater user experience. Since the compiler had only been used for web bundles previously, we invented Depack: the build tool that makes it possible to run the compiler against Node.JS programs and produce a single optimised executable binary or library file. This means that the gross package delivered as the overall system, be it a web server, CLI tool or a library to work with APIs, will not have any dependencies that take time to install and link, occupies less disk space, runs faster and can be shared with 3rd parties without worrying about revealing the source code, due to the fact that the output is obfuscated (the source maps are available to clients in separate files).

section break

art deco fan NPM Packages

NPM Packages

NPM is the package manager for Node.JS with almost 1 million packages being published online for free use. Art Deco recognises the value of Open Source, but also exploits the infrastructure created by NPM that allows to solve the dependency management problem with the ease of mind: when writing software for ourselves and clients, we split designs into logical packages, and create them separately using our package bootstrapper MNP (my-new-package) that spawns packages with the most up-to-date scaffolding. Smaller packages are then imported by larger ones, and all of them are published on NPM, either in private or public scopes (e.g., our Open Source projects).

This approach ensures that any future software pieces can quickly install existing ones, whereas we save time and know that there's no bugs in installed code, because each package has been tested separately. Moreover, the philosophy behind packages is Unix-like, i.e., that programs should be simple and do mostly one thing, but do it really well. We have published over 150 packages that are really good in their implementation, testing and documentation, and when they are put together, they achieve tremendous results with superb quality. NPM allows us to apply the DRY (don't repeat yourself) principle in practice of software engineering, and organise code by scopes: we can create a scope for our clients and share the access permissions with them, so that all the infrastructure can be handed over quickly, securely and responsibly.

section break

eagle over software engineering

section break

Regenerating Node.JS Ecosystem

Node.JS, the most modern programming language of today, has risen as a reaction to traditional heavy applications that take ages to compile, an army of administrators to manage, and cost enormous amount of money to introduce and maintain. The Node.JS runtime, on the other hand, based on the JavaScript programming language, has given independent developers and smaller teams freedom to write fast, easily deployable and testable software systems that transform from a prototype to production in a matter of days, not years.

However, the ecosystem's direction of growth around Node.JS and its package manager NPM has been hijacked by corporations, that want to dictate their own terms of use: Microsoft would like people to use TypeScript instead of JavaScript and is successfully advocating it by playing on the fact that students are mostly taught Java at Universities, so that they tend to choose what they know, that is, a typed object-oriented programming language; and Facebook is dominating the field of web-development by maintaining the React library tied up to such tools as Babel and Jest, which are gigantic in size and contain bugs. Moreover, there's no need to pretend that these companies are doing it for free: every developer won will result in either marketing, power or financial gains to them. The main issue is that to solve simple problems, the solutions employed are unnecessary complex, involve installing 1000s of dependencies for a product at hand, and lock developers in the mode of thinking and working prescribed by someone else.

JavaScript and Node.JS were once about freedom, openness to experimentation and close friendly community, and now, like all good things that become popular, it is poisoned by ignorance, unprofessionalism and the belief system that anyone who has installed a 3rd party dependency, is an expert developer and those who don't agree with the paradigms established by corporations are weird outsiders. Art Deco aims to restore the intrinsic philosophy behind JavaScript and Node.JS as open-minded, efficient and solution-focused instruments and regenerates the development process of back-end and front-end applications with utilities that are simply sophisticated and sophisticatedly simple, for ourselves, and others, so that the work process comprises purely of writing code, tests and documentation with minimal tint of branded technology but maximum productivity. In other words, Art Deco makes tools for developers, rather than making developers its tools.

log babel install process
capitalised power, systematic fear, strategic sabotage
timewave zero simulation

Examples Of Innovative Contributions

As a Node.JS development company, we were not happy with the state-of-art that existed in the field. Because programming is easy and fun when you know how to do it properly, we have created all our infrastructure from scratch, that enabled us to generate numerous use-cases for ourselves, and fill in all the features required to start a very efficient Node.JS development house that produces software of utmost standard of quality quickly. All tools are contributed to Open Source and are constantly improved.

Documentary

The documentation engine for organising READMEs with fast and cached embedding of examples' source code and their output, generation of tables of content and printing tables with types annotations. It is extensible with JSX components and greatly improves productivity.

Zoroaster

The context-testing framework that separates test infrastructure logic (set-ups and tear-downs) from test cases. Enables publishing of contexts as separate packages, provides JSDoc annotations to testing APIs and allows to write masks where input are mapped to outputs via non-js files.

Depack

The build tool working with the Google Closure Compiler that produces optimised bundles for web browsers, as well as establishes the process of compiling Node.JS packages into single executable binaries or library files. Also supports JSX transforms and Preact integration.

ÀLaMode

The source code transpiler for simple transformation of import/export statements into require calls/module.exports assignments. Has 0 dependencies, keeps source code readable and supports JSX.

Splendid

The static website generator that allows to define JSX components and use them in HTML. Optimises the CSS and JS output with Depack, and mounts Preact components only when parent elements become visible.

Idio

The back-end server based off Koa2 web-server but with Koa optimised with Closure Compiler and providing all essential middleware for the modern web dev. Can render server-side JSX, transpile client-side JSX files on-the-fly and automatically reload routes.


Contact Us

Art Deco Code Limited
International House,
24 Holborn Viaduct,
London, EC1A 2BN Please get in touch for your next Node.JS, cloud and front-end project.
{/*  allora@artd.eco */}

bird bird
coffee cup