Skip to main content
← All Projects
tooling2024–2025active

Subsource

Yelp for construction. Find and review contractors, subs, and suppliers

Overview

Subsource is a review directory for commercial construction, essentially Yelp for contractors. Businesses search across four categories (contractors, subs, suppliers, agencies) and 80+ trade tags, then leave star-rated reviews that business owners can reply to. Ratings recalculate on every new review. Sign-in is Google OAuth with 1-hour JWT tokens so nobody has to create a password, and reCAPTCHA v3 filters bot signups. The API exposes 53 endpoints with full CRUD across every entity. Nuxt 3 SSR keeps business profile pages indexable.

Built With

Nuxt 3
Vue 3
TypeScript
MongoDB
Tailwind CSS
Google OAuth
JWT
reCAPTCHA v3

Architecture

Nuxt 3 AppFrontend
Server Routes53 Endpoints
Google OAuth + JWTAuthentication
Search EngineDiscovery
Review SystemRatings & Replies
Business ProfilesClaims & Listings
MongoDBDatabase

Key Highlights

01

B2B Directory

Users can search contractors, subcontractors, suppliers, and agencies across 80+ construction industry tags.

02

Review System

The review system supports star ratings with detailed reviews, update history, and business replies so both sides get a voice.

03

Profile Claims

Businesses claim their listings to manage profiles, respond to feedback, and control their public presence

04

Auth & Security

Authentication uses Google OAuth with JWT tokens (1-hour expiry) and reCAPTCHA v3 for frictionless, bot-resistant onboarding.

05

53 API Endpoints

The API provides full CRUD across 8 resource categories: contractors, subcontractors, suppliers, agencies, reviews, blogs, claims, and users.

Subsource: Yelp for construction. Find and review contractors, subs, and suppliers
Subsource: Yelp for construction. Find and review contractors, subs, and suppliers

Get in Touch

Want to work together?

Whether you have a project in mind, want to collaborate, or just want to say hi, I'd love to hear from you. Drop me a message and I'll get back to you as soon as I can.