Skip to content

All 18 builds.

Every one is live; click any window to open it. Client commissions first, then two series of my own.

Flagship builds

The Digital Decretals

Screenshot of the The Digital Decretals homepage

A 13th-century law code, hyperlinked

Client commissiondigital-decretals.com

A searchable web edition of the Glossa Ordinaria on the Decretals of Gregory IX, built for a professor of medieval history from his Word transcription — about 4.4 million characters of Latin, instantly searchable and cross-linked.

  • 18,257legal citations resolved into links
  • 99.9%+agreement with the scholar's own register
  • 1,970pre-rendered chapter pages

Next.js 15 · TypeScript · Python + python-docx · GitHub Actions

Qualis Eram Design

Screenshot of the Qualis Eram Design homepage

A trilingual portfolio for a fine-furniture workshop

Client commissionreno-sepia.vercel.app

Eighteen bespoke pieces and a decade of workshop photography, presented in English, Hebrew, and Latin on a paper-grain gallery — with true RTL, where arrow keys, swipes, and carousel motion all flip for Hebrew.

  • 3languages, Latin included
  • 76photos with the brand seal baked in
  • 18commissioned pieces catalogued

Next.js 15 · React 19 · Tailwind v4 · JSON-LD

Gamatria

Screenshot of the Gamatria homepage

A search engine for Hebrew gematria

Self-initiatedgamatria.app

Type any Hebrew word and get its value under 17 classical methods — plus every word that shares it, its anagrams, reversals, and Atbash pairs — across the Hebrew Bible, Mishnah, Talmud, Zohar, siddur, and modern Hebrew, in seven interface languages.

  • 17gematria methods, precomputed and indexed
  • 116k+words, from scripture to modern Hebrew
  • 15s → msa documented FTS5 re-rank fix

Next.js 16 · TypeScript · SQLite FTS5 · libSQL / Turso · Docker

Hebrabic

Screenshot of the Hebrabic homepage

Arabic ↔ Hebrew, taught from either side

Self-initiatedhebrabic.com

Arabic for Hebrew speakers and, mirrored, Hebrew for Arabic speakers, from one typed dataset. Words are taught through their relatives on the other side — the alphabet's shared ancestry, regular sound correspondences, root families — and the 37% with no honest relative are labelled to learn fresh.

  • 1,617words, each tagged by its tie to Hebrew
  • 2directions from one dataset
  • 3street dialects over an MSA spine

Next.js 16 · Postgres + Drizzle · Better Auth · Web Speech

Medical Companions

Screenshot of the Medical Companions homepage

Two diseases, animated and cited

Self-initiatedmoshejs.github.io/medical-companions

Study and patient-education guides, one disease each: Alzheimer's, in English and Hebrew, and Familial Mediterranean Fever. Scrub amyloid turning into plaque, or an FMF attack hour by hour, on a timeline. Every claim links to a numbered source, and research claims are labelled Established, Early evidence, or Hypothesis.

  • 756cited sources, each a numbered link
  • 41modules across the two guides
  • 3evidence labels on research claims

HTML + SVG · Vanilla JS · Python build · Headless Chrome · GitHub Pages

Client commissions

Collectr

Screenshot of the Collectr homepage

Monthly onchain art editions

Client commissioncollectr.live

A new limited edition from an independent illustrator every month since July 2024, stored permanently on Arweave. Our founder co-owns it and leads frontend and marketing.

Spray Tanning by Rosie

Screenshot of the Spray Tanning by Rosie homepage

A website that is a phone number

Client commissionspraytanningbyrosie.com

No forms, no widgets: tap-to-call and tap-to-text everywhere, prices on the page, and deep structured data doing the local-search selling.

VentPro NYC

Screenshot of the VentPro NYC homepage

Marketing site to field-service platform

Client commissionventpro.nyc

From a call-or-book funnel to on-site booking with deposits, texted appointment codes, and self-serve rescheduling — run from a custom admin dashboard.

The Language Lab.

Languages come in families, so what you already know in one is a map to the next. Hebrabic, with the flagships above, started the lab. Two more apps teach a language through its siblings or the words it borrowed; the third traces where words travelled. All of them show their working: every word is tagged by how it's related, and uncertain links are marked as uncertain.

Cognata

Screenshot of the Cognata homepage

Six Latin daughters and English, through each other

Learn · Romancecognata.app

Spanish, French, Italian, Portuguese, Romanian, Catalan, and English, each learned through the one you already speak — which words are cognates, which are false friends, and the sound laws that predict the rest.

  • 2,264words in all seven languages, with IPA
  • 33sound laws with worked examples
  • 87false friends flagged

Next.js 16 · Postgres + Drizzle · FSRS · Claude API

Ojalá

Screenshot of the Ojalá homepage

The Arabic hiding inside Spanish

Learn · Semitic → Romanceojala.uno

Aceite, azúcar, ojalá: Arabic taught through the Spanish words that came from al-Andalus, and Spanish taught back to Arabic speakers through the same words. Each word shows its Arabic source, its root, and how sure the etymology is.

  • 262loanwords, each graded certain to disputed
  • 139Arabic roots behind them
  • 3interfaces: Spanish, Arabic (RTL), English

Next.js 16 · TypeScript · Vitest · Web Speech

Lexodus

Screenshot of the Lexodus homepage

An animated atlas of where words wandered

Explore · Etymologylexodus.vercel.app

Search a word and watch it travel the map one hop at a time — sugar from Sanskrit through Persian and Arabic into English. Every hop is graded, and popular-but-wrong origin stories are labelled as myths.

  • 848words traced hop by hop
  • 4confidence grades, certain to disputed
  • 2directions, incl. words into Israeli Hebrew

Next.js 16 · d3-geo · Natural Earth · Vitest

Stage & Story.

Sites that behave instead of describe. One plays two characters behind a shared foyer, one turns a fable into something you play, one is a shelf of story readers with notes you can tap, one draws sixteen inquiries into Kabbalah in SVG and CSS, and one is a hundred line drawings refined by a panel of AI judges.

Two Libertines

The Two Libertines foyer: Casanova's warm half on the left, his light pressed toward the seam, and Don Juan's dark half on the right

Casanova and Don Juan, behind a two-door foyer

Characterscasanova-wine.vercel.app

Two sites that play their man instead of describing him. Casanova runs on your attention: a dark room lit by your cursor, a voice that reads your tempo, and he always leaves first. Don Juan runs on a clock that ignores you, and files you as an entry in his catalogue.

Under the Sycamore

Screenshot of the Under the Sycamore homepage

After The Alchemist, played with one gesture

Playable fableunder-the-sycamore.vercel.app

Ten phone-first chapters, about half an hour: hold to listen, balance two drops of oil, stand still under a blade. Seven endings plus a bonus, and every line of narration is original writing.

Told in Passing

Told in Passing's contents page: Avoidant Book and Fake Love side by side, story text drawn as bars

Two short stories, each in a reader built around it

Story readerstold-in-passing.vercel.app

Avoidant Book reads one therapeutic chapter with nothing in the way; Fake Love adds tappable notes on the transactional analysis under each moment. Once two apps, now one shelf: stories as data, one shared reader.

The Website That Goes Wrong

The Website That Goes Wrong mid-show: the title missing its E, the PRE-ORDER button swinging on one wire, and the prompt desk below

A product launch staged as live theatre — you call the cues

Interactive farceall-goes-wrong-rightfully.vercel.app

You're the stage manager: thirteen cues, each called with GO, each going wrong exactly as rehearsed. The debris piles up on stage; at the final curtain every fallen piece flies home and the prompt book shows it was all choreographed.

Shevirah

Screenshot of the Shevirah homepage

Sixteen inquiries into Kabbalah, animated

SVG & CSS artmoshejs.github.io/shevirah

What breaks, what holds, what returns: Klippot, an explorable Tree of Life, then fourteen Kabbalistic texts read teaching by teaching. Each of 258 teachings has a hand-coded SVG drawing with a second state, and every page cites its edition and license.

One Hundred Lines

Screenshot of the One Hundred Lines homepage

A hundred one-line drawings, judged by a panel of agents

Agent-made artmoshejs.github.io/one-hundred-lines

Five artist agents drew a hundred minimal line drawings; a curator, a draughtsman and a designer scored every one, round after round. Flip any drawing through all eleven versions with each judge's score and note. Six earned a 10 from all three.

Vacant lot.

The next building on this street could be yours.

Start a project