The operations console
The wall display, rebuilt at miniature scale. It runs to a written performance budget and stops painting the moment nobody is looking at it.
Toronto · Founder-operator
I built the business, then I wrote the software it runs on.
I own and operate Quaza Inc., a Toronto commerce company, profitable in its first half. I built everything it runs on: the store, the iOS app, the backend they both read from, and the machine that keeps it moving while I sleep. Before that I rebuilt ATR Sports' online store and grew it more than six times over in a year, as the only person on it.
I learned Swift by shipping that app. Ten days from the first commit to the App Store. That is how I work: I pick a thing up by building something real with it, and I am at production speed in days. Everything below is something I shipped.
Quaza Inc. is my commerce company: I started it, I run it, and it was profitable in its first half. It is also the clearest way to show what I can build, because everything it runs on is mine, and the best parts are running live further down this page.
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.
Four releases in the first 24 days, and a design language that is the store's own, not a template's. Hand-written networking, no vendor SDKs, 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.
These are working recreations, rebuilt for this page: the console off my wall, the app's market tab inside the real device frame, the pipeline that writes the store's news, and the leash I keep my agents on. Put a finger on them.
The wall display, rebuilt at miniature scale. It runs to a written performance budget and stops painting the moment nobody is looking at it.
Price history with touch scrubbing, movers, separate Sealed and Singles markets. Drag the chart; it answers.
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.
The store's news blog is produced by a pipeline, not typed into an admin. Run it and watch the order: build, verify, guard, upload, and always a draft at the end, because going live is a decision a person takes.
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.
I give agents a shell on my own hardware, then make it read-only. This is the real policy, running here. Pick a call and watch it decide.
{ "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 single long page under a hand-written WebGL globe, with a sustained metaphor carried through every line of the copy. No component library and no template. Every element on the page was drawn for it.
It is the cool counterpart to the warm work: where the church site below welcomes, this one performs. Holding two design languages at once without letting either leak is most of what design work is.
Open the site
The studio speaks in orbit lines. The sky is a habit by now.
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.
The number I am proudest of in that year is not the 515%. It is the month it took to get a yes. 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, and that turns the question from 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. The year closed with online sales up 515% and company sales up 82%, from the store's own dashboards.
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.
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/shrayghThe table below is not typed out. It reads this page's stylesheet in your browser, right now, and measures every ink against the lightest surface it is painted on.
Contrast 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.
The form travels with you. It names where you are, its bezel fills as you move, and it moves through eight shapes I actually spend time on. Point at one.