We embrace a wide range of tools, languages, and frameworks, and we are always tracking the latest trends and technologies in the world of HTML5, web, and Javascript development. That said, we have a few favorite tools that we use again and again to deliver polished and high-performance applications to our clients.
Built on a tight integration of server and client technologies, Hoist provides an opinionated yet flexible foundation for building and operating enterprise web applications.
Support for soft-configuration, user preferences, activity tracking, and more come ready to use with client and server-side APIs and utilities. Developers and DevOps admins can adjust configuration parameters across multiple environments, view and search server logs, and access application-specific admin modules from within a dedicated and extensible management application.
Simple but effective activity, error, and performance tracking is integrated with core operations such as application loading and Ajax requests. The admin application allows for browsing, searching, and quick charting of activity data and daily visits. Monitoring APIs are provided by the server-side libraries to collect and check business-specific metrics. Runtime checks and alert thresholds can be configured and run via the admin client or monitored via JSON endpoints.
Custom components and plugins provide some large and small additions to the standard toolkits we deploy toolkit. Examples include a grid-based editor for streamlined CRUD interfaces, bundled and customized D3 visualizations, tools for dashboard layout and management, and specialized components for data-dense mobile views.
React: A framework for modern JavaScript UIs
The fundamental technology for the Hoist front-end is React, the innovative (and industry standard) framework for creating modern JavaScript UIs. React provides a declarative, flexible, and predictable glue layer for building components and applications. We provide a suite of highly customized React components for data manipulation, layout, and visualization. Using React, we are able to integrate best-of-breed libraries such as BlueprintJS, HighCharts, AG Grid and D3 seamlessly into Hoist.
Along with React, we make extensive use of MobX, an observable-based state management system. MobX is ideal for building highly Reactive applications with minimal boilerplate, allowing developers to focus on business logic, and user experience, rather than state management.
Grails: enterprise Java for an agile world
We make extensive use of Grails, a framework for rapid web application development underpinned by enterprise-grade Java technologies such as Spring and Hibernate. Grails provides a flexible yet robust MVC architecture, strong support for data validation and transactions, and a wide ecosystem of plugins (including our own custom plugin, Hoist).
Grails is based on Groovy, a dynamic language built on Java that brings the expressiveness and power of modern scripting languages (such as Python or Ruby) to the JVM. Groovy is fully interoperable with Java, allowing us to integrate our clients’ existing Java services and APIs with a modern web toolkit.
With much of our development work in the financial sector, we’ve found the combination of a modern web framework and enterprise-grade Java support to be an especially winning combination. We’ve integrated our applications with industry-standard APIs from Bloomberg, FIX messaging feeds, Documentum, realtime pricing providers, and more.
Modern web tech: Javascript data visualization, HTML5 canvas, and CSS3
Hand-in-hand with Grails and React, we employ a range of other web technologies to bring our clients’ ideas to life. These include web-based data visualization libraries such as the D3 Toolkit and advanced charting libraries such as Highcharts. We’ve leveraged tools like these to build high performance custom components: canvas-based heatmaps that can visualize the performance and risk of huge portfolios at a glance, or charting tools to review multi-year performance histories or data-dense price charts.
We have embraced CSS tools such as Less and Sass, and can’t imagine working without them. We consider the visual presentation, iconography, and typography of all our projects to be essential components to their effectiveness and success.