The operations console
The wall display, rebuilt at miniature scale, on a written performance budget.
Founder-operator · Digital business · AI & automation
I built the business, then I wrote the software it runs on.
Quaza Inc. is my commerce company, profitable in its first half. I own it, I run it, and I built everything it runs on: the store, the iOS app, the backend, and the machine that works while I sleep.
A storefront I rebuilt section by section until every surface was mine to change. Pushing a branch is the deploy, and nothing ships without a review pass that is paid to disagree with me.
I learned Swift by shipping this. Four releases in the first 24 days, a design language that is the store's own, and nothing between the customer and the shelf.
Both read the same backend I wrote. A price in the app is the price on the site, always, because there is exactly one place a number can come from. That was a constraint I set on day one, and it has held through every release.
one backend · one price Behind the shop runs a machine I assembled: agents working under written rules, a gate that decides what ships, and a local model trained on the store's own writing. Twelve scheduled jobs fire whether I am at the keyboard or not.
The wall display, rebuilt at miniature scale, on a written performance budget.
Price history, movers, two markets, inside the real device frame. Drag the chart.
Illustrative data, not live.
The figures are illustrative. Every series here is a seeded random walk computed in this component, not live market data.
Native iOS: SwiftUI with the Observation framework and Swift Concurrency, hand-written GraphQL over URLSession, no vendor SDKs. The tab reads a Cloudflare Worker in front of a D1 database, the same backend the website reads. This recreation is one React island, with the chart drawn as SVG rather than pulled from a chart library.
Quaza News
Sealed held, singles drifted, and the reprint question stayed open.
Sealed boxes of Example Set ended the month close to where they began. Singles from the set drifted a few points lower, led by the alternate arts.
None of this is real. The set, the cards and the figures are invented for this page.
The chase card of the set gained on thin volume, which is the kind of move that fades. Mid-tier holos sat flat, and listed supply held steady all month.
A reprint would reset most of the numbers above, and rumours of one arrive on schedule. Until an announcement lands, every figure here stays what it is: an illustration.
Illustrative article, not a real post.
6 stages, run in order. Nothing here talks to Shopify: the run is a recreation.
The article is illustrative: the set, the cards and the figures are invented for this page. The run animates the real pipeline's order without talking to Shopify.
Quaza News is a TCG news blog on the Quaza Collect storefront, produced by a pipeline rather than typed into an admin: 18,246 lines of Python, a shared component library, and 73,195 words of prose across 30 built articles, tracked as 15,362 lines of article HTML. Publishing goes through the Shopify Admin GraphQL API, images first, article second, always as a Draft.
{ "tool": "Read", "input": {"file_path":"/etc/hostname"} }
ALLOWED
The guard returns no reason when it allows.
Rule: No rule fired
The call cleared every gate in order, so the guard permits it.
The guard is public at github.com/shraygh/readonly-agent. It carries 61 tests that run with no API key.
My design practice, and the site I built to carry it: a hand-written WebGL globe, mission telemetry in the corners, and a metaphor held through every line. No library, no template, and none of it leaks into the warmer work below.
Open the site
The hero is live: a hand-written WebGL globe, orbit stable.
Before Quaza there was ATR Sports, a sports-card retailer whose online sales had been flat for three years. I rebuilt the store from scratch and ran the online side alone, part-time, while employed full-time.
I recommended moving the store onto a much more expensive platform, and the resistance was not technical: it was cost, and underneath the cost it was timing. The owner did not disagree that the platform was better. They did not know when it would be worth paying for.
So I showed them the month. Above a certain volume the transaction-fee saving offsets the subscription, which turns whether-to-upgrade into which month the crossover falls in. The recommendation arrived from someone who had already done the work, and they went live the following month.
Everything else on this page is something I made. This is the other half of the job: getting a decision made by somebody whose money it was.
Every build on this page happened alongside a full-time job. Two co-op terms in marketing and inside sales sit between the retail years and ATR, and the degree ran under all of it.
The commerce company this page opens with: store, app, backend and the machine, all mine.
The only person on anything digital: the store, advertising, marketplaces, shipping. The turnaround above happened here.
Diagnosis under time pressure with the customer watching: intake, fix, handback.
First Canadian job, started within two months of arriving. Translating spec sheets into what a buyer actually needs.
Education Honours Bachelor of Commerce in Digital Business Management, Humber College, Toronto. Four years, with e-commerce, web development, databases and analytics as graded coursework, all of it now in production somewhere above.
A site for a church I attend, warm where the rest of my work runs cool, because the audience is a congregation and the design brief follows the reader.
Open the siteThe agent guard from the machine above, published as a standalone project. Deny by default, 61 tests, and you can run all of them with no API key.
github.com/shrayghContrast audit, measured in this browser
| Ink | Token | Used for | Measured on | Ratio | WCAG AA |
|---|---|---|---|---|---|
| Not measured yet. Every value in this table is read out of this page in the browser, so there is nothing to print before it loads. | |||||
The audit runs in the browser, because it reads the computed value of every token out of this page for itself.