One of my very favorite things is going to a movie expecting to dislike it, only to walk out of the theater having had my expectations turned upside-down. There is little that is more satisfying in a movie-going experience than finding a gem where one anticipated trash (though admittedly, sometimes what you want is something horrible that you can really rip apart upon viewing it). Unfortunately, this particular circumstance has a reverse angle that occurs when you expect a movie to be good, and find yourself disappointed, those occasions where the picture in question utterly lets you down either because it can’t live up to the standards you set for it, or because it’s just not the film you thought it was going to be.
For me, the latter is exactly the case with Whip It, the first directorial effort of Drew Barrymore. People often go to the movies to experience new worlds and gain perspective into a subject they weren’t familiar with beforehand. Whip It is one of the first films in a while to really look at the world of roller derby, a female-dominated form of sports entertainment, and the prospect of getting a fresh angle into the culture initially had me excited; I anticipated a movie that made that world palatable and real. To my dismay, it turns out that Whip It isn’t that movie. Roller derby is there, and roller derby happens, but it’s more or less left as a backdrop against which the story of Bliss Cavender is told.
Bliss (Ellen Page) lives in a small Texas town where she spends her days working at the local diner and reluctantly participating in pageants at the whim of her over-bearing mother (Marcia Gay-Harden, eerily natural in the role of the domineering parent). On a brief trip to Austin, Bliss has a chance encounter that introduces her to the world of roller derby; she immediately becomes enamored with the idea, and sneaks off to watch a league game in an abandoned warehouse in the city. At this point, her path is set, and she becomes determined to join the team and shape herself into a rough and tumble, independent roller derby girl.
What follows is a very typical teenage rebellion film, as Bliss struggles to keep her new-found passion a secret from her parents (her bruises are difficult to ignore, after all) while balancing her relationship with her best friend (Arrested Development‘s Alia Shawkat) and her crush on bland rocker boy Oliver (Landon Pigg, a person so uninteresting that it’s not even worth linking to their IMDB profile). The movie isn’t exactly light on roller derby; there’s plenty of roller derby action to be seen, and a great deal of time is spent with Bliss as she interacts with her teammates (Eve, Barrymore herself, Zoe Bell, and a truly engaging Kristen Wiig) and rival (Juliette Lewis), but we learn surprisingly little about each of the players and they rarely act as anything other than static characters in the film’s background. Wiig is given a chance to maneuver as team captain Maggie Mayhem, who provides a sort of mother surrogate for Bliss to look up to, but aside from her the team is more or less left to the side in favor of Bliss’s conflict with her parents.
While that story isn’t bad by any means, it’s not the story that I’d wanted to see. Whip It could have been about how Bliss reconciles her youthful rebellion through understanding what it is that drew these women to a sport like roller derby; instead, it’s a better than average story of parents clashing with their oldest child that simply features some pretty well-shot scenes of roller derby games. It may have suited the film to have trimmed some of its side plots; Shawkat’s and Page’s characters have a falling out that is so limp it could have been cut from the film without hardly effecting the plot at all, and the love between Bliss and Oliver similarly feels lifeless. (Though it does lead to a beautifully shot scene that takes place underwater.) The film tries to balance too many angles, instead of focusing on the juiciest ones, and should maybe have spent more time both with the Cavender family and with the roller derby teams.
But the time allotted to both stories ends up being time well spent overall. The burden of the film is all on Page, who is present throughout the vast majority of the movie’s running time, and she handles the job fabulously. I had a fear that she would end up simply channeling Juno MacGuff here, and while there are traces of that character in Bliss, they only appear because the two are kindred spirits. Where Juno was much more out-spoken and fearless, Bliss is much more withdrawn and timid, something I wasn’t aware the bright and charismatic Page could really pull off. Here, she’s quiet and meek, and yet there’s an obvious potential in her that she desperately wants to meet, and yet lacks the full confidence to achieve it. There’s something about that that can be universally understood, as we all have aspirations that we want to fulfill but sometimes don’t have the courage to seek. Bliss’ goal might be simply to play roller derby and go toe-to-toe with the big girls, but the tenacity with which she pursues her desire is to be admired.
Aside from Page (and really, let’s face it, the actress is rarely unwatchable), the movie’s depictions of roller derby games are exciting and engaging (though Jimmy Fallon wears out his welcome as the league’s announcer in record time). Whip It makes the rules clear, which isn’t a difficult feat given their relative simplicity, and the games themselves are captured and presented cleanly and clearly without losing tension or intensity. Unfortunately, this has the drawback of making the audience wish for more footage of league games; I could have watched an entire movie of Bliss and the Hurl Scouts going up against the likes of The Holly Rollers or Fight Attendants. There’s an inherent campiness to the way teams form around a particular theme, and players create an in-game persona for themselves; it’s sports entertainment, pure and simple, and if it’s this much fun to watch in a fictional depiction I can only imagine how great an actual live game is. This is to Barrymore’s credit as a first time director; she manages to generate a lot of interest about the culture she’s included in her film, even without really exploring it past the surface and treating it as something other than a simple game. I would have preferred she delve into it a little more, but then Whip It would have been a different movie that told a story other than the one she wanted to tell.
Whip It, in the end, isn’t a perfect film, but it’s not a bad one either; it runs on a level of charm that carries it all the way through the end, and it’s certainly a solid movie for a first effort. For her next outing, Barrymore should buckle down and narrow her focus; while Whip It‘s best aspects dominate the movie, the odd story lines that break off from the main plot distract us from it and ultimately don’t serve the film at all. I’m willing to give Barrymore goodwill for her first directorial effort, and hopefully Whip Ittaught her a few good lessons that she’ll bring to her next project.
{"id":"2","mode":"form","open_style":"in_place","currency_code":"USD","currency_symbol":"$","currency_type":"decimal","blank_flag_url":"https:\/\/agcrump.work\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/agcrump.work\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"featured_image","featured_image_url":"https:\/\/agcrump.work\/wp-content\/uploads\/2025\/10\/image-asset-179x200.webp","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":false,"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":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"A Constant Visual Feast","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":"Support My Work:","form_subtitle":"","currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thanks for supporting my work!","payment_confirmation_title":"A Constant Visual Feast","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 do you want to tip?","initial":{"instruction_type":"normal","instruction_message":"How much do you want to tip?"},"empty":{"instruction_type":"error","instruction_message":"How much do you want to tip?"},"invalid_curency":{"instruction_type":"error","instruction_message":"How much do you want to tip?"}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"Want to make a recurring tip?"},"success":{"instruction_type":"success","instruction_message":"Want to make a recurring tip?"},"empty":{"instruction_type":"error","instruction_message":"Want to make a recurring tip?"}},"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}