Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Client did not pay? (github.com/kleampa)
48 points by arsalanb on Feb 5, 2019 | hide | past | favorite | 18 comments


Is it me or this kind of "Easter eggs" are completely unprofessional? If you have clients then should have basic contracts, agreements, etc. Isn't this what courts are for?


My lawyer friend advised against any of this kind of stuff. Something about Tortuous Interference. So, yeah, not just you.


It'd be OK if you added it in the contract. "Deliverable will degrade in visual appearance through a 10% daily reduction in opacity if payment is not made on the schedule and according to the terms described in section X.Y below. Full payment including any applicable late fees or interest will restore the site to full functionality and visual appearance and will remove the opacity reduction code."

At the very least it'd spark an interesting discussion with the client that might allow you to reach another measure which would satisfy both parties.


With cars having increased connectivity, I wonder how much drama it would cause if the radio stopped working, fuel efficiency started going down, etc, when you were late on a car payment.


Reminds me of a Barnaby Jack Defcon talk about medical implants, and the idea that they could stop functioning properly if you miss your payments.

I'll try and find it.


Repossession is one thing and is certainly a more professional, and legal, than this kind of ransom.

If a contract was in place for a piece of work, similar to a finance agreement on a vehicle, then legal recourse is the way to go. Be it repossession or a lawsuit.

The right answer is always have a legally binding contract :)


As someone who works for a large asset finance company I can tell you that the plan is to ensure a car with missed payments cannot be started.

We do offer payment holidays and finance restructuring as to those that miss a payment.



Does stuff like this actually work? Never done anything like this before. Seems very unprofessional.

Get a 1/2 deposit upfront. This clears out most of the scrubs. Only commit your time when the client has committed money.


1/2 or 1/3 deposit upfront and then other payments of maybe 10-20% when certain milestones are completed.

And never start work without a contract which has been reviewed by a lawyer and that clearly states payment terms and repercussions for non-payment.


What you really need is some kind of Angular/Webpack plugin that add obfuscated code to call out to some 3rd-party escrow/broker service to check if a flag has been raised and if so refuse to load. If you only had access to the final bundled code it might be hard to find what part to rip out (think like the "Preview" or "Sample" slightly opaque text on images. Then you could deliver the final product sans "DRM" after payment.

I think this could be thwarted with a CSP policy? Not really sure.


Bonus points to load and inject all the HTML markup via ajax from a server you control, so even if they pay some kid to remove the opacity you can still time-bomb the site underneath them.

I did this once for a client that didn't pay (15 years ago when I was practically still a kid). It did not go well and I still did not get paid, but at least it was kind of fun.


Then they really wouldn't own the site, and have an even better case for not paying you.


Original here which was on HN 2 years ago: https://github.com/andreapaiola/F-D-/blob/master/fade.js


Really easy to rip this out. Some of the greensock demo libraries were designed to break except on certain domains, I remember I thought those were pretty clever. Also if the code is server-side rendered and you withhold the source it makes it even harder.


everytime your client makes a payment, a certain portion of your code becomes local rather than served, from your infrastructure, when the payments are finished, all the code segments will be local and integral to the clients copy. if the client refuses to pay they no longer have server access.

in other words, they continue to recieve updates if they continue to pay.


just schedule the cron job: -rm -rf /


Haha, Genius :p




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: