James’s review published on Letterboxd:
As someone who didn't read comic books or even watch many cartoons growing up, and to this day avoids most Marvel movies like a visit to the dentist, I'm probably not the target audience for this.
But I'm also a sucker for good origin/coming-of-age stories, and the passion behind this project is so palpable, the animation so beautiful and breathtaking, the screenplay so dizzyingly imaginative and heartfelt, that it would feel petty and unfair to rate this anything lower than 4 stars. It's an intensive labor of love that exhilarates and inspires like few movies, comic-book-based or otherwise, rarely do.
A few things that hindered my own personal enjoyment and kept this from being a full 5 stars: a predictable story that failed to establish any real sense of high stakes, under-developed villains that seemed to assume a comic book collector's knowledge of their back-stories in order to fully appreciate their true menace, and dialogue that, while clever and fast-paced and fun, sometimes got a little too "cute" and quippy for my tastes (probably the thing I hate most about Marvel movies in general).
But I still thoroughly enjoyed the thrilling ride this took me on, and can't wait to experience the sequel in IMAX tomorrow night. Seems like the almost unanimous Letterboxd consensus so far is that it surpasses this already quite impressive original by leaps and bounds.
James liked these reviews
All
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_08069b10-c901-4e41-bf5e-128d11071965" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-08069b10-c901-4e41-bf5e-128d11071965'; adUnit.className = 'pw-div -tile300x250 -alignleft -bottommargin'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'med_rect_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-08069b10-c901-4e41-bf5e-128d11071965'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-08069b10-c901-4e41-bf5e-128d11071965'));
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_604f4906-3ced-4637-806d-fd1426ace803" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-604f4906-3ced-4637-806d-fd1426ace803'; adUnit.className = 'pw-div'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'sky_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-604f4906-3ced-4637-806d-fd1426ace803'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-604f4906-3ced-4637-806d-fd1426ace803'));