πŸ“Œ Midshift β€” Technical Due Diligence

πŸ”’ Confidential. This assessment describes unpatched security weaknesses in a live product and evaluates proprietary code. Keep this repository private and share it only with people who are party to the transaction.

A structured technical due diligence of Midshift, a campaign-production platform for retail marketing teams and their agencies (Next.js Β· React Β· TypeScript Β· Supabase Β· Vercel). It was carried out on 2026-10-07 against the source supplied for audit (single commit 3789df6, 2026-10-06), for a party considering acquiring, investing in or taking over maintenance of the software.

Key

RatingSeverityStatus
🟒 Green β€” 4 to 5πŸ”΄ Criticalβœ… Yes
🟑 Amber β€” 3🟠 High❌ No
πŸ”΄ Red β€” 1 to 2🟑 Medium◐ Partial
●●●○○ β€” score out of 5βšͺ Low

βš–οΈ Verdict

πŸ”΄ ●●○○○ Overall: 2 / 5 β€” Red as delivered; 3 / 5 Amber once two small Critical fixes are deployed and verified.

A well-conceived, carefully engineered product with distinctive, well-tested domain logic, held back by two cheap-to-fix but Critical security exposures and by a bus factor of one. Read the executive summary first.

🚩 Top risks

RiskSeverity
1Any signed-in user can make themselves an administrator (database permission rule)πŸ”΄ Critical
2Web framework pinned to a release with published critical vulnerabilitiesπŸ”΄ Critical
3Code, operations and IP concentrated in one person; history squashedπŸ”΄ Critical
4Sign-off integrity can be undermined from inside a job🟠 High
5Riskiest code is the least tested; failures are invisible🟠 High

πŸ’Ž Strengths worth paying for

  • Distinctive, well-tested domain IP β€” copy-deck parser, filename matcher, single tracking-link builder
  • Engineering discipline turned into automation β€” strict types, clean lint, bespoke guard-rail tests
  • Exceptional written rationale behind decisions
  • Clean, low-cost stack and licensing; only three runtime vendors
  • One database per client β€” strong data isolation by design

πŸ“Š Scorecard

#ReportRatingRAG
01Product & Domain Overview●●●●○ 4 / 5🟒 Green
02Technology Stack & Codebase Complexity●●●○○ 3 / 5🟑 Amber
03Architecture & Design●●●○○ 3 / 5🟑 Amber
04Domain Model & Business Rules●●●○○ 3 / 5🟑 Amber
05Code Quality & Standards●●●●○ 4 / 5🟒 Green
06Technical Debt & Maintainability●●●○○ 3 / 5🟑 Amber
07Testing & QA●●●○○ 3 / 5🟑 Amber
08Dependencies & Licensing●●○○○ 2 / 5πŸ”΄ Red
09Security & DevSecOps●●○○○ 2 / 5πŸ”΄ Red
10Source Control, CI/CD & Development Practices●●●○○ 3 / 5🟑 Amber
11Delivery Metrics & Key-Person Risk●○○○○ 1 / 5πŸ”΄ Red
12Documentation Review●●●○○ 3 / 5🟑 Amber
13Integrations●●●○○ 3 / 5🟑 Amber
14Executive Summary & Overall Assessment●●○○○ 2 / 5πŸ”΄ Red

The index lists each report's top risk.


πŸ“– How to read the reports

Every report follows the same structure: πŸ“‹ Summary (plain English) Β· 🎯 Rating Β· πŸ” Findings Β· 🧾 Evidence Β· ⚠️ Risks Β· βœ… Recommendations.

Every finding carries an evidence tag:

  • [Observed] β€” verified directly, citing the file and line or the command run and its output
  • [Inferred] β€” a reasoned conclusion from indirect evidence, with the reasoning shown
  • [Unavailable] β€” could not be assessed from the repository; the access needed is stated

Metrics are measured, never estimated. Where something could not be measured, the report says so and names the data needed. The executive summary consolidates every [Unavailable] item into a list of follow-up questions and access requests for the vendor.

πŸ§ͺ Method

Measured with cloc, lizard (cyclomatic complexity), jscpd (duplication), Vitest with V8 coverage, Playwright, npm audit, license-checker and gitleaks, alongside a manual review of the code, schema, migrations and documentation. Ratings use a 1–5 scale: 5 Excellent Β· 4 Good Β· 3 Adequate Β· 2 Poor Β· 1 Critical.

Limits: the source was supplied as a single squashed commit, so history-based analysis (churn hotspots, contributors, delivery metrics) was not possible, and no live deployment, database or hosting account was accessed.