I thought I finally got my first client on Contra without sending a single cold DM. An account us...I thought I finally got my first client on Contra without sending a single cold DM. An account us...
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started
I thought I finally got my first client on Contra without sending a single cold DM.
An account using the name Adam Coddington messaged me. He said my background was interesting, then introduced a project called SynapseIQ as “ChatGPT for company documents.”
He sent me a GitHub repository and asked me to get the app running. He said he would ask a few questions about the code.
The app looked real. npm install pulled 253 packages and showed zero vulnerabilities. The frontend and backend started, and the demo login worked.
His next message asked me to inspect how the login session worked. Then he asked about my services and pricing.
I have landed zero clients on Contra, so I was already thinking this could be my first one.
I came back to reply and Adam was gone. His profile and our full conversation had disappeared.
I first thought Contra had a bug. Then I checked the repository again, line by line.
Inside a backend file named calibration.payloader.ts, I found code that decrypts hidden data and executes it with Node access:
new Function("require", referenceResolver)(require);
Two npm packages, deepjoin@4.3.3 and stackpaths@3.1.2, carried the encrypted pieces. The backend reassembled and decrypted them. It then executed the result.
The trigger sat behind the authenticated analytics request used by the dashboard. Once called, the backend could fetch fresh JavaScript from a remote server and execute it on the developer’s machine.
I checked my server logs before assuming the worst. The analytics endpoint never ran, so I have no evidence the payload executed on my Mac. I stopped both servers and did not run the project again.
Contra needs stricter checks and fast action against accounts that send malicious projects to freelancers. I reported this because the next developer may open the dashboard.
I’ve earned over $1M on Contra, and now I’m opening up the profile behind that number.
The Contra Handbook is live.
It brings together how I present my work, structure my services and make it easier for a client to understand what they can hire me for.
And making it meant putting my own profile under inspection.
There was a typo in my title. 20 services that needed cutting down. 14 products with no reviews between them. Those changes are part of the course. You watch me work through them on screen, with the reasoning behind each decision.
Across eight modules, you work through your own profile too. Each chapter ends with something concrete to change, and the final module brings it into a 90-day plan.
You get the videos, written Handbook, profile scorecard, role specific guidance and access to The Ledger, the private course group.
If you’ve put real effort into your work and want your Contra profile to represent it properly, this is for you.
Top 1% of creatives on Contra with a 195 score 🎉 What I'm most excited about is who's showing up because of it: new clients, designers, new conversations, projects I wouldn't have found on my own. Grateful, and ready for more.
Atelier Pétale — Boutique Botanical Hair & Color Studio
Location: 428 Blossom Row, Suite 3B, Design District
Problem solved: Atelier Pétale needed to turn customer inquiries into confirmed appointments while reducing the manual work of answering questions, managing availability, matching clients to the right service and stylist, and aligning colour expectations.
Who is the salon?
Atelier Pétale is a boutique hair and color studio led by Elena, a master colorist and the owner, known for signature 3-hour botanical balayages. She also manages two other specialists with different services and schedules: Marcus and Chloé.
Their quirks
Elena can be unavailable for messages while working with lightener.
Her signature balayage appointments can occupy three hours and are booked weeks in advance.
Clients often begin with vague questions about booking and need help determining the right service.
Clients sometimes request the wrong stylist or times that conflict with approved leave.
Colour clients can have expectations that do not match what is realistically achievable.
The solution
We rebuilt the customer journey around “Can I book?” → “You’re booked.”
AI Support: answers client questions and can book appointments directly through chat.
Find My Match: clients upload their own hair photo, combine it with existing shades or reference colours, and preview a realistic result before booking—helping align expectations.
Smart booking: availability accounts for stylist schedules, leave, existing bookings, and service duration.
Automated follow-through: confirmations, rescheduling, cancellations, reminders, and waitlist recovery.
Elena had to handle inquiries, determine what service a client actually needed, manage stylist availability, deal with cancellations and scheduling conflicts, and repeatedly clarify what colour result a client should realistically expect.
After
Atelier Pétale turns that process into a self-service booking journey: AI Support answers questions and books directly from chat; Find My Match lets clients upload their own hair and preview reference or existing colours realistically; and the booking system matches services to the correct stylist and available time.
"Find My Match" caught my attention more than the booking flow itself. For a salon, helping someone figure out what they actually need before asking them to choose a service could remove a lot of friction. Nice product decision. Is the matching based purely on preferences or...