Wintrust
Collect feedback from clients, decide what's allowed on your marketing site, and show only the endorsements you've approved—no copy-pasting DMs or losing track of who said what. Technically it's forms or email invites, a review dashboard, and a quote wall you can embed. Open source under hungrycheetah-studio/wintrust.
Visitors only see your site. They don't log into Wintrust. Behind the scenes, your website asks Wintrust for approved quotes you've already cleared in the dashboard—plus a database holds the data and optional email sends invite links.
Plain-language flow
Read top to bottom on the diagram, or scan this quick list:
- Someone visits your website—they never need a Wintrust login.
- The testimonial wall asks for quotes you've already approved (pending ones stay private until you say yes).
- Your site quietly forwards that request to the Wintrust service—the handoff in the middle of the diagram.
- Wintrust reads and saves data in a database; optional email can send invite links so people submit feedback securely.
Setup checklist (developers)
Environment variables, hosting, and embed paths—skip this if you're not touching the codebase.
- Deploy the Wintrust app (e.g. Vercel). Create a Supabase project and run Wintrust's migrations. Set
NEXT_PUBLIC_SUPABASE_URLandNEXT_PUBLIC_SUPABASE_ANON_KEYfor the dashboard; addSUPABASE_SERVICE_ROLE_KEY(or equivalent) so/api/testimonialscan return approved rows. - Register a site in the dashboard; copy its public
site_key. New submissions wait in a queue until you approve them, so the public wall only shows what you've signed off. - Optional email: configure
RESEND_API_KEYandRESEND_FROM_EMAILon Wintrust so invite links actually send. - Embed on your portfolio: install the
wintrustnpm package and render<Wall siteKey=… />. Browsers treat your marketing domain and Wintrust as different websites. Either setWINTRUST_EMBED_ORIGINSon Wintrust so the wall can call Wintrust from the browser, or forward (proxy)/wintrust-hc/*to Wintrust's/api/*viaWINTRUST_API_UPSTREAMand pointNEXT_PUBLIC_WINTRUST_API_URLat the same-origin path (this repo's pattern).
To show the live wall on this portfolio again, import the component at components/WintrustTestimonialsSection.tsx on whatever page should display testimonials.
Sample testimonials
Nag
CEO · Hungry Cheetah
★★★★★
Great guy to work with
Sam Rivera
Design lead
★★★★★
We needed a single path from “someone sent kudos” to “it’s allowed on the homepage.” Wintrust keeps pending and approved separate so the site only shows what we’ve actually signed off.