Decades after the Rage virus outbreak, a new generation fights for survival in a brutal, decaying world. Facing inherited trauma and relentless infected, they must navigate desperate choices for a future.
Alfie Williams and Jodie Comer in 28 Years Later (2025)
The rage is back. And this time, it’s personal, punchy, and – somehow — shot on iPhones.
Boyle’s Unexpected, Yet Effective, Comeback
Danny Boyle didn’t have to return. Honestly, he probably shouldn’t have. 28 Days Later already changed the game once. Then 28 Weeks Later built it bigger, nastier, faster. But now here we are, almost three decades deep into viral chaos, and guess what? Boyle still has tricks up his sleeve. Old ones, sure — but sharpened, reframed, and made to sting.
“Bullet time” without the bullets? It happens. Literally. Early on in 28 Years Later, there’s a slow-motion sequence that would’ve made 1999 jaws drop. You know the one — high contrast, body in motion, time slowing just as panic sets in. But instead of dodging bullets, it’s something more grounded. More tragic. More human. It’s a subtle flex from Boyle, nodding to cinema history while twisting it into this gritty apocalypse. And yeah, if you’re old enough, you’ll feel that little jolt of recognition. This isn’t nostalgia bait — it’s evolution.
Jodie Comer in 28 Years Later (2025)
Ralph Fiennes in 28 Years Later (2025)
Alfie Williams and Jodie Comer in 28 Years Later (2025)
28 Years Later (2025)
Story & Themes: Inherited Trauma in a Brutal World
The story this time? Still bleak. Still brutal. But layered. A new generation wrestles with the fallout of old sins, and while the Rage virus hasn’t mellowed with age, the people fighting it have changed. Smarter? Maybe. More desperate? Definitely. There’s a sense of inherited trauma here, like everyone’s been born under a sky that’s always just about to rain blood.
Standout Performance: Alfie Williams Anchors the Chaos
Enter Alfie Williams as Spike. He doesn’t just anchor the film — he hauls it. There’s weight in every glance, every sprint, every second he spends not speaking. This is a performance built on pressure. Spike isn’t trying to be a hero, but he keeps getting pushed into the fire, and Williams makes you feel the burn
The iPhone Factor: Gritty, Intimate Cinematography
And here’s where things get wild: this was shot on iPhones. Sure, they’re rigged up with external lenses and stabilizers, but the bones of it? All Apple. And it works. The smaller footprint gives the film a weird intimacy. When the camera rushes through stairwells or crouches behind rubble, it feels there — closer to documentary than blockbuster. The texture is grimy, immediate. You could practically smell the sweat.
A Lean, Kinetic Franchise Entry
As a third entry, 28 Years Later doesn’t reinvent the franchise, but it doesn’t need to. It expands the world just enough, hints at what’s still festering beneath the surface, and delivers a few standout sequences that remind you why Boyle’s still one of the most kinetic directors working today. And it’s lean. No bloated runtime. No endless exposition dumps. Just survival, stripped bare.
Conclusion: A Rewarding Chapter for Fans
Is it perfect? No. Some character arcs fizzle, and not every set piece lands. But for fans of the series — and anyone curious about how far you can push a franchise without breaking it — this is a satisfying, stylish return. And yeah, bullet time is back. You just weren’t expecting it to look this raw. If you’ve stuck with this world from the beginning, 28 Years Later rewards your loyalty. It’s a fitting next chapter that doesn’t try to outdo the originals — it just keeps the fire burning.
28 Years Later is in theaters June 20, 2025 (United States)
Details
Rating Certificate: R (for strong bloody violence, grisly images, graphic nudity, language and brief sexuality.)
Studios & Distributors: Sony | Columbia Pictures | TSG Entertainment | Sony Pictures Releasing
Notice of Compliance with FEDERAL TRADE COMMISSION 16 CFR Part 255
In accordance with the Federal Trade Commission 16 CFR part 255 guidelines, this website hereby states that it receives free discs and other theatrical or home entertainment "screeners" and access to screening links from studios and/or PR firms, and is provided with consumer electronics devices on loan from hardware manufacturers and/or PR firms respectively for the purposes of evaluating the products and its content for editorial reviews. We receive no compensation from these companies for our opinions or for the writing of reviews or editorials. Permission is sometimes granted to companies to quote our work and editorial reviews free of charge. Our website may contain affiliate marketing links, which means we may get paid commission on sales of those products or the services we write about. Our editorial content is not influenced by advertisers or affiliate partnerships. This disclosure is provided in accordance with the Federal Trade Commission’s 16 CFR § 255.5: Guides Concerning the Use of Endorsements and Testimonials in Advertising.
Decades after the Rage virus outbreak, a new generation fights for survival in a brutal, decaying world. Facing inherited trauma and relentless infected, they must navigate desperate choices for a future.28 Years Later Review: A Gritty Return to Apocalypse Cinema
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
{"id":"1076","mode":"button","open_style":"in_modal","currency_code":"USD","currency_symbol":"$","currency_type":"decimal","blank_flag_url":"https:\/\/www.theaterbyte.com\/wordpress\/core\/modules\/efb9325b07\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/www.theaterbyte.com\/wordpress\/core\/modules\/efb9325b07\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"none","featured_image_url":false,"featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Please Contribute to the TheaterByte Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"TheaterByte","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"TheaterByte","form_subtitle":"We are creating Blu-ray, 4K Ultra HD Blu-ray, Movie, and Home Theater electronics reviews.","currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for being a supporter!","payment_confirmation_title":"TheaterByte","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}