Uses
Tools & stack
What I actually reach for when I build. Nothing aspirational — every tool below is behind a project that shipped or runs in production.
The through-line: prefer self-contained, portable tools. A lot of what I make runs with no backend, no install and no build step, so the stack skews toward vanilla JavaScript and the browser's own APIs — with modern React/Next.js and serverless where a real product needs them.
01Languages
- JavaScript (vanilla) — my default for portable, zero-build tools. Powers Shipyard IMS, the Retail Shift Scheduler, AdvanceForm's SPA frontend and QuizMaster.
- TypeScript — for the typed, componentised builds: the Manpower Integrated Scheduler and the Cloudflare-Workers backends.
- Python — AI/RAG tooling, document processing and finance work: excelRAG, the PDF → Markdown converter, the stock backtester and the Daily Market Reports pipeline.
- MQL5 — for SafeQuantEA, an automated MetaTrader 5 trading robot.
02Frameworks & libraries
- Next.js 16 + React 19 — the full-stack product apps (Makan Go Where).
- Vite + React — modern SPA builds (Manpower Integrated Scheduler, Photoshopeditor).
- Flask — thin Python web layers for excelRAG and the backtester; Streamlit for quick data dashboards.
- ExcelJS for spreadsheet round-tripping, HTML5 Canvas for PDF/PNG export, and Chart.js for dashboards.
- Sentence-Transformers + GGUF / ctransformers for local embeddings and offline LLM inference.
03Browser platform APIs
The reason "no backend" is possible at all. These do the heavy lifting in my single-file apps:
- File System Access API — read/write the user's own files as the source of truth (Shipyard IMS, Retail Shift Scheduler, QuizMaster).
- IndexedDB & localStorage — working state, snapshots and rolling auto-backups.
04Hosting & infrastructure
- Cloudflare Pages — this site (sohsimple.sg).
- Cloudflare Workers + D1 — serverless/edge backend for AdvanceForm and the Shipyard IMS cloud build.
- Supabase — Postgres, Realtime and anonymous auth for Makan Go Where.
- Vercel — deploys for the Next.js apps.
- Node + Express — the traditional backend option, run interchangeably with the edge one in AdvanceForm.
- PyInstaller — packaging Python tools as standalone Windows executables (excelRAG, PDF → Markdown).
05AI & automation
- Claude scheduled agents — the unattended engine behind Daily Market Reports, running 90+ days.
- Local LLMs (GGUF) — fully offline document Q&A in excelRAG.
- Google Gemini — plain-English form generation in AdvanceForm.
- OpenAI vision — OCR of scanned pages in the PDF → Markdown converter.
06Testing & workflow
- Playwright for end-to-end suites and Vitest for units — the Retail Shift Scheduler (~135 tests) and Makan Go Where (66 tests) lean on these.
- A shared personal design system — the "Shipyard IMS" design language — reused across my scheduling and inventory apps so they feel like one product line.
- A Homelab (NAS + Docker) for self-hosting and experiments.
Need an internal tool that runs without IT approval?
Let's talk. If your team is drowning in spreadsheets, there is usually a self-contained tool that fixes it.
Get in touch