Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
SkillMark connects skilled tradespeople with contractors through real job photos and proven work, not resumes.
BusinessTypeScript · PLpgSQLGitHub @lukehenning9-starOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗
The skills network for the trades. A portfolio-first professional network where skilled tradespeople (electricians, plumbers, HVAC techs, welders, and more) build a portable career profile from real job photos — not resumes — and companies find and connect with them.
🔗 Live demo: joinskillmark.com
Most professional networks are built for white-collar, resume-legible careers. SkillMark is built for the trades, where the proof of skill is the work itself. Tradespeople document real jobs with photos, build a permanent portfolio that travels with them across employers, and get discovered by companies hiring for proven ability.
Built solo as a full-stack product: 28 routes, 50 server actions, and 16 row-level-security–protected Postgres tables across ~11K lines of TypeScript, deployed on Vercel with live users.
app/
page.tsx Marketing landing page (custom landing.css)
dashboard/ Ranked activity feed (server component + client feed)
[username]/ Public profile pages
projects/ Project create / edit / detail + photo uploads
search/ Live people/company search
messages/ Real-time messaging
settings/ Profile + account management
onboarding/ Worker and company onboarding flows
actions/ Server Actions (auth, profile, projects, messaging, billing, …)
api/ Route handlers (username check, Stripe webhook, …)
components/ Reusable UI (nav, inputs, modals, QR/share buttons, …)
lib/ Types, Supabase clients, image compression, premium helpers
supabase/schema.sql Full database schema — tables, RLS policies, functions, triggers
proxy.ts Edge middleware: session refresh + route protection
docs/ Security audit and product/strategy planning
Security was treated as a first-class concern — a full audit (documented in docs/SECURITY_AUDIT.md) drove the hardening:
SECURITY DEFINER functions.npm audit.Prerequisites: Node.js 18+, a Supabase project, (optionally) a Stripe account.
git clone https://github.com/lukehenning9-star/skillmark-app.git
cd skillmark-app
npm install
Create .env.local:
NEXT_PUBLIC_SUPABASE_URL=your-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# Optional (premium billing): STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET,
# NEXT_PUBLIC_STRIPE_PREMIUM_PRICE_ID, SUPABASE_SERVICE_ROLE_KEY
Set up the database by running supabase/schema.sql in the Supabase SQL Editor, then:
npm run dev
The app runs at http://localhost:3000.
docs/SECURITY_AUDIT.md — security review and remediation.docs/FUTURE_PLANS.md — product strategy and roadmap.docs/YEAR_ONE_PLAN.md — go-to-market playbook.© 2026 SkillMark. All rights reserved.