PageSourceSearch

https://diligent-ink-press-flow.base44.app/about

html diligent-ink-press-flow.base44.app collected 2026-10-03 03:12:47 UTC 17,493 bytes, 318 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  
37<script>
38   self["MonacoEnvironment"] = (function (paths) {
39          return {
40            globalAPI: false,
41            getWorkerUrl : function (moduleId, label) {
42              var result =  paths[label];
43              if (/^((http:)|(https:)|(file:)|(\/\/))/.test(result)) {
44                var currentUrl = String(window.location);
45                var currentOrigin = currentUrl.substr(0, currentUrl.length - window.location.hash.length - window.location.search.length - window.location.pathname.length);
46                if (result.substring(0, currentOrigin.length) !== currentOrigin) {
47                  var js = '/*' + label + '*/importScripts("' + result + '");';
48                  var blob = new Blob([js], { type: 'application/javascript' });
49                  return URL.createObjectURL(blob);
50                }
51              }
52              return result;
53            }
54          };
55        })({
56  "editorWorkerService": "/monacoeditorwork/editor.worker.bundle.js",
57  "typescript": "/monacoeditorwork/ts.worker.bundle.js",
58  "json": "/monacoeditorwork/json.worker.bundle.js",
59  "css": "/monacoeditorwork/css.worker.bundle.js",
60  "html": "/monacoeditorwork/html.worker.bundle.js",
61  "javascript": "/monacoeditorwork/ts.worker.bundle.js",
62  "less": "/monacoeditorwork/css.worker.bundle.js",
63  "scss": "/monacoeditorwork/css.worker.bundle.js",
64  "handlebars": "/monacoeditorwork/html.worker.bundle.js",
65  "razor": "/monacoeditorwork/html.worker.bundle.js"
66});
67  </script>
67
68  <!-- Runtime config — must execute before the Vite module scripts read
69         window.__APP_CONFIG__. `defer` keeps that order (deferred classic
70         scripts and module scripts run in document order after parsing) while
71         unblocking the HTML parser, so asset preloads start immediately
72         instead of stalling ~160ms (p75) on this API round trip.
73         Back on the .js path: Render's extension-keyed edge cache rule twice
74         pinned a wrong body under this URL despite `no-store` (2026-08-20 and
75         2026-08-24); Render has since removed that cache rule for us, so the
76         suffix is safe again. If poisoning recurs: bump the `?v=` cache key,
77         or switch the src to the extension-less /api/frontend-config route
78         (kept serving as an escape hatch). -->
79  
79<script defer="" src="/api/frontend-config.js?v=3">
80  </script>
80
81  <!-- Usercentrics CMP -->
82  
82<script type="application/javascript">
83   var isBypassEnabled = document.cookie.split(';').some(function(cookie) {
84        return cookie.trim().indexOf('no_cmp=') === 0;
85      });
86      var UC_UI_SUPPRESS_CMP_DISPLAY = isBypassEnabled;
87  </script>
87
88  
88<script async="" src="https://accounts.google.com/gsi/client">
89  </script>
89
90  <meta charset="utf-8"/>
91  <!-- Platform favicon: a real multi-size ICO (16/32/48) of the current sun
92         mark, served from public/. This is the ONLY rel="icon" link, and it
93         must stay that way — App.js rewrites the first match for backoffice.
94         Crawlers and link scrapers read this tag (and probe /favicon.ico
95         directly) with no JS, so the brand has to be correct statically. -->
96  <link href="https://media.base44.com/images/public/6a2f05cf41b9f873838b40cb/84f7454e4_logo.png" rel="icon" sizes="any"/>
97  
97<script>
98   // Pre-paint theme stamp for the demo Appearance (demo-appearance-themes)
99      // cohort: on a hard load the theme is applied by React (DemoThemeApplier)
100      // only after auth resolves, so the document boots light — a white flash,
101      // then light route skeletons (the FOUC this removes). DemoThemeApplier
102      // persists 'demo-display-theme-applied' only while the feature is active,
103      // so every other cohort (flag-off, native, backoffice, runtime apps)
104      // never sets it and this stays a no-op. React stays the source of truth
105      // after mount: DemoThemeApplier
106      // re-applies or clears these exact attributes. Keys must stay byte-identical
107      // with components/settings/useDemoTheme.ts — BOOT_STAMP_CONTRACT there is
108      // asserted against this file by useDemoTheme.spec.ts, so update both.
109      //
110      // Kill-switch caveat: the marker is written while the feature is active and
111      // only cleared once /me resolves. On the FIRST load after a user loses the
112      // flag — or after the kill switch is flipped mid-incident — this still
113      // stamps dark, then React settles to light: one dark→light flash, which
114      // self-heals from the next load on. Flipping the switch does not repaint
115      // already-open tabs pre-paint; it collapses them on their next load.
116      try {
117        if (localStorage.getItem('demo-display-theme-applied') === '1') {
118          var demoTheme = localStorage.getItem('demo-display-theme');
119          var demoDark = demoTheme === 'dark' ||
120            (demoTheme === 'system' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);
121          if (demoDark) {
122            var demoRoot = document.documentElement;
123            demoRoot.setAttribute('data-ds', 'base44');
124            demoRoot.setAttribute('data-theme', 'dark');
125            demoRoot.classList.add('dark');
126            // Kill the pre-CSS white document flash; the app paints over it.
127            demoRoot.style.backgroundColor = '#09090b';
128          }
129        }
130      } catch (e) {}
131  </script>
131
132  <meta content="width=device-width, initial-scale=1.0, viewport-fit=cover" name="viewport"/>
133  <meta content="#000000" name="theme-color"/>
134  <meta content="An industrial-grade digital forge for Screen Mulisha, enabling custom apparel orders, real-time print status tracking, and expert design consultation for high-volume textile production." name="description"/>
135  <meta content="yes" name="mobile-web-app-capable"/>
136  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
137  <meta content="Screen Mulisha" name="apple-mobile-web-app-title"/>
138  <link href="https://media.base44.com/images/public/6a2f05cf41b9f873838b40cb/84f7454e4_logo.png" rel="apple-touch-icon" sizes="180x180"/>
139  <link href="https://diligent-ink-press-flow.base44.app/manifest.json" rel="manifest"/>
140  <title>
141   About | Screen Mulisha
142  </title>
143  <!-- Open Graph / Facebook -->
144  <meta content="website" property="og:type"/>
145  <meta content="https://diligent-ink-press-flow.base44.app/about" property="og:url"/>
146  <meta content="About | Screen Mulisha" property="og:title"/>
147  <meta content="Screen Mulisha" property="og:site_name"/>
148  <meta content="An industrial-grade digital forge for Screen Mulisha, enabling custom apparel orders, real-time print status tracking, and expert design consultation for high-volume textile production." property="og:description"/>
149  <meta content="https://media.base44.com/images/public/6a2f05cf41b9f873838b40cb/84f7454e4_logo.png/v1/fill/w_1200,h_630/84f7454e4_logo.png" property="og:image"/>
150  <meta content="1200" property="og:image:width"/>
151  <meta content="630" property="og:image:height"/>
152  <meta content="Base44 link preview" property="og:image:alt"/>
153  <!-- Twitter -->
154  <meta content="summary_large_image" name="twitter:card"/>
155  <meta content="https://diligent-ink-press-flow.base44.app/about" name="twitter:url"/>
156  <meta content="About | Screen Mulisha" name="twitter:title"/>
157  <meta content="An industrial-grade digital forge for Screen Mulisha, enabling custom apparel orders, real-time print status tracking, and expert design consultation for high-volume textile production." name="twitter:description"/>
158  <meta content="https://media.base44.com/images/public/6a2f05cf41b9f873838b40cb/84f7454e4_logo.png/v1/fill/w_1200,h_630/84f7454e4_logo.png" name="twitter:image"/>
159  <meta content="Base44 link preview" name="twitter:image:alt"/>
160  
160<script crossorigin="" src="/static/index-D96eRrlv.js" type="module">
161  </script>
161
162  <link crossorigin="" href="/static/rolldown-runtime-C0FnF6B9.js" rel="modulepreload"/>
163  <link crossorigin="" href="/static/runtime-QtgwY_nV.js" rel="modulepreload"/>
164  <link crossorigin="" href="/static/backend-CC2lXJt_.js" rel="modulepreload"/>
165  <link crossorigin="" href="/static/vendor-react-Ccu8BlQU.js" rel="modulepreload"/>
166  <link crossorigin="" href="/static/preload-helper-BZ1Pz5am.js" rel="modulepreload"/>
167  <link crossorigin="" href="/static/vendor-data-D4IPhVFk.js" rel="modulepreload"/>
168  <link crossorigin="" href="/static/errorReporting-C8KVtz7O.js" rel="modulepreload"/>
169  <link crossorigin="" href="/static/i18n-pkgydE_c.js" rel="modulepreload"/>
170  <link crossorigin="" href="/static/vendor-utils-C8Ev1Z53.js" rel="modulepreload"/>
171  <link crossorigin="" href="/static/mixpanelUtils-CtEUaRBr.js" rel="modulepreload"/>
172  <link crossorigin="" href="/static/bridge-Cq_Szqk4.js" rel="modulepreload"/>
173  <link crossorigin="" href="/static/axiosClient-DnVO32-R.js" rel="modulepreload"/>
174  <link crossorigin="" href="/static/domainValidation-FMKryCR2.js" rel="modulepreload"/>
175  <link crossorigin="" href="/static/vendor-ui-C97dD7rv.js" rel="modulepreload"/>
176  <link crossorigin="" href="/static/base-DLGBKAFy.js" rel="modulepreload"/>
177  <link crossorigin="" href="/static/AuthAPI-C4-6oDY6.js" rel="modulepreload"/>
178  <link crossorigin="" href="/static/useDesignSystem-CehPfIkU.js" rel="modulepreload"/>
179  <link crossorigin="" href="/static/logoutReturnPath-HjtsxsFd.js" rel="modulepreload"/>
180  <link crossorigin="" href="/static/AuthContext-BwFq1txD.js" rel="modulepreload"/>
181  <link crossorigin="" href="/static/dist-XEn2s_wS.js" rel="modulepreload"/>
182  <link crossorigin="" href="/static/featureFlags-DkMoeXMw.js" rel="modulepreload"/>
183  <link crossorigin="" href="/static/useHideNativeBottomTabs-C_i-vpDp.js" rel="modulepreload"/>
184  <link crossorigin="" href="/static/native-mobile-app-DhQk5gto.js" rel="modulepreload"/>
185  <link crossorigin="" href="/static/prop-types-D9WxI36-.js" rel="modulepreload"/>
186  <link crossorigin="" href="/static/esm-BcdKrTNz.js" rel="modulepreload"/>
187  <link crossorigin="" href="/static/use-mobile-CaU875wk.js" rel="modulepreload"/>
188  <link crossorigin="" href="/static/create-zustand-store-BANj7DdM.js" rel="modulepreload"/>
189  <link crossorigin="" href="/static/persist-to-storage-BFlqrUp_.js" rel="modulepreload"/>
190  <link crossorigin="" href="/static/actions.middleware-D_eRWZoy.js" rel="modulepreload"/>
191  <link crossorigin="" href="/static/WorkspaceAPI-NXczXWIe.js" rel="modulepreload"/>
192  <link crossorigin="" href="/static/useWorkspaceUnlockState-CC8XdN-l.js" rel="modulepreload"/>
193  <link crossorigin="" href="/static/WorkspaceContext-SU9dVSL0.js" rel="modulepreload"/>
194  <link crossorigin="" href="/static/usePlatform-C2eTT50O.js" rel="modulepreload"/>
195  <link crossorigin="" href="/static/react-BanELCRV.js" rel="modulepreload"/>
196  <link crossorigin="" href="/static/useFeatureFlags-BRZVRkZF.js" rel="modulepreload"/>
197  <link crossorigin="" href="/static/utils-CrD3uvwO.js" rel="modulepreload"/>
198  <link crossorigin="" href="/static/toast-8IacIur2.js" rel="modulepreload"/>
199  <link crossorigin="" href="/static/index-BGSEU5bQ.css" rel="stylesheet"/>
200  
200<script id="base44-runtime-tailwind-config">
201   window.tailwind = window.tailwind || {}; window.tailwind.config = { darkMode: 'class' };
202  </script>
202
203  
203<script id="base44-runtime-tailwind-cdn" src="https://cdn.tailwindcss.com">
204  </script>
204
205  
205<script>
206   (function () {
207  var titles = {"/": "Screen Mulisha", "/services": "Services | Screen Mulisha", "/portfolio": "Portfolio | Screen Mulisha", "/about": "About | Screen Mulisha", "/contact": "Contact | Screen Mulisha", "/home": "Screen Mulisha"};
208  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
209  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
210  var dashed = function (s) {
211    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
212  };
213  var decode = function (s) {
214    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
215    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
216    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
217  };
218  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
219  var norm = function (path) {
220    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
221    return parts.length ? "/" + parts.join("/") : "/";
222  };
223  var lastPath = location.pathname, written = document.title, on = true;
224  var sync = function () {
225    // Path only: a hash/query change is the same page, and the SDK strips its own auth
226    // params with replaceState -- neither must clobber a server-rendered title in place.
227    if (!on || location.pathname === lastPath) return;
228    lastPath = location.pathname;
229    if (document.title !== written) { on = false; return; }
230    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
231    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
232    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
233    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
234    // a redirect landing on an unmapped path would bake the placeholder into the stored
235    // snapshot. Leaving the title alone degrades to today's behavior instead.
236    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
237    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
238    // dashes there, and the client cannot tell the two apart. The map emits every reachable
239    // shape per segment instead (_client_url_variants).
240    var title = titles[norm(location.pathname)];
241    if (title === undefined) return;
242    document.title = title;
243    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
244    // keeping the assigned string would make the next sync() read our own write as the app's.
245    written = document.title;
246  };
247  var wrap = function (fn) {
248    // The history entry is already pushed by the time sync() runs, so a throw here would
249    // surface inside the host app's router and break navigation. This is injected into apps
250    // we cannot test, so it swallows rather than trusting the trace.
251    return function () {
252      var r = fn.apply(this, arguments);
253      try { sync(); } catch (e) {}
254      return r;
255    };
256  };
257  history.pushState = wrap(history.pushState);
258  history.replaceState = wrap(history.replaceState);
259  window.addEventListener("popstate", sync);
260})();
261  </script>
261
262  <link href="https://diligent-ink-press-flow.base44.app/about" rel="canonical"/>
263  
263<script data-seo-source="builder" type="application/ld+json">
264   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://diligent-ink-press-flow.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "about", "item": "https://diligent-ink-press-flow.base44.app/about"}]}
265  </script>
265
266 </head>
267 <body>
268  <noscript>
269   You need to enable JavaScript to run this app.
270  </noscript>
271  <div id="root">
272   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
273    <main>
274     <header>
275      <h1>
276       About | Screen Mulisha
277      </h1>
278      <p>
279       An industrial-grade digital forge for Screen Mulisha, enabling custom apparel orders, real-time print status tracking, and expert design consultation for high-volume textile production.
280      </p>
281     </header>
282     <nav aria-label="Pages">
283      <h2>
284       Pages
285      </h2>
286      <ul>
287       <li>
288        <a href="/">
289         Home
290        </a>
291       </li>
292       <li>
293        <a href="/services">
294         Services Page
295        </a>
296       </li>
297       <li>
298        <a href="/portfolio">
299         Portfolio
300        </a>
301       </li>
302       <li>
303        <a href="/about">
304         About
305        </a>
306       </li>
307       <li>
308        <a href="/contact">
309         Contact
310        </a>
311       </li>
312      </ul>
313     </nav>
314    </main>
315   </div>
316  </div>
317 </body>
318</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.