TenantProof
Live in production
A mobile-first web app that helps private renters in England build a defensible,
time-stamped evidence trail (condition photos and repair logs) and
export it as a court- and adjudicator-ready PDF.
The Renters’ Rights Act 2025 passed, but its new Ombudsman isn’t expected
until roughly 2028, leaving a multi-year gap where tenants have no simple way to
document issues and escalate correctly. Free core tool, plus a £12 one-off
“Dispute Pack.” Built solo, end to end: product, architecture, compliance
design, deployment, and ad operations. Operated as Northwind Labs Ltd, an
ICO-registered data controller.
Stack
- Next.js 16
- React 19
- TypeScript
- Tailwind v4
- Supabase
- Stripe
- @react-pdf/renderer
- Playwright
- ffmpeg
- Resend
- Vercel
Engineering highlights
- Tamper-evident evidence chain
- Photos are captured live in-browser via
getUserMedia and
fingerprinted client-side with a SHA-256 hash. The capture method and hash are
printed into the exported PDF, so a third party can verify a file hasn’t
been altered since capture.
- Security & data protection by construction
- Postgres Row-Level Security on every table (a user can never read
another’s rows), plus full UK GDPR export and account-deletion
flows, data minimisation, and PII masking in session replay.
- Consent-compliant analytics
- A four-provider stack behind a consent gate, implementing Google Consent Mode
v2: analytics load cookielessly denied-by-default so conversions still model,
upgrade on accept, and hard-kill on reject, with session replay and the Meta
Pixel fully gated.
- Programmatic ad-creative pipeline
- A Playwright + ffmpeg renderer turns parameterised HTML/CSS into 97 production
ad assets across six formats. Root-caused a capture race that opened every clip
on ~2s of blank white, and trimmed exactly the measured lead-in with
ffmpeg -ss.
- Out-of-home attribution
- A
/r/<slug> redirect routes billboard QR scans through UTM
tagging into GA4, making physical out-of-home advertising measurable
(normally a black box).
- Regulatory-constrained design
- Explicitly not legal advice: deterministic template letters with no runtime
LLM, persistent disclaimers, and mandatory signposting to Shelter, Citizens
Advice and GOV.UK.
By the numbers
- Migrations
- 8 · RLS enforced on every table
- Ad assets
- 97 rendered across 6 formats
- Analytics
- 4 providers · Consent Mode v2
- Compliance audit
- 12 ad variants · 25-agent pipeline
Gold Adaptive Pro
Built · MetaTrader 5
An algorithmic trading system for XAUUSD, written as a MetaTrader 5 Expert Advisor.
It buys pullbacks inside an established trend, sizes every position from its own stop
distance, and stands aside once a move has gone parabolic.
Most trend systems fail on the same two things: they size positions by habit rather
than by risk, and they enter hardest exactly when a move is about to exhaust. This one
derives its lot size backwards from the ATR stop, so every trade risks the same
fraction of equity whatever the volatility, and it treats a high ADX reading as a
reason not to trade rather than a confirmation.
- Platform
- MQL5 · MetaTrader 5
- Regime
- Slow dual-EMA regime filter
- Entry
- RSI pullback · ADX ceiling
- Risk
- ATR stops · equity-derived sizing
Car Arbitrage Engine
Shipped · v4.1
A production Python engine that watches used-car markets for price dislocations,
verifies each candidate against DVLA records and multi-round vision AI, and surfaces
only the vehicles worth acting on.
- Stack
- Python · asyncio
- Data
- DVLA VES integration
- Vision
- Three-round AI consensus
- Pricing
- Live median market analysis