import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
We helped Assetmax AG to upgrade their application's user interface while preserving all functionality
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
Vodafone Flex makes it possible to easily activate, change and deactivate network services across the world based on SD-WAN technology
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
We joined forces with Rise Inc to create the most intuitive Bitcoin wallet on the market
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
Comm8 needed help with a complete rewrite of their proprietary vehicle tracking software Turbo Track
import { Controller } from "cx/ui"; const day = 24 * 60 * 60 * 1000; let startDate = Date.now() - 30 * day; let categories = { Opened: 12, Fixed: 7, Verified: 10 }; let series = []; for (let cat in categories) { let points = []; let v = Math.round(15 * Math.random()); for (let i = 0; i < 30; i++) { v += Math.round(4 * (Math.random() - 0.5)); if (v < 0) v = 0; points.push({ date: startDate + i * day, count: 15 + Math.round(20 * Math.random()) }); } series.push({ category: cat, data: points, color: categories[cat], trackedValue: null }); } export default class extends Controller { onInit() { this.store.init("series", series); } }
We’re highly specialized in web-oriented business applications such as online trading software, cloud management consoles, Saas applications, IoT dashboards, accounting and back-office systems, etc.
JavaScript is our home territory.We make beautiful new interfacesin a blink of an eye. Does yourapplication need a facelift?
Using .NET and Node.js we build scalable and maintainable applications that withstand the test of time.
We deeply care about design. Our design team transforms ideas into beautiful and easy to use products.
We are keeping track of the latest technology trends and integrating best bits and pieces into CxJS - a comprehensive UI framework built for enterprise applications.