8 ms·
Show HN: I reverse engineered top websites to build an animated UI library
Looking at websites such as Clerk, I began thinking that design engineers might be some kind of wizards. I wanted to understand how they do it, so I started reverse-engineering their components out of curiosity. One thing led to another, and I ended up building a small library of reusable, animated components based on what I found. The library is built in React and Framer Motion. I’d love to hear your feedback
- bflesch 1y agoThanks for sharing, it looks very good. Unfortunately on my system it has very low fps due to software rendering.
- freetonik 1y agoThe quality is very impressive! Congrats on the launch.
- armedin 1y agoThank you, appreciate it!
- naavis 1y agoLooks cool, but the site is very heavy! I have an RTX 3070 GPU, and GPU usage went shot to 70% when I opened this website on Firefox.
- armedin 1y agoThank you! To be fair, there's plenty of room for optimisation. I have only tested on an M1 on Chrome. It's a tradeoff between looking cool and being performant
- deleted 1y ago[deleted]
- ivanjermakov 1y ago> It's a tradeoff between looking cool and being performant Can't disagree more. You can almost always have both, performance optimization is a thing.
- armedin 1y agoTrue — good optimization can get you both. It used to be way less performance, I already tried to optimise (at least until my machine was running it fine), but it seems like there's still much more that can be done
- hsshhshshjk 1y agoAre these components only tested in chrome?
- FrancoisBosun 1y agoI use an older iPad and the page crashed so hard the Home button didn’t do anything for about 30 seconds. The iPad eventually turned off, because I had pressed the power button, to no avail, a couple of times.
- toddmorey 1y ago"reverse-engineering their components out of curiosity" - Fantastic sharing your learnings with the community - Fantastic Attempting to make subscription money off the clones - Not so fantastic Sorry... something about that last bit just really hit me wrong. Like when people make a paid Minecraft Tips "App" that's just content scraped from the web.
- armedin 1y agoYep, totally fair point and I get the skepticism. Just to be clear, some components are inspired, and some are also patterns and ideas I created myself along the way. There's a lot of work behind the scenes: recreating animations, building variants, styling, packaging for NPM etc. (the code is written using MUI, so it's all original). I'm trying to bring that level of polish to a wider set of devs who may not have the time to build it all from scratch, and I'm giving credits to the original inspirations where due. Appreciate the feedback though; it's a valid concern.
- Uptrenda 1y ago[flagged]
- armedin 1y agocapitalism made me do it.
- uncomplexity_ 1y agowhy, what's wrong with it? on the minecraft tips app, you are paying money for something that saves you time. on this one, you are paying for the same thing here, unless you wanna reimplement it by your own. and there are lots of avenues to have an edge, such as support for other framework / libraries, better / more efficient implementation, more configurability / control on possible variants. please don't shoot down people on their attempts to make a living on their efforts.
- brulard 1y agoExactly. Some people feel entitled to get everything for free. It's obvious a lot of effort went into building these. If someone does not see the value, no one forces him to pay.
- caseyy 1y agoI love that the glowing orb is a component. Many websites could use an orb.
- armedin 1y agohehe that's one of my favourites as well. You have good taste :)
- ziftface 1y agoWould love if the site had some more information about how the components are implemented, eg does it use tailwind so they're easily modifiable, is there a light mode and a dark mode for each, can you update the animations to fit your needs, etc. They look good though!
- armedin 1y agoShoot, I forgot to add the FAQ section. Thank you! The components are built with Framer Motion and MUI (just for the sx prop). You will have access to the raw code, github repo and the npm package. If the component needs to be modified heavily, you can use the raw code. There's still more work that needs to be done to handle the full customisation via the npm package. I didn't use tailwind strictly because existing solutions all tend to use tailwind and shadcn, leaving other developers who don't use tailwind with not many options.
- handfuloflight 1y agoAbsolutely beautiful set here. I'd pay for à la carte.
- armedin 1y agoAppreciate it! À la carte is something I've thought about, but wouldn't work for this case. Feel free to reach me out on X
- handfuloflight 1y agoIs it just due to the sheer effort of implementing individual billing and fulfillment per component? If that's why, then I'll just buy the whole thing.
- armedin 1y agoAppreciate the support! Yeah, it’s mostly the overhead of billing and managing access per component. If the library gets big enough and there's more demand for à la carte, I’d definitely consider revisiting it. Just keeping things simple for now so I can keep building.
- morteify 1y agoThe Caesar Cipher component is displaying incorrectly in Safari. Its elements are positioned off-center. It works fine in Chrome and Firefox.
- armedin 1y agoThanks for pointing it out! I'll fix it.
- Fokamul 1y agoWeb would be a better place without UI animations.
- armedin 1y agoThe early 2000s was the golden era of web.
- gherkinnn 1y agoMy $formative_years were the golden age of $thing
- whatnow37373 1y agoI'll just conclude this process by positing my contribution: $instance_of_some_witty_template
- deleted 1y ago[deleted]
- Griever 1y agoPersonally I don’t mind them and sometimes find them quite tasteful. Fortunately a lot respect ‘prefers-reduced-motion’ these days.
- armedin 1y agoThat's something I have on my backlog
- EvanAnderson 1y agoI agree with you so much. UI animations and needless "glitz" is inconsiderate of low-vision users, users who might have poor technical skills and who rely on UI consistency to accomplish tasks, users with low-spec hardware, users who are forced to use remote framebuffer protocols over low bandwidth connections, and of the environment (by way of increased processing power and electricity required).
- hexo 1y ago"Animated UI" is show stopper.
- armedin 1y agoThank you! That's exactly the vibe I was aiming for.
- hexo 1y agoWhat vibe? Making people feel sick?
- zem 1y agoi love how that has a double meaning of "something so great everyone stops to applaud" and "something so bad the show cannot proceed". (and i'm amused that i cannot tell which one you mean here; ui animations are very polarising!)
- armedin 1y agohaha so true! Apparently it was meant in the bad way
- jwilber 1y agoThis is just selling components someone else wrote, right? Five years ago I could understand the appeal and appreciate the effort required. Today, it’s a matter of seeing others work, taking a screenshot, asking ai to recreate it, and then packaging it into a “library” and selling it for $50. Maybe I’m alone in the sentiment, but it just rubs me the wrong way.
- armedin 1y agoAI isn’t quite at the point where it can recreate high-quality UI components just from a screenshot. Everything in this library was built by hand — no AI, no copied code. Just pure design and engineering effort. There’s a lot of work you don’t see on the surface.
- sdoering 1y ago> Just pure design and engineering effort Made my day. At least they have guts. I give them that.
- sampullman 1y agoWhich model can recreate complex animations from a screenshot? That would be incredibly impressive.
- jwilber 1y agoAny leading model. Ask it to generate the ui from the screenshot. Follow up and describe the required animations, and it will give you the css/js. Do it all the time.
- sampullman 1y agoOh, I see. I haven't had much luck generating UI from screenshots, but describing an UI (or animations) clearly does usually get me 75% or more of the way there. I thought I might have been missing something critical.
- Mystery-Machine 1y agoThe components looks really cool! However, you're using dark pattern by tricking the user with "Login to access the code" button. After I've gone through the process of signing up and logged in, I still couldn't access the component code. The same button then said "Unlock the code". Clicking on the button takes you to the Pricing page where you can pay $50 to see the component code. That's a dark pattern.
- armedin 1y agoI appreciate you pointing that out. That’s not quite the experience I intended. The “Login to access the code” button should’ve been clearer upfront about requiring a purchase. I assumed the CTA button in the landing page would send that message. I'm planning to add FREE components as the library grows, so this is something I will revisit again.
- zeroq 1y ago[flagged]
- random42 1y agoIt’s such a hateful and mean comment. OP, please ignore this. If you want to spend time building your own library, like OP has , and release it , god speed — that is if you can. In the meanwhile, OP actually spent energy to build and launch something, which is commendable.
- sdoering 1y agoWhat is hateful about clearly stating that the original "creator" is just ripping off other peoples hard work? I do not believe in an afterlife, but if I did, I would hope that there is a special place in hell for people like that.
- random42 1y agoThey are not "ripping" off other's work. The animations are created by the OP. There is nothing wrong in getting inspired by great ideas. lol, Do you believe every idea you have is entirely original? Also, whats with the hell speak? grow up.
- sdoering 1y agoBecause someone who clearly violates even the most basic rules of doing business in the UK is trustworthy to "do it all by themselves" just because they say so. Because they clearly show a respect for the rules society put in place.
- armedin 1y agoGrateful for the support! Just trying to build, learn, and put something useful out there.
- curtisszmania 1y ago[dead]
- kmoser 1y agoTook me a bit to figure out what the four circular icons on the bottom are for (magic wand, robot, envelope, crescent moon). I really wish they had tooltips. Still doesn't make sense to me why the magic wand just points to the home page (I would have assumed it meant "edit this UI component), the robot links to a profile page (mine? requires login so didn't try), the envelope points to x.com (I expected an envelope for "email this to a friend"), and the crescent moon toggles between light/dark mode (obvious only in retrospect).
- armedin 1y agoThanks for the feedback. I totally agree with you. I will revisit this part and try to make it more intuitive
- zacksiri 1y agoThis is fantastic work! They look beautiful. I hope you make lots of money from them because I know it's a lot of work. I'll be a customer in the near future for sure. - React - check - Framer Motion - check This hit the spot for me.
- croes 1y agoHe reverse engineered them, so the look was done by somebody else
- armedin 1y agoyep, not trying to ignore that. It's all written in the title, and where the inspirations are taken from are in each component page.
- armedin 1y agoThank you very much! Would love to have you onboard whenever you're ready.
- Abishek_Muthian 1y agoIs there any equivalent for non-react hypermedia focused websites?
- ajjenkins 1y agoComponents look great. I would pay for these if I needed one of them for a project. It would be great if they worked in React Native too.
- armedin 1y agoCheers! If there's enough demand for it, I could consider adapting
- PStamatiou 1y agoSome of the site definitely looks Rauno-inspired, the back button on a component detail view even says "< Craft" like on his site: https://rauno.me/craft https://rauno.me/craft https://rauno.me/craft/interaction-design https://rauno.me/craft/interaction-design
- chaychoong 1y agoAnd the "taskbar" at the bottom too!
- armedin 1y agoYep, although I'm seeing the "Dock" more and more being used in recent websites
- armedin 1y agoYep, I'm glad you noticed! There are bits and pieces from different sites grouped together
- replwoacause 1y agoNice job. Not a fan of react myself, pretty allergic to it actually, but these look nice.
- armedin 1y agoThank you!
- mediumsmart 1y agoLet me compensate you for the wait and the battery drain with some pretty animations.
- lovegrenoble 1y agoWhat about licensing? As you sell them...
- badmonster 1y agohad same question
- armedin 1y agoEvery modern website has similar UI patterns. This is no different. All the code is originally written from scratch. You can’t copyright style, ideas, layouts, or vibes.
- shakna 1y agoClean room implementation? Sure. But specifically "reverse engineered"? There is liability there.
- sdoering 1y agoAh yes, the classic "reverse engineering" (read: blatant design theft) turned into a quick profit scheme. Peak entrepreneurship. Their X profile proudly displays "UK-based" while conveniently ignoring basic UK business regulations: no company information, no proper invoicing, no VAT details for B2B sales, and mysteriously missing business address requirements. Looks suspiciously like someone running an under-the-table operation, courting legal trouble not just from the original designers they're "inspired by," but from Her Majesty's Revenue & Customs who tend to take a rather dim view of tax avoidance.
- matsz 1y ago> Her Majesty's Revenue & Customs Nitpick: the "H" in HMRC stands for "His", since it always changes to match the current monarch.
- sdoering 1y agoYeah - you are right. I still think of "The Queen". Still not being used to the Brits now having a King again.
- davethedevguy 1y agoI agree with most of what you said, but just want to clarify for others that VAT registration is optional until revenue is high enough to reach the threshold. Not being VAT registered when starting out is not necessarily a sign of a tax dodge.
- makingstuffs 1y agoThis is correct. You do not need to register a business for VAT in the UK unless you hit a specific threshold of income (I think £80k was the figure when I last checked)
- crmi 1y agoThese are not required for self employed (nor is VAT registration up until certain revenue, as gp points out). However given nature of business and potential liability, seems LTD company should be the route to take.
- badmonster 1y agois this open sourced?
- VoidWhisperer 1y agoHow are these components from an accessibility perspective? i.e. does the dots logo work with screen readers? Fancy animations is all well and good until you start making the website unusable for people who need screen readers, etc
- armedin 1y agoThat's a great question. Right now, the components serve more as fancy decoration. But making the whole library more a11y-friendly is something I plan to do.
- self_awareness 1y agoI don't see any relation with "reverse-engineering". It's just a bunch of animated widgets that look like on other sites.
- frabia 1y agoLot of people sell similar components (or give them for free), but what I would really be interested in is a course how to make them (properly, e.g. with a11y and performance considerations). Especially in your case, since you are basically selling somebody else's work (the original design), which is a shitty thing to do. You could monetise this in a much more ethical way.
- ZachSaucier 1y agoThere are other, similar sites which do this. One example: https://madewithgsap.com/ https://madewithgsap.com/
- armedin 1y agoActually the initial plan was for this to be a course of demonstrating how to build these components. Perhaps if there's enough demand, I might consider that. And I get that not everyone will agree with the approach, but I’m trying to be respectful about it.
- pinoy420 1y ago[dead]
- abxyz 1y agoI would (and do) pay for this type of UI library. Especially in design, everyone is inspired by everyone else, taking inspiration and ideas from elsewhere is normal... but branding this as "reverse engineered" makes it sound stolen. From the comments, it seems like you're actually just inspired by the work of others, as you've apparently written the code from the ground up, which means you're talented and capable. You should change the branding. Even a name change to something as simple as "Inspired UI" would be a meaningful improvement. I'd like to buy this but I'm not paying for stolen code, and as it's branded now, it seems like stolen code, and I'd have no plausible deniability if it turns out to be stolen code.
- morcus 1y ago+1 to this, my first impression before I read this comment was wondering about the legally of using these components.
- deleted 1y ago[deleted]
- armedin 1y agoHonestly I came up with the name pretty quickly without really thinking about how it would sound to the end user. Definitely something I'll rethink; appreciate you pointing it out.
- pompeii 1y agoI thought I was going to get the code, like the raw code, because I want to modify some styles/components. Instead, I received the component, and I can't make modifications. For example, the "DataFeedingIn" component; I want to be able to change the design, but I received the component without much capability for modification. i pay $50 for nothing :(
- armedin 1y agoDid you not receive the Github invitation? If not, please go to the profile and enter your github username to send an invitation. There are 3-4 components which haven't been synced yet (cannot copy the raw code from the site), one being DataFeedingIn component. You can still access the code through Github.
- vintagedave 1y agoThis is really impressive. As a portfolio alone, wow -- as a component set, fantastic. Are these easy to include in Astro? I'd think so (avoiding React etc.) I am currently building with Astro and keeping things as minimal in terms of additional JS files etc as possible. Couple of notes / questions: * https://reverseui.com/craft/text-blur-reveal https://reverseui.com/craft/text-blur-reveal has 'coming soon' from last October, and it's really cool, I'd be tempted to buy it for this alone * The top of your site has what looks like the dot logo component, but showing numbers and with a Matrix-like effect. Can that be a component too? * How customisable are these? I saw one comment saying they were not at all and the code was not modifiable. That's a deal-breaker: we all want our own spin on things, not to copy blindly.
- armedin 1y agoI'm delighted to hear you like the library! The 'coming soon' components mean they haven't been packaged yet, and specifically the text-blur-reveal is tricky to do. You can, however, access the raw code on GitHub. Essentially you have 2 ways, either via the npm package, or copying the raw code. There are more components coming, one being the Matrix-like effect. I haven't worked with Astro before, so cannot give an input on that.