Skip to content

My Projects

A selection of things I have built: open-source tools, full-stack platforms, and experiments that taught me something useful.

pray-calc

Islamic prayer time calculator using physics-based dynamic twilight angles rather than fixed degree offsets. Supports 14 traditional calculation methods (ISNA, MWL, Egypt, Karachi, and more) alongside fully configurable custom parameters. Published on npm.

TypeScriptnpmOpen SourceIslamic
View on GitHub

pray-calc-ml

Machine learning extension for pray-calc that calibrates Fajr and Isha angles using weighted least-squares regression against observed prayer data. Produces location-tuned offsets that correct systematic errors in standard methods.

TypeScriptMachine LearningnpmOpen Source
View on GitHub

nrel-spa

Pure JavaScript implementation of the NREL Solar Position Algorithm. Computes solar zenith, azimuth, sunrise, sunset, and solar noon for any location and time to within ±0.0003 degrees — the same accuracy as the original C reference implementation. No native dependencies, runs in browsers and Node.

JavaScriptnpmOpen SourceSolar
View on GitHub

solar-spa

The NREL Solar Position Algorithm compiled to WebAssembly via Emscripten. Wraps the original C source in a JavaScript/TypeScript API that runs the algorithm at near-native speed in any modern environment — useful for high-frequency solar calculations in data pipelines.

WebAssemblyCEmscriptennpmOpen Source
View on GitHub

moon-cycle

Maps any JavaScript Date to the correct NASA moon phase image. Uses the full 29.53-day synodic cycle (708 discrete images) for daily precision, and an extended 8,760-image set for sub-hour accuracy. Works offline with bundled image references.

JavaScriptnpmOpen SourceAstronomy
View on GitHub

moon-sighting

Crescent moon visibility calculations for Islamic calendar determination. Implements the major astronomical criteria (Odeh, Yallop, HMNAO) used by Islamic organizations worldwide to determine the start of Ramadan and other lunar months.

TypeScriptnpmOpen SourceIslamicAstronomy
View on GitHub

hijri-core

Zero-dependency Hijri calendar engine for JavaScript and TypeScript. Supports both Umm al-Qura (Saudi official) and FCNA/ISNA (North American calculated) calendars. Handles conversion, formatting, and month arithmetic without pulling in a full date library.

TypeScriptnpmOpen SourceIslamic
View on GitHub

luxon-hijri

Hijri/Gregorian date conversion built on Luxon. Extends Luxon DateTime with full Hijri support — parse, format, and manipulate Islamic calendar dates using the same API you already know. Five stars on GitHub.

TypeScriptLuxonnpmOpen Source
View on GitHub

Hijri adapters (date-fns · Day.js · Moment · Temporal)

A suite of Hijri calendar plugins for the four most popular JavaScript date libraries. Each adapter adds Hijri locale, formatting, and conversion to its host library with no breaking changes. Published separately as date-fns-hijri, dayjs-hijri-plus, moment-hijri-plus, and temporal-hijri.

TypeScriptnpmOpen SourceIslamic
View on GitHub

Unity Sites

Multi-tenant CMS platform where a single Next.js deployment serves every Unity sub-brand on its own custom domain. Sixteen themes, a GraphQL content layer via Hasura, and an /admin panel for live content editing. Running in production across unity.charity, unity.cash, uny.eco, streamversity.com, and ariccamarata.com.

Next.jsTypeScriptHasuraPostgreSQLMulti-tenant
Visit unity.ws

nSelf CLI

Open-source CLI that provisions a full production backend in one command on any Linux VPS: PostgreSQL 16, Hasura GraphQL, Hasura Auth, MinIO object storage, Redis, and nginx with Let's Encrypt SSL. Designed to eliminate dependency on managed cloud databases.

BashDockerPostgreSQLHasuraOpen Source
View on GitHub

ClawDE

AI development environment built around a persistent Rust daemon and Flutter cross-platform apps. Maintains long-running context, tool access, and project state across sessions — closer to a background engineer than a chatbot.

RustFlutterAICLI
Built with Unity Sites