Votedesk - Feedback Boards, Roadmap & Changelog SaaS — quality report QR-26-00099 | Vibe96

‹ Votedesk - Feedback Boards, Roadmap & Changelog SaaSQuality report QR-26-00099

Votedesk - Feedback Boards, Roadmap & Changelog SaaS
Vibe96 quality report

Votedesk - Feedback Boards, Roadmap & Changelog SaaS

Self-hosted feedback boards, public roadmap and changelog. Run it for your product or sell it as a multi-tenant SaaS.

Product ID
B0055-84814
Builder
Asad · Devwhite
Version reviewed
1.0.0 · released 5 Nov 2026
Stack
Laravel 13 (laravel/framework ^13.17) · PHP 8.3 or later · MySQL 8 or MariaDB 10.3+ (SQLite for local development)
Built with
Claude Code
Review period
31 Oct 2026 – 5 Nov 2026 · 1 round of changes
78out of 100 Passed with 4 warningsPass mark 75 and no failing check.

Scores

Security77
Code structure84
Docs & completeness73
Dependency health82
Build & deploy72
  1. AI code audit6 checks · 31 Oct 2026
  2. Installed & run5 Nov 2026
  3. Demo vs delivered5 Nov 2026
  4. Final sign-off5 Nov 2026

At a glance

  • Installed and run from the delivered code — 8 of 8 checks answered yes.
  • Live demo compared with the delivered code — 7 of 7 checks answered yes.
  • 11 of 15 promised items delivered (setup guide, example config and the rest).
  • Security scored 77/100 with no failing check.
  • 4 open warnings — explained in part 1.
Part 1

AI code audit

The full source archive was read by our AI auditor against each check. It reads the code — it does not run it; running it is part 2.

CheckWhat we foundScoreResult
Secrets & credentialsRegex candidates in PHP code are validation rules, framework calls, or variable names, not secrets. The docker-compose.yml ships fixed database passwords, and the demo accounts use a well-known password. These are weak defaults rather than live credentials, and .env.example is blank.88Warning
Dependency vulnerabilitiescomposer.json is well-formed with caret-pinned production dependencies and a committed composer.lock (324 KB). No wildcard or 'latest' versions appear. The contents of the lockfiles were not available, so installed versions could not be checked against advisories, and no package-lock.json appears in the tree (it may have been omitted as a lock file).82Pass
Authorisation & access controlThe architecture is solid: Form Requests, Policies, a tenant WorkspaceScope, scopeBindings, a super-admin middleware and bcrypt hashing via the User model. However a project file and most controllers were omitted from the digest, so per-route guards and ownership checks could not be traced. A few concrete risks stood out in the visible code.72Warning
Database access rulesThe architecture is good: a global WorkspaceScope on tenant models, workspace_id kept out of mass assignment, scopeBindings() on routes, and Eloquent used throughout. The digest did not include the migrations, services, raw queries or WorkspaceScope itself, so I could not confirm there is no string-built SQL, unscoped destructive statements, or missing foreign keys and indexes. The score is capped until those files are reviewed.72Warning
Code structure & duplicationThe digest shows a sensible layout: thin controllers, Form Requests, Policies, a services layer and a documented architecture in CLAUDE.md. Duplication and god-file risks cannot be fully verified from the excerpts, and a few hard-coded demo values are visible.84Pass
Build reproducibilitycomposer.json, package.json, lockfile and migrations are coherent, and vendor/node_modules are excluded from the archive. However HowToSetup.md was not visible in the digest, so prerequisites and step order could not be verified, and there are several small version and packaging inconsistencies.72Warning

Open warnings

Problems that did not stop the listing. They stay on the product page until a later version fixes them.

Warning 1 No real credentials found; weak default passwords in docker-compose and demo accounts ship to buyers

Regex candidates in PHP code are validation rules, framework calls, or variable names, not secrets. The docker-compose.yml ships fixed database passwords, and the demo accounts use a well-known password. These are weak defaults rather than live credentials, and .env.example is blank.

Warning 2 Authz design looks sound, but routes/controllers were mostly not visible, so full coverage is unverified

The architecture is solid: Form Requests, Policies, a tenant WorkspaceScope, scopeBindings, a super-admin middleware and bcrypt hashing via the User model. However a project file and most controllers were omitted from the digest, so per-route guards and ownership checks could not be traced. A few concrete risks stood out in the visible code.

Warning 3 Mostly reproducible Laravel build; setup doc unverified and a few consistency gaps

composer.json, package.json, lockfile and migrations are coherent, and vendor/node_modules are excluded from the archive. However HowToSetup.md was not visible in the digest, so prerequisites and step order could not be verified, and there are several small version and packaging inconsistencies.

Warning 4 Tenant scoping looks solid, but the migrations and queries could not be inspected, so the review is incomplete

The architecture is good: a global WorkspaceScope on tenant models, workspace_id kept out of mass assignment, scopeBindings() on routes, and Eloquent used throughout. The digest did not include the migrations, services, raw queries or WorkspaceScope itself, so I could not confirm there is no string-built SQL, unscoped destructive statements, or missing foreign keys and indexes. The score is capped until those files are reviewed.

Requirement list

What the builder agreed to deliver before uploading — 11 of 15 met.

  • Complete source for every component Met
  • No real credentials in the archive Met
  • Builds from a clean machine Partial
  • Database script or migrations Met
  • Authentication and roles on every mutating endpoint Partial
  • Pinned dependencies without critical CVEs (nice)Partial
  • Documentation set (nice)Met
  • Working live demo Partial
  • README.md Met
  • HowToSetup.md Met
  • CLAUDE.md (or AGENTS.md) (nice)Met
  • CHANGELOG.md (nice)Met
  • .env.example Met
  • a project file Met
  • a project file (nice)Met
Part 2

Human review

Reviewers from the Vibe96 team in Dubai worked through each question below; a final reviewer signed it off.

Stage 1 — Installed and run from the delivered code

Completed 5 Nov 2026

A reviewer installed the product on a clean machine, following only the guide that ships with it.

QuestionAnswerReviewer's note
Packages restored without errorsYes
Solution builds cleanYes
Database created from the shipped script or migrationsYes
First sign-in works with the documented stepsYes
Setup guide is accurate and completeYes
Every module in the feature list opens and worksYes
No real secrets in the archiveYes
Branding and company details can be changed without codeYes

Stage 2 — Live demo compared with the delivered code

Completed 5 Nov 2026

A second reviewer checked that what the listing and demo show is what the buyer receives.

QuestionAnswerReviewer's note
Demo URL is reachableYes
Demo credentials workYes
Demo runs the same version as the archiveYes
All five differentiators are visible in the demoYes
Screenshots match the demoYes
Nothing in the demo is missing from the codeYes
Datasheet claims are accurateYes

Changes asked for during review

  • None — approved on the first round.
  • Sign-off: approved for sale on 5 Nov 2026 with 4 warnings shown publicly.

What this report covers — and what it doesn't

  • It covers version 1.0.0 exactly as the buyer downloads it: the source archive, the setup guide and the live demo on the dates above.
  • It is not a penetration test, a performance or load test, or a legal review of third-party package licences.
  • Scores are a point in time. Libraries age; a later version is audited again and gets its own report.
  • Your setup matters. Hosting, configuration and changes made after purchase are outside this review.
  • How the score is made: each AI check is scored 0–100 and weighted (security counts most). A listing needs 75 or more, no failing check, and the human review passed.
  • Always try the live demo before buying, and ask the builder questions from the product page.

Vibe96 FZ-LLC, Dubai, UAE. This report describes the product at the time of review and is not a warranty.