PageSourceSearch

https://shortmac.com/case-studies

html shortmac.com collected 2026-10-06 13:16:32 UTC 17,824 bytes, 91 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/>
1<script async="" src="https://www.statcounter.com/counter/counter.js"></script>
vendor: 66 bytes, line 1
1<script async="" src="https://www.googletagmanager.com/gtag/js?id=
1AW-18280940449
vendor: 11 bytes, line 1
1"></script>
1<meta name="theme-color" content="#05101f"/><title>Case Studies | Shortmac Systems</title><meta name="description" content="Recent real examples of how Shortmac Systems helps organisations deliver complex digital projects with confidence."/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://shortmac.com/case-studies"/><meta property="og:type" content="website"/><meta property="og:url" content="https://shortmac.com/case-studies"/><meta property="og:site_name" content="Shortmac Systems"/><meta property="og:locale" content="en_AU"/><meta property="og:title" content="Case Studies | Shortmac Systems"/><meta property="og:description" content="Recent real examples of how Shortmac Systems helps organisations deliver complex digital projects with confidence."/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Case Studies | Shortmac Systems"/><meta name="twitter:description" content="Recent real examples of how Shortmac Systems helps organisations deliver complex digital projects with confidence."/><link rel="manifest" href="/site.webmanifest"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="modulepreload" href="/assets/entry.client-CSKy1iFS.js"/><link rel="modulepreload" href="/assets/jsx-runtime-u17CrQMm.js"/><link rel="modulepreload" href="/assets/chunk-QFMPRPBF-DA8DzgAN.js"/><link rel="modulepreload" href="/assets/root-ChnZjRnk.js"/><link rel="modulepreload" href="/assets/case-studies-MvJI5VlI.js"/><link rel="stylesheet" href="/assets/root-BAL3-67y.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&amp;display=swap"/>
1<script>var sc_project=13076947;var sc_invisible=1;var sc_security="bd253f1e";</script>
1<script>
vendor: 118 bytes, line 1
1window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
1AW-18280940449
vendor: 3 bytes, line 1
1');
1</script>
1<script>(function(){if(localStorage.getItem('theme')==='light'){document.documentElement.classList.remove('dark')}})()</script>
1</head><body class="flex min-h-screen flex-col bg-white text-sky-blue-900 antialiased dark:bg-ocean-950 dark:text-shore-100"><a href="#main" class="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-50 focus:rounded-md focus:bg-beam-400 focus:px-4 focus:py-2 focus:text-ocean-900">Skip to content</a><header class="sticky top-0 z-40 bg-sky-blue-600 shadow-md dark:bg-ocean-900 dark:shadow-lg"><div class="mx-auto flex max-w-6xl items-center justify-between px-4 py-4 sm:px-6 lg:px-8"><a class="flex items-center gap-2.5" href="/" data-discover="true"><svg viewBox="0 0 24 24" fill="none" aria-hidden="true" class="h-6 w-6 text-beam-300"><rect x="10" y="8" width="4" height="11" rx="0.5" fill="currentColor" opacity="0.9"></rect><rect x="9" y="5" width="6" height="4" rx="0.5" fill="currentColor"></rect><path d="M11 5 L12 2 L13 5Z" fill="currentColor"></path><rect x="8" y="19" width="8" height="2" rx="1" fill="currentColor" opacity="0.6"></rect><path d="M9 7 L2 3.5" stroke="currentColor" stroke-width="1" stroke-linecap="round" opacity="0.4"></path><path d="M15 7 L22 3.5" stroke="currentColor" stroke-width="1" stroke-linecap="round" opacity="0.4"></path></svg><span class="text-xl font-bold tracking-tight"><span class="text-beam-300">Shortmac</span><span class="text-white"> Systems</span></span></a><nav class="flex items-center gap-3"><div class="hidden items-center rounded-lg bg-white/10 p-1 ring-1 ring-white/20 sm:flex"><a class="rounded-md px-3 py-1.5 text-sm font-medium transition-colors text-white/80 hover:text-white" href="/" data-discover="true">Home</a><a aria-current="page" class="rounded-md px-3 py-1.5 text-sm font-medium transition-colors bg-white text-sky-blue-700" href="/case-studies" data-discover="true">Case Studies</a></div><button aria-label="Switch to light mode" class="rounded-md p-2 text-white/70 transition-colors hover:bg-white/10 hover:text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"><svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="5"></circle><path stroke-linecap="round" d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"></path></svg></button><a class="rounded-md bg-white px-4 py-2 text-sm font-semibold text-sky-blue-700 shadow-sm transition-colors hover:bg-sky-blue-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white dark:bg-beam-400 dark:text-ocean-900 dark:hover:bg-beam-300" href="/contact" data-discover="true">Get in Touch</a></nav></div></header><main id="main" class="flex-1"><section class="border-b border-sky-blue-100 bg-sky-blue-50 px-4 py-14 dark:border-ocean-800 dark:bg-ocean-900/50 sm:px-6 lg:px-8"><div class="mx-auto max-w-4xl text-center"><h1 class="mt-4 text-4xl font-extrabold tracking-tight text-sky-blue-900 dark:text-white sm:text-5xl">Case Studies</h1></div></section><section class="px-4 py-16 sm:px-6 lg:px-8"><div class="mx-auto grid max-w-6xl gap-8 lg:grid-cols-3"><article class="flex h-full flex-col rounded-2xl border border-sky-blue-100 bg-white p-7 shadow-sm transition-all hover:border-sky-blue-300 hover:shadow-md dark:border-ocean-800 dark:bg-ocean-900"><p class="text-xs font-semibold uppercase tracking-[0.12em] text-sky-blue-600 dark:text-teal-400">Resources</p><h2 class="mt-2 text-xl font-bold leading-tight text-sky-blue-900 dark:text-white">Unified Reporting for Major Resources Company</h2><div class="mt-6 space-y-4 text-sm leading-relaxed text-sky-blue-800 dark:text-shore-200/80"><p><span class="font-semibold text-sky-blue-900 dark:text-white">The problem: </span>Critical business data was spread across disconnected systems, making reporting unreliable and slowing decision-making during a period of organisational change.</p><p><span class="font-semibold text-sky-blue-900 dark:text-white">What we delivered: </span>Reporting into a single consolidated platform with data integration pipelines set up from multiple different sources.</p></div><div class="mt-6"><h3 class="text-sm font-semibold text-sky-blue-900 dark:text-white">Business outcomes</h3><ul class="mt-2 space-y-1.5 text-sm text-sky-blue-700 dark:text-shore-200/80"><li>• <!-- -->One reliable view of operational data, with AI powerered insights</li><li>• <!-- -->Faster, more confident decisions at every level</li></ul></div><div class="mt-6 flex flex-wrap gap-2"><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dar
1k:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">Angular</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">.NET</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">Azure</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">SQL Server</span></div></article><article class="flex h-full flex-col rounded-2xl border border-sky-blue-100 bg-white p-7 shadow-sm transition-all hover:border-sky-blue-300 hover:shadow-md dark:border-ocean-800 dark:bg-ocean-900"><p class="text-xs font-semibold uppercase tracking-[0.12em] text-sky-blue-600 dark:text-teal-400">Logistics</p><h2 class="mt-2 text-xl font-bold leading-tight text-sky-blue-900 dark:text-white">Customer Portal Launch</h2><div class="mt-6 space-y-4 text-sm leading-relaxed text-sky-blue-800 dark:text-shore-200/80"><p><span class="font-semibold text-sky-blue-900 dark:text-white">The problem: </span>Large logistics operator needed a new customer-facing portal live in weeks, not months - without cutting corners on quality or reliability.</p><p><span class="font-semibold text-sky-blue-900 dark:text-white">What we delivered: </span>Joined the in-house team, accelerated feature delivery, and tightened release processes so the portal was shipped on time.</p></div><div class="mt-6"><h3 class="text-sm font-semibold text-sky-blue-900 dark:text-white">Business outcomes</h3><ul class="mt-2 space-y-1.5 text-sm text-sky-blue-700 dark:text-shore-200/80"><li>• <!-- -->On-time launch</li><li>• <!-- -->Develop stronger internal delivery capability</li></ul></div><div class="mt-6 flex flex-wrap gap-2"><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">React</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">AWS</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">PostgreSQL</span></div></article><article class="flex h-full flex-col rounded-2xl border border-sky-blue-100 bg-white p-7 shadow-sm transition-all hover:border-sky-blue-300 hover:shadow-md dark:border-ocean-800 dark:bg-ocean-900"><p class="text-xs font-semibold uppercase tracking-[0.12em] text-sky-blue-600 dark:text-teal-400">Private sector</p><h2 class="mt-2 text-xl font-bold leading-tight text-sky-blue-900 dark:text-white">Purpose-Built Work Management Platform</h2><div class="mt-6 space-y-4 text-sm leading-relaxed text-sky-blue-800 dark:text-shore-200/80"><p><span class="font-semibold text-sky-blue-900 dark:text-white">The problem: </span>A growing private sector organisation needed to move beyond spreadsheets and manual processes to a system that could scale with their portfolio.</p><p><span class="font-semibold text-sky-blue-900 dark:text-white">What we delivered: </span>Platform delivered from concept to production - platform design, delivery, and putting delivery practices in place to ensure ongoing quality and scalability.</p></div><div class="mt-6"><h3 class="text-sm font-semibold text-sky-blue-900 dark:text-white">Business outcomes</h3><ul class="mt-2 space-y-1.5 text-sm text-sky-blue-700 dark:text-shore-200/80"><li>• <!-- -->Integrated cleanly into existing corporate infrastructure</li><li>• <!-- -->Sustainable delivery model that outlasts the initial build</li></ul></div><div class="mt-6 flex flex-wrap gap-2"><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dar
1k:ring-ocean-700">React</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">.NET</span><span class="rounded-full bg-sky-blue-50 px-2.5 py-1 text-xs font-medium text-sky-blue-700 ring-1 ring-sky-blue-100 dark:bg-ocean-800 dark:text-shore-100 dark:ring-ocean-700">Azure</span></div></article></div></section><section class="px-4 pb-20 sm:px-6 lg:px-8"><div class="mx-auto max-w-4xl rounded-2xl bg-sky-blue-900 px-8 py-12 text-center text-white shadow-xl dark:bg-ocean-900"><h2 class="text-2xl font-bold sm:text-3xl">Want your project featured here next?</h2><p class="mt-3 text-sky-blue-200 dark:text-shore-200/80">We can workshop your requirements and map out a practical delivery path.</p><a class="mt-7 inline-block rounded-lg bg-beam-400 px-6 py-3 text-sm font-semibold text-ocean-900 transition-colors hover:bg-beam-300" href="/contact" data-discover="true">Start a conversation</a></div></section></main><footer class="bg-sky-blue-900 text-sky-blue-200 dark:bg-ocean-900 dark:text-shore-200"><div class="mx-auto max-w-6xl px-4 py-10 sm:px-6 lg:px-8"><div class="flex flex-col items-center justify-between gap-6 sm:flex-row"><div class="flex flex-col items-center gap-1 sm:items-start"><div class="flex items-center gap-2"><svg viewBox="0 0 24 24" fill="none" aria-hidden="true" class="h-5 w-5 text-beam-300"><rect x="10" y="8" width="4" height="11" rx="0.5" fill="currentColor" opacity="0.9"></rect><rect x="9" y="5" width="6" height="4" rx="0.5" fill="currentColor"></rect><path d="M11 5 L12 2 L13 5Z" fill="currentColor"></path><rect x="8" y="19" width="8" height="2" rx="1" fill="currentColor" opacity="0.6"></rect><path d="M9 7 L2 3.5" stroke="currentColor" stroke-width="1" stroke-linecap="round" opacity="0.4"></path><path d="M15 7 L22 3.5" stroke="currentColor" stroke-width="1" stroke-linecap="round" opacity="0.4"></path></svg><span class="text-lg font-bold tracking-tight"><span class="text-beam-300">Shortmac</span><span class="text-white"> Systems</span></span></div><span class="mt-1 text-xs opacity-50">Joondalup, WA · ABN 82 683 495 678</span></div><p class="text-sm opacity-60">© <!-- -->2026<!-- --> Shortmac Systems Pty Ltd. All rights reserved.</p></div></div></footer>
1<script>((storageKey2, restoreKey) => {
2    if (!window.history.state || !window.history.state.key) {
3      let key = Math.random().toString(32).slice(2);
4      window.history.replaceState({ key }, "");
5    }
6    try {
7      let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
8      let storedY = positions[restoreKey || window.history.state.key];
9      if (typeof storedY === "number") {
10        window.scrollTo(0, storedY);
11      }
12    } catch (error) {
13      console.error(error);
14      sessionStorage.removeItem(storageKey2);
15    }
16  })("react-router-scroll-positions", null)</script>
16<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"unstable_passThroughRequests":false,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":true},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
16<script type="module" async="">;
17import * as route0 from "/assets/root-ChnZjRnk.js";
18import * as route1 from "/assets/case-studies-MvJI5VlI.js";
19  window.__reactRouterManifest = {
20  "entry": {
21    "module": "/assets/entry.client-CSKy1iFS.js",
22    "imports": [
23      "/assets/jsx-runtime-u17CrQMm.js",
24      "/assets/chunk-QFMPRPBF-DA8DzgAN.js"
25    ],
26    "css": []
27  },
28  "routes": {
29    "root": {
30      "id": "root",
31      "path": "",
32      "hasAction": false,
33      "hasLoader": false,
34      "hasClientAction": false,
35      "hasClientLoader": false,
36      "hasClientMiddleware": false,
37      "hasDefaultExport": true,
38      "hasErrorBoundary": true,
39      "module": "/assets/root-ChnZjRnk.js",
40      "imports": [
41        "/assets/jsx-runtime-u17CrQMm.js",
42        "/assets/chunk-QFMPRPBF-DA8DzgAN.js"
43      ],
44      "css": [
45        "/assets/root-BAL3-67y.css"
46      ]
47    },
48    "routes/case-studies": {
49      "id": "routes/case-studies",
50      "parentId": "root",
51      "path": "case-studies",
52      "hasAction": false,
53      "hasLoader": false,
54      "hasClientAction": false,
55      "hasClientLoader": false,
56      "hasClientMiddleware": false,
57      "hasDefaultExport": true,
58      "hasErrorBoundary": false,
59      "module": "/assets/case-studies-MvJI5VlI.js",
60      "imports": [
61        "/assets/chunk-QFMPRPBF-DA8DzgAN.js",
62        "/assets/jsx-runtime-u17CrQMm.js"
63      ],
64      "css": []
65    },
66    "routes/home": {
67      "id": "routes/home",
68      "parentId": "root",
69      "index": true,
70      "hasAction": false,
71      "hasLoader": false,
72      "hasClientAction": false,
73      "hasClientLoader": false,
74      "hasClientMiddleware": false,
75      "hasDefaultExport": true,
76      "hasErrorBoundary": false,
77      "module": "/assets/home-DmoV7Pzw.js",
78      "imports": [
79        "/assets/chunk-QFMPRPBF-DA8DzgAN.js",
80        "/assets/jsx-runtime-u17CrQMm.js"
81      ],
82      "css": []
83    }
84  },
85  "url": "/assets/manifest-1c6e9a8c.js",
86  "version": "1c6e9a8c"
87};
88  window.__reactRouterRouteModules = {"root":route0,"routes/case-studies":route1};
89
90import("/assets/entry.client-CSKy1iFS.js");</script>
90<noscript><div class="statcounter"><a title="real time web analytics" href="https://statcounter.com/" target="_blank" rel="noreferrer"><img class="statcounter" src="https://c.statcounter.com/13076947/0/bd253f1e/1/" alt="real time web analytics" referrerPolicy="no-referrer-when-downgrade"/></a></div></noscript><!--$-->
90<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{},\"actionData\",\"errors\"]\n");</script>
90<!--$-->
90<script>window.__reactRouterContext.streamController.close();</script>
90<!--/$--><!--/$-->
90<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"d95a764ced584193b43761cf62740bd6","r":1,"spa":2}' crossorigin="anonymous"></script>
90
91</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.