// 08 States & mobile — empty / loading / error / mobile network const StatesTab = () => (
The system needs a bit more from you
Add subdomains and at least one need or offer to unlock matches.
Continue questionnaire
Drawing your ecosystem…
computing centrality · 1.4s
Couldn’t load the graph
Cached data shown. Try again, or open the list view.
RetryOpen list
Network
Your ecosystem
{Array.from({length:18}).map((_,i)=>{ const x=20+Math.random()*200, y=20+Math.random()*140; const c=['#1c5fbf','#d96b2c','#2a8a5c','#b14fa6'][i%4]; return ; })}
{['People','Projects','Orgs'].map((t,i)=>{t})}
Selected
Liesbeth K.
92% similar
Why? →
Match · 1 of 12
Sara × HYDRO-NL
comp 88%
Why
  • Your offer ↔ their need
  • 3/5 subdomains overlap
  • TRL 5 fits your position
Send signal Save Skip
swipe → next
Visibility & data
Profile visibility
Who can see your full profile
AllCommunityHidden
Appear in network graph
Anonymous mode replaces name with role
on
Allow signals (introductions)
Other users can request to connect
on
Your data
Export profile · Re-take questionnaire · Delete account
Export JSONRe-takeDelete
Stack
  • Next.js 14 (app router) · TypeScript
  • Tailwind + shadcn/ui · Inter + a serif display
  • PostgreSQL · Prisma · Supabase auth
  • Graph: react-force-graph (2D) · sigma.js fallback
  • Server actions for matching pipeline
Pipeline
  • onSubmit → normalize → tag
  • compute fingerprint vector + need/offer set
  • pairwise scoring (limit to ≤5k)
  • persist RelationshipEdge rows w/ explanation
  • nightly recompute · on-demand recompute
Open questions
  • Taxonomy: imported skill framework vs hand-curated?
  • Anonymous mode default on or opt-in?
  • Curator approval blocking vs post-hoc?
  • How are challenges/bottlenecks free-text vs tagged?
  • Multi-language NL/EN?
); window.StatesTab = StatesTab;