Case

Vue component framework
and back-office rebuild for Nyx.

A nightclub management suite.

Nyx asked me to reshape their frontend architecture - a reusable Vue component framework shared across their applications, and a full rewrite of their largest back-office product. The platform is used by more than 250,000 people.

Mockup design of a Nyx project built by Emil Rosenius

At a glance

Client
Nyx Systems ApS
Engagement
Long-term contract
Role
Frontend architecture and frontend lead on the back-office application
Collaboration
Nyx's development team, with design by Nicolai Qvindbjerg
Stack
  • Vue.js
  • JavaScript
  • SASS
  • npm with semantic versioning
  • REST APIs
Delivered
  • A Vue component framework of 147 reusable components, shared through npm
  • Version 2.0 of the back-office application, built on that framework
  • Booking, events, shifts, memberships and a drag-and-drop floor plan editor

The client

Nyx is a full-featured nightclub management suite. It's made with the passion for providing a sublime service at ease, and features more or less everything you need to run a paperless nightclub - all cloud-based and at your fingertips.

Client website

The job

Nyx asked me to transform the frontend architecture across their 7 platforms. I managed the architecture and development of the shared frontend infrastructure their applications would build on in the years ahead.

With help from Nicolai Qvindbjerg on the design, I built an extensible Vue component framework shared across Nyx's frontend applications, and implemented it in a new version of their feature-rich back-office product. The framework still underpins Nyx's frontend applications today.

Atmosphere

From pen & paper
to a digital space.

iPad with Nyx installed and drinks on a table in a nightclub
Bartender serving a drink in a nightclub using Nyx
Employee holding using the table booking service in Nyx on an iPad
Employee holding an iPad running Nyx in a nightclub while serving champagne

What I did

While scaling the infrastructure, I took the lead on implementing the architecture as a version 2.0 of Nyx's largest back-office application. This included setting up the project and developing the front-end for key features like a login system, a shift management system, a membership approval system, an account management system, a settings management system, a booking system, an event system and a drag and drop table- and floor plan editor with direct integration to the new booking system.

Components implemented in the Nyx project

Reusable Components

The main goal of the new infrastructure was for my client's development team to save working hours in the future when implementing new features. To accomplish this goal, we built a fully extendable, scalable and modular component library with Vue.js capable of being shared across multiple platforms.

Graph showing the migration from Angular.JS to Vue.js in the Nyx project

One Brand, One Source

Through the power of npm and a strict semantic versioning strategy, we utilized the component framework to implement a new version of my client's 6 different frontend platforms. This created a solid foundation which enables my client to maintain their brand's identity across several platforms in a single place.

Design mockup of some Nyx features

Feature Implementations

From this point onward, my client's team and I began implementing features, building them from the framework's shared components instead of from scratch. It took roughly 4 months to implement the back-office application, which at that point communicated with more than 120 REST-API endpoints, while keeping the average bugs per month in the single digit range.

"Emil has proven to be very structured in his development process and always pays significant attention to detail in everything from business logic to front end UI, which results in viable and maintainable projects. In addition, Emil delivers on time and as promised but does not shy away from a challenge. I've followed Emil for several years and he has evolved quickly as a developer."

Nicolai Cornelis

Founder @ Nyx

Results

Nyx's frontend applications share one component framework, versioned through npm with a strict semantic versioning strategy. That lets Nyx maintain its brand identity across several platforms from a single place, and the framework still underpins those applications today.

147

Reusable components in the framework

120+

REST API endpoints behind the back office

~4 months

To implement the back-office application

This work is part of my frontend development and Vue and Nuxt development services.

Showcase

Great changes,
great results.

Mockup of the shift management feature in Nyx
Mockup of the ticket management feature in Nyx
Mockup of the event overview feature in Nyx

Looking for
the right developer?

Whether you're ready to start or just exploring your options, feel free to reach out. No commitment, no pressure.

I usually respond within 2 hours.

11+ years of experienceBased in Copenhagen