[HN Gopher] I successfully recreated the 1996 Space Jam website ...
___________________________________________________________________
I successfully recreated the 1996 Space Jam website with Claude
Recent and related: _I failed to recreate the 1996 Space Jam
website with Claude_ -
https://news.ycombinator.com/item?id=46183294 (430 comments)
Author : theahura
Score : 92 points
Date : 2025-12-08 15:33 UTC (7 hours ago)
(HTM) web link (theahura.substack.com)
(TXT) w3m dump (theahura.substack.com)
| simojo wrote:
| I see this as a logical rebuttal
| verdverm wrote:
| reads more like advertising for OPs nori tool, a small wrapper
| around markdown files
| Aldipower wrote:
| Wow, that is complex stuff! In the meantime I could have
| recreated this twice manually. :-D
| QuantumNomad_ wrote:
| Do it, and write a blog post about it:
|
| _I successfully recreated the 1996 Space Jam website twice,
| without using any LLMs_
|
| :p
| Aldipower wrote:
| :-D Haha, that's a good one.
| Philpax wrote:
| Please record a video of doing such - I suspect it may take
| more active effort than you suspect :-)
| Aldipower wrote:
| It would be a funny thing with some surprises, that is for
| sure. :-D But, I still remember how to do good table designs,
| so I think I could manage it fairly quick. (Last words of a
| web developer..) :-)
| daemonologist wrote:
| Well, if you take the screenshot+absolutely positioned
| invisible anchors approach that Claude eventually settled on
| (in half an hour), you could probably do it much quicker. Of
| course having knowledge of the solution like that is kind of
| cheating.
| tclancy wrote:
| It tables so it works in Netscape 4? Hell it was probably
| Netscape 2 or something. Have Claude spin that up and run it.
|
| Oh yeah, and no cheating and using CSS.
| gnabgib wrote:
| Related yesterday: _I failed to recreate the 1996 Space Jam
| website with Claude_ (500 points, 409 comments)
| https://news.ycombinator.com/item?id=46183294
| 5555624 wrote:
| Which is what prompted him to try creating it.
| ls-a wrote:
| So he had to prompt AI to prompt a human to prompt AI
| (assuming OP is human)
| layer8 wrote:
| It's prompting all the way down.
| bethekidyouwant wrote:
| When do we start putting the prompt we used in the commit
| message?
| theahura wrote:
| There were a few prompts that went into a single commit so that
| doesn't _quite_ make sense in this case. I posted the
| transcript, both in the original jsonl format and in markdown
| nostrebored wrote:
| There are some interesting takes around committing plans that
| are all executed by the same prompt as an artifact
| johnfn wrote:
| I wrote a comment saying that this should be possible with a
| proper playwright harness and screenshot taking. My comment ended
| up in the negatives (though curiously no one stopped to explain
| why), as if I was saying something so absurdly inaccurate that it
| wasn't even worth rebutting. Thank you for actually running the
| experiment and proving it - I was almost annoyed enough to do it
| myself.
|
| I couldn't understand why it had happened - it felt about as
| logical to my mind as writing a comment that Rust was faster than
| Node. I feel there is a strong anti-AI sentiment here, to the
| point that people will ignore evidence presented directly to
| them.
|
| Personal vendetta aside, I enjoyed this post! You had some clever
| tricks I wouldn't have considered. In fact, the idea of producing
| a pixel diff as output was particularly imaginative. And the bit
| about autoformalization definitely hits on something I've been
| feeling when working with AI recently.
|
| EDIT: I notice my comment yesterday is in the positives. Please
| don't vote it up. That was not my intention here.
| simlevesque wrote:
| There's a lot of LLM haters, simple as that.
| ls-a wrote:
| I use AI everyday. But some AI adopters are getting a bit
| culty as well.
| johnfn wrote:
| But there is nothing culty about saying "an LLM could one-
| shot this" when it has clearly been demonstrated that an
| LLM can, in fact, one shot this!
| socalgal2 wrote:
| You must have a different definition of "one-shot"
| johnfn wrote:
| "One-shot" means you type one prompt into Claude, press
| enter, and then judge the results when the AI completes
| the task. The article says that Claude was able to take a
| single prompt and produce a pixel-perfect replica.
|
| Is there another definition of "one-shot" I'm not aware
| of?
| socalgal2 wrote:
| Yea, the one that includes all the previous "one-shot"
| failures.
|
| If you throw 4 basketballs at a hoop and only the 4th one
| makes it in, that's not "one-shot". It's 4.
|
| Your definition appears to be, after many failed
| attempts, a single prompt that gets the AI to complete
| the task was found. You called that "one-shot" but what
| really happened is there were several "shots" that
| failed.
| johnfn wrote:
| If three of my friends that have never played basketball
| take a shot and they all miss, that doesn't say anything
| about my ability to make a shot. Obviously, my friends
| are inexperienced with basketball. There is nothing wrong
| with that, but it's not a fair or just argument to tell
| people who do have experience that "your success not a
| true one-shot because other, inexperienced people,
| failed".
|
| You appear to be extending the definition of "one-shot"
| to "an LLM should be able to accomplish anything no
| matter how poorly it was prompted", which is, I hope you
| can agree, not very reasonable. It's certainly not
| something I would be arguing in favor of.
| tapoxi wrote:
| This isn't in a vacuum though, it's after someone else
| failed and they took the learnings from that and put it
| into the prompt.
| Aldipower wrote:
| It is a task that could be _easily_ done manually in much
| shorter time without AI, probably by developers who even love
| to develop. The reaction on this shouldn't be misjudged as
| anti-AI. A lot of people, including me, just do not get it! For
| scientific purposes? Ok, fair enough. But what is the further
| meaning of this exercise?
| johnfn wrote:
| The point is that if we agree that this task is truly a one
| shot, as long as you agree it's faster to prompt than code,
| then while you "easily" do this task in around an hour (or
| however long you say it will take you), I'll prompt Claude in
| around 5 minutes, and get a few more things done while I let
| it run in the background. What am I missing from your
| argument?
| Aldipower wrote:
| Reading the blog post, prompting Claude setting up
| Playwright etc. takes at least one hour maybe more? Not
| seeing where your 5 minutes coming from.
| johnfn wrote:
| "Setting up playwright" is about two sentences of a
| prompt to Claude. I know this because I've done it many
| times. The authors prompt in the post is only a few
| hundred words. (Most of the post is just LLM output.) I'm
| certain I could type that out in 5 minutes.
|
| Do we really need another post where I time how long it
| takes to prompt Claude to create the Space Jam website?
| theahura wrote:
| its less than a few hundred words. The full total of what
| I typed into claude to get the first version is:
|
| Initial prompt:
|
| > I am giving you:
|
| > 1. A full screenshot of the Space Jam 1996 landing page
| (screenshot.png)
|
| > 2. A directory of raw image assets extracted from the
| original site (files/)
|
| > Your job is to recreate the landing page as faithfully
| as possible, matching the screenshot exactly.
|
| > Use the webapp-testing skill. Take screenshots and
| compare against the original. <required>You must be pixel
| perfect.</required>
|
| plan response:
|
| > they should all go to tilework.tech
|
| > exact screenshot dimensions
|
| which is 75 words
| Aldipower wrote:
| > But which takes longer: learning all of web dev to code
| the site, or learning to tell Claude to doff pixels?
|
| As a developer, I naturally prefer the former over the
| latter, as this becomes general programming knowledge
| that I can benefit from in later projects.
|
| BTW one of the creators of the Space Jam Website left a
| comment on the blog post: " Sebastien Derenoncourt 20m
|
| I must say as a person who worked on that original
| website, I am confused why you needed claude to do so
| much basic HTML/css we didn't even use tons of complex
| CSS until much later in time... "
| johnfn wrote:
| If we both agree that prompting is net positive on time,
| I think we're in agreement. You are trying to move the
| discussion to some sort of philosophical point about
| knowledge gain and subjective experience, but that is
| definitely not what I was going for.
| Aldipower wrote:
| I do not try to move anything, if you read my initial
| post.
|
| And after I have seen the final result coming from
| Claude, which is linked now in the blog post, I must say,
| recreation not completed! A lot of things are missing,
| proper zoom behavior, window resize, correct center
| aligned positioning. So what's the point here anyway?
| johnfn wrote:
| The original post that failed to create the Space Jam had
| no comments on a lack of "proper zoom behavior" or
| "window resize". It said that the LLM failed to place the
| elements on the page. The LLM has now solved that
| problem.
|
| You are repeatedly trying to change the criteria to be
| different than what it contextually was. "It's not a
| perfect solution because as a developer I would not get
| benefit from this." "It's not a perfect solution because
| it doesn't handle <thing which was never enumerated as a
| success criteria>". None of that was a topic in the
| original blog post.
|
| You can make another blog post, if you like, about how
| Claude can't handle proper zoom when creating the Space
| Jam website. My guess is someone will one-shot that too.
| theahura wrote:
| author here -- it took like 5 minutes of actual attention
| from me? I'm not sure why you are counting reading the
| blog post or setting up playwright. I guess I did read
| the blog post, but im not sure that should count. And
| claude set up playwright, not me.
| fluidcruft wrote:
| When I did it, vanilla Claude (Max5, default Opus 4.5, no
| special skills loaded, etc) had playwright up and running
| for screenshots in minutes (after intervening to tell it
| to use python 3.13 after noticing python 3.14 seems to be
| missing a lot of wheels and uv was rebuilding numpy for
| some reason) without me telling how to screenshot at all.
|
| https://news.ycombinator.com/threads?id=fluidcruft#461859
| 96
|
| (One fun wrinkle I enjoyed watching was I created the
| target screenshot in Firefox, and Claude was using
| playwright with Chrome. Ultimately, I have no idea
| whether either Firefox or Chrome has the correct actual
| fonts and I'm not a webdev and don't remember how to
| figure that all out)
| BearOso wrote:
| It's seemingly an experiment to see how an LLM performs when
| the task is just outside of its milieu. The answer is not
| very well.
| fluidcruft wrote:
| For me it's more that I'm not a web developer and it would
| definitely take me way longer to research all the parts of
| doing this. I have booksmarts (at best) about basic CSS and
| have given up trying to keep up with javascript anything.
| theahura wrote:
| Note that I didn't even it tell it to use a pixel diff. Claude
| w/ Nori did that on its own by following the Nori TDD skill. I
| did very little, I'm actually very lazy :D
| stanac wrote:
| There is a quote about lazy developers, but I too lazy to
| search for it.
| eCa wrote:
| Laziness is one of the three virtues (of a good
| programmer), but I think Larry didn't anticipate the
| current situation when he wrote it:
|
| "The quality that makes you go to great effort to reduce
| overall energy expenditure. It makes you write labor-saving
| programs that other people will find useful and document
| what you wrote so you don't have to answer so many
| questions about it."
| jayd16 wrote:
| I haven't seen your original comment but "It could work if they
| did it better" is in general a low value comment.
| johnfn wrote:
| You should go read it and see if you can tell me a way I
| could improve it. I felt I gave actionable advice, but I'm
| always happy to know if I could have said things better.
| jayd16 wrote:
| Looking at the comment, I would argue that it's fairly
| vague. Maybe it's clear if you have done it but not clear
| to others type thing.
|
| Then you undercut the advice by adding "I've always
| wondered if <confident suggestion> would work", making it
| unclear how much of the advice is a shot in the dark and
| how much you've actually seen results from that advice.
|
| Claims like "you might even one shot it" also make it seem
| like simple hype and not the war story of someone who's
| actually taken the advice.
|
| But you know, people are down voting me for engaging with
| your question as well so I don't know. Maybe it's all bots
| these days :p
| johnfn wrote:
| Haha. For what it's worth, and despite the downvotes, I
| do appreciate the feedback.
| kcatskcolbdi wrote:
| You could improve it by simply doing the thing you describe
| and linking to it.
| fluidcruft wrote:
| I didn't get downvoted yesterday but I got pretty far strongly
| hinting Claude should use very basic image processing
| approaches and it went for opencv very successfully. It was
| very fast on the image layout but failed pretty hard on the
| footer. This morning I decided to walk it through basic image
| processing for text detection and word building and that went
| pretty well but I didn't tell it what we were doing and it was
| too much me telling it what to do. It did sort of realize what
| we were doing at one point. I was thinking about trying again
| with just a nudge to think about using basic OCR image
| processing techniques to detect words and lines and see what
| Claude comes up with. Was also wondering what it would do if I
| just told it to use tesseract or paddleocr.
| gaigalas wrote:
| Dude, the recreation is a joke (hopefully an intentional one).
| It uses the screenshot instead of the assets.
|
| Go ahead, turn on the Web Inspector, and remove the body
| background:
|
| https://tilework-tech.github.io/space-jam/screenshot.png
| theahura wrote:
| Please read the blog post!
| gaigalas wrote:
| It's a joke, right? A joke similar to this one:
|
| ---
|
| > Make me a python script that calculates the value of PI
|
| ```python
|
| print("3.1415")
|
| ```
|
| "I think it's passable!" <--- The joke
|
| ---
|
| If it's not a joke, then it's just sad.
| johnfn wrote:
| I hate to tell you this but all digital representations
| of pi are numeric approximations. Your joke works, but
| perhaps not in the direction you were angling for.
| gaigalas wrote:
| Only the digital ones? oof, why so specific?
|
| I would have accepted `22/7`.
| theahura wrote:
| First, you're being unnecessarily acerbic. It doesn't
| help your case, and it's just kinda weird!
|
| Second, the original post was obviously about the
| placement of the buttons on the space jam website.
|
| Third, I spend at least half the blog post responding to
| the exact complaint you have. If you do not have more to
| add beyond pointing out that the 'hack' exists, you
| aren't adding to the conversation.
|
| Fourth, the blog post and the repo has a version that
| does not include the screenshot and actually tiles the
| gif.
|
| I'm still convinced you haven't actually read the blog
| post because you have shown zero indication that you are
| engaging with the material. In which case, why even
| bother commenting?
| gaigalas wrote:
| Can I offer some valid criticism?
|
| The original Space Jam website is fluid (it's 90s lingo
| for responsive).
|
| It is also a still relevant website because it is a
| living fossil of that era's way of doing webdesign.
|
| Asking to recreate it, should include those aspects
| (epoch-relevant technical achievements such as fluid
| layouts) and faithfulness to the original implementation.
|
| I'm not saying that Claude should know that out of the
| box (it would have been impressive if it did), but the
| prompt should have included those ideas.
|
| A modern reconstruction in CSS3, in contrast to a
| faithful reproduction, should have mirrored what the
| techniques accomplished with modern tools. It would be
| useful in a sense of showcasing how CSS3 evolved, it
| would have a purpose.
|
| Do you understand why this is not passable? It has no
| value as a recreation.
| Tiberium wrote:
| The article mentions this:
|
| > So it kind of cheated, though it clearly felt angst about
| it. After trying a few ways to get the stars to line up
| perfectly, it just gave up and copied the screenshot in as
| the background image, then overlaid the rest of the HTML
| elements on top.
| gaigalas wrote:
| The outcome does not justify @johnfn's redemption
| celebration. That's why I decided to give him a heads up.
|
| Aside from that, I think it's a joke. Like the value of pi
| example I gave in the other comment. If it's not, it is
| really just sad.
| Palmik wrote:
| That does not make the title any less clickbaity. Moreover,
| it does not seem like a vindication of johnfn's original
| comment.
| Ukv wrote:
| index_tiled.html is what justifies the title IMO - it's
| not using a screenshot as the background like index.html,
| and is as close as you can get using the original assets
| given the screenshot's scaling and compression artifacts
| (minus the red text being off).
|
| But I feel it'd make more sense to just retake the
| screenshot properly and see if it can create a pixel-
| perfect replica.
| jack_h wrote:
| Voting is meant to allow a community to police itself to some
| extent, although the downside to that is it incentivizes
| controlling the discussion over contributing to it. It's a lot
| easier to vote in accordance with your own beliefs than
| articulate counter-arguments. The prisoner dilemma takes hold,
| people stop visiting as they get frustrated by the downvoting,
| and a bubble forms. It'll be interesting to see how AI changes
| the online discussion landscape.
| theahura wrote:
| https://tilework-tech.github.io/space-jam/
|
| The site claude made is live on github pages now too, enjoy
| internetter wrote:
| for me its not center aligned
| layer8 wrote:
| Yeah, it renders quite differently depending on screen/window
| geometry.
| Aldipower wrote:
| Does not render correctly here. It does not zoom properly and a
| window resize also have weird effects. Recreation not finished
| I guess.
| Ukv wrote:
| From the article, Claude asked:
|
| > The screenshot shows viewport-specific positioning - should
| we match at a specific viewport size or make it responsive?
|
| And the author responded:
|
| > exact screenshot dimensions
|
| So it's only intended to replicate the screenshot, but I do
| agree that making it center/zoom properly would've been more
| interesting.
| xnx wrote:
| Might Google Antigravity be able to do this right out of the box?
| I believe it has a browser that can take screenshots.
| thecr0w wrote:
| Hey! You did it! I'm going to update my original blog post
| linking this one.
| fluidcruft wrote:
| This version just pastes the screenshot as background.
| jfindper wrote:
| Yes, anyone who reads the post will find that out because it
| says it in the post.
| fluidcruft wrote:
| I actually did read your post and it read to me as if it
| put in the background to get around some sort of issue with
| how you took the screenshot, but had still placed the
| images and text on top. What you wrote was:
| So it kind of cheated, though it clearly felt angst about
| it. After trying a few ways to get the stars to line up
| perfectly, it just gave up and copied the screenshot in
| as the background image, then overlaid the rest of the
| HTML elements on top.
|
| Which is only "kind of" cheating if only the background was
| wrong. Everything being invisible and in the wrong spot
| doesn't seem like merely "kind of" cheating. You didn't
| come anywhere close to addressing the problem that the
| original post was about.
| jfindper wrote:
| > _I actually did read your post [...]_
|
| > _What you wrote was: [...]_
|
| > _You didn 't [...]_
|
| It's not my post.
| fluidcruft wrote:
| Sorry!
| taejavu wrote:
| Wasn't the OG Space Jam website an image map? Not so
| different
| thecr0w wrote:
| Oh you're right. I read it a bit too quickly this morning and
| thought it had just done that initially to compare planet
| placement. Too bad.
| Ukv wrote:
| The index_tiled.html version correctly positions the
| original assets, and to me looks as close as you can get to
| the screenshot while using the original assets (except for
| the red text).
|
| The version with the screenshot as a background is where it
| was asked to create an exact match for screenshot that had
| been scaled/compressed, which isn't really possible any
| other way. The article acknowledges this one as cheating.
|
| Better I think would've been to retake the screenshot
| without the scaling/compression, to see if it can create a
| site that is both an exact match and using the original
| assets.
| skeeter2020 wrote:
| >> Note: please help, because I'd like to preserve this website
| forever and there's no other way to do it besides getting Claude
| to recreate it from a screenshot.
|
| This makes zero sense from a preservation perspective, and basic
| logic follows that if you wait it will be easier to recreate it
| when and if you actually need it for some reason.
| internetter wrote:
| This was sarcasm
| toroszo wrote:
| body { background: url('screenshot.png') no-repeat; background-
| size: 1791px 1000px; background-color: #000; position: relative;
| }
|
| is this a joke?
| theahura wrote:
| Please read the blog post!
| toroszo wrote:
| I have, and I couldn't believe what it was saying and had to
| go see the code to verify. I'm really struggling to believe
| that anyone would consider this a "coding success".
| fluidcruft wrote:
| Yeah, same. I thought it was saying it reproduced only the
| background due to not being able to figure out an offset
| due to a sloppy initial screenshot or something. Then I was
| wondering why all the link images looked fuzzy and tried to
| inspect them and also wondered why the links didn't line up
| with the buttons either with dev tools open.
|
| On the plus side, it does somewhat explain the weird
| patterns in his diff image which I had been puzzling over.
| Ukv wrote:
| > I'm really struggling to believe that anyone would
| consider this a "coding success".
|
| The index_tiled.html version later in the article is what
| justifies the success claim IMO, and is the version I think
| it would've made more sense to host.
|
| The currently hosted index.html just feels like a
| consequence of the author taking a scaled/compressed
| screenshot and asking Claude to produce an exact match.
| cainxinth wrote:
| > "Optimizers will optimize your objective function, not your
| intended objective function."
|
| Extremely important to remember when using LLMs.
___________________________________________________________________
(page generated 2025-12-08 23:02 UTC)