SaturaCorp: A Fake Japanese Conglomerate That Catalogs My Real Side Projects
I have a problem common to anyone who tinkers across too many domains. I run a handful of websites for a variety of purposes, plus have a fistful of GitHub repos, project pages on Hackaday, Printables, and Adafruit Playground, and a long tail of one-off experiments. None of these have a unified “this is the whole picture” landing page that doesn’t feel either narcissistic or undersold.
So I built a satirical website for a fake Japanese mega-conglomerate that catalogs them all as if I were running a global enterprise. It’s live at saturacorp.com.

The premise
SaturaCorp, short for Satura Corporation, is presented as a Tokyo-listed (it’s not) sōgō shōsha (it isn’t) with operating divisions, group affiliates, investor-relations, a stock ticker, multi-language support across English / Japanese / Chinese / French, and a President’s Message signed by yours truly in katakana (トレヴァー・ジョンソン). The aesthetic is the early-2000s Japanese investor-relations corporate site: tiny serif fonts, table-driven layouts, gradient-shaded navigation bars, dark navy with a single red accent, and a sub-line in katakana under nearly every link. If you ever clicked through to a Sony, Mitsui, or Marubeni global site around 2001, you remember the vibe.
The governing rule I gave myself was: no fabrication that doesn’t anchor to something real. Every fictional Group entity links to an actual project. “Pen Plotter Reference Engineering Co.” is the ESP32 pen plotter repo. “Oregon Trail Heritage Preservation Group” is the 1978 Apple BASIC port to Python. “SaturaCorp Open Hardware Reference Bureau” is my Hackaday.io profile. The framing is fictional; the substance is real.

The build
The whole thing is written static HTML, CSS, and vanilla JavaScript. No framework, no bundler, no build step. The entire site weighs about 100 KB on disk. It deploys via cp to an nginx webroot. A few pieces are worth calling out.
A CSS-selector translation dictionary. Instead of pulling in an i18n framework, multi-language support is a single JS file containing four flat dictionaries keyed by CSS selector:
"#group-companies h2": "グループ会社・関連法人",
".ref-aff-chaos": "人間・AI協調システムおよび製品開発に向けた...",
"#privacy > p:nth-of-type(2)": "技術的開示事項として一点..."
A 30-line runtime walks each entry, runs document.querySelectorAll(selector), and replaces innerHTML. Language choice persists across page navigation via sessionStorage. About 250 entries per non-English language. Debuggable in the browser inspector. Zero build-time tooling. Adding a fifth language would mean appending one more block to the file. For a site that will never need React-level interactivity, this turned out to be the simplest i18n approach I’ve ever shipped.
The stock ticker, or: how non-US market data quietly disappeared from the free web. The masthead has a stock ticker cycling between TSE 8031 (Mitsui & Co.) and TSE 6758 (Sony Group) with prices in yen. Sounds trivial — except every free market-data API I tried gates Tokyo Stock Exchange symbols behind paid tiers. Alpha Vantage, Finnhub, Twelve Data: all return some variant of “this symbol requires a Pro plan” when you query 8031.T or 6758.T on a free key. Yahoo Finance’s unofficial endpoint returns the data fine to a server-side client like Python’s yfinance, but Yahoo sends no CORS headers, so a static page can’t read it. Every free public CORS proxy I tested (corsproxy.io, allorigins.win, codetabs, cors.lol, half a dozen others) is now either dead, paywalled, or rate-limited into uselessness in 2026.
The workaround: pull the underlying ADR price, SONY on NYSE, MITSY on OTC, from Finnhub’s free tier (those work fine because they’re US-listed), pull a live USD/JPY mid-rate from open.er-api.com (free, no key, CORS-enabled), and do the math in the browser:
JPY_price = ADR_USD × FX_rate / ADR_ratio
SONY’s ADR ratio is 1:1 with TSE 6758. MITSY’s is 1:20 with TSE 8031 (yes, twenty, I double checked). The resulting JPY value reconciles to within about 1% of the actual TSE close. I cross-checked against Yahoo Finance the day I built it: the indicative number landed at ¥6,153 vs an actual close of ¥6,106 for Mitsui, which is just standard ADR basis spread. The ticker labels its output honestly as “Indicative JPY (ADR × FX)” so I don’t get yelled at by anyone who reads IR disclosures but doesn’t understand satire.
What I learned
Two things surprised me. First, how well the CSS-selector translation dictionary scaled. I was prepared to throw it away and reach for a “real” i18n library somewhere around the 100-entry mark. It never broke. The selector approach turns out to be a near-perfect fit for a content-heavy static site where the markup is curated and stable.
Second, how thoroughly the free-tier market-data world has walled off non-US exchanges. The ticker exercise was, accidentally, a survey of what’s actually still accessible to a static-only site in 2026. The answer is very little, unless you’re willing to either run your own proxy, pay for an API key, or do creative arithmetic on US-listed proxies for the real instrument. I went with the third option because it fit the parody: the ticker presents itself as a Tokyo quote, but the disclosure line tells you exactly how the number was computed.
The site is live at saturacorp.com. View-source works. If you’ve ever wanted to build a fake conglomerate to wrap your real projects, I recommend it, it’s a surprisingly effective way to give a sprawling portfolio a single coherent address, and the constraint of “no fabrication without an anchor” turned out to make the writing easier rather than harder, and helped guide the process.



