The movie opens with Zach (Trevor Wright) skateboarding, stopping occasionally to take photographs and spray-paint silhouette graffiti. He arrives home and is greeted by his sister Jean (Tina Holmes) and her son Cody (Jackson Wurth). Jean is headed out, forcing Zach to take Cody with him to the diner where he works.
At the end of his shift Zach takes Cody to the rich part of town (Zach, Cody and Jean all live together in the poor suburbs) and meets up with his friend Gabe (Ross Thomas). Zach drops Gabe off with some friends who he is travelling with back to college.
Zach and Cody head home. Zach goes surfing. That evening he goes home to do some painting.
The next day he waits with Cody outside the supermarket while Jean finishes her shift. Cody thinks Zach is his father, since Zach always takes care of him, but Zach reminds Cody he is his uncle.
That night Jean heads out again with friends leaving Zach once again taking care of Cody. Zach calls his off-again-on-again (and currently off) girlfriend Tori (Katie Walder) but she is at a party and the connection is bad, meaning they can't understand each other. Jean arrives home with her boyfriend Allen (Matt Bushell) only to be admonished to keep quiet by Zach because Cody has just gone to bed.
The next day Zach goes back to Gabe's house to fix a surfboard he has left there, only to find that Gabe's brother Shaun (Brad Rowe) is there. They go surfing together. As they are leaving, Tori arrives and invites Zach down to the beach to hang out with her friends.
At the bonfire, one of the guys asks if Zach is gay, since he recently broke up with Tori, who is gorgeous. Zach and Shaun leave the fire and Shaun admits the reason he returned to town was because he just broke up with someone.
Zach gives Tori a ride back to his place where they watch a movie. She tries to kiss him but is turned away. She is a little put off, so he tries to make it up to her, but she leaves.
Meanwhile, Shaun is hunting around the house and finds a walkie-talkie as well as an old skating movie of Zach and Gabe.
He talks into the walkie-talkie and is surprised when Zach picks up. These are the walkie-talkies that Zach and Gabe used to use years ago to communicate across town. Zach starts to draw on his bedroom wall, which he does when he is happy.
Zach and Shaun meet up again the next day and go surfing again, at a spot Shaun has kept secret from Gabe and his friends, worried that they would trash it. They surf for a bit then stop for lunch. Zach ignores a call from Tori telling Shaun they are in 'limbo'.
They return to Shaun's place and crash on the outdoor furniture, bonding over Zach's art and their mutual connection to Gabe.
A playful wrestling match turns serious as Shaun kisses Zach. Zach wakes up the next morning beside Shaun, still outdoors, and immediately regrets what he has done. The normal life he has crafted has now been shattered. He flees.
He goes home to find Jean waiting for him to take her to work. On the drive Zach talks about returning to art school. He applied a year ago but didn't get in. At the supermarket he meets Tori again. He tries to kiss her, but she pushes him away.
He goes surfing again, this time checking out the guy dressing beside him. He stays out surfing late.
He goes home to shower. Jean talks with him about hanging out with Shaun, who is gay, and says she 'doesn't want Cody around that'. She accuses Zach of being gay too. He dodges the question.
At the beach with Tori and Cody, he runs into Shaun again. Shaun wants to talk about what happened between them, but Zach brushes him off. After the things Jean said about Shaun, Zach doesn't want to leave Cody alone with him, but Tori wants to talk about their relationship. Finally, Tori and Zach break up for good.
Zach goes home to think and paint. He can't deny his feelings anymore. He drives to Shaun's house and they have sex. The next morning Zach still feels a little guilty, but sticks around until Shaun wakes up. On the drive home he finally accepts what's going on.
He starts to draw a huge mural on a nearby shop as a way to express his feelings for Shaun.
At home, Jean asks him why he is so happy. She knows he is sleeping with someone, and also knows it isn't Tori. Zach tells her it is no-one. She uses that fact to con him into babysitting again. Zach draws on his wall some more, then gets a call from Shaun inviting him to a meal at his place. Jean wants him to watch Cody, so he turns down Shaun's offer, only to have Shaun invite Cody along too.
Zach and Cody go clothes shopping before the meal.
Shaun asks Cody what he wants for dinner, then heads out to stock up on groceries, since he doesn't have any of that stuff in the house. He says kids deserve to be spoiled. Later, as Cody sleeps, Zach and Shaun talk about Zach's family. Shaun tries to hug Zach, but Zach pulls away, scared that Cody may see them. When he knows he won't, he finally succumbs.
Zach takes Cody home, since Cody doesn't like to wake up in strange places. Shaun offers Zach an admission form for art school.
A montage follows showing Zach and Shaun growing closer. Zach completes the mural on the shop wall as well as doing more drawings on his bedroom wall.
Shaun and Zach are in bed together when they hear a noise. Gabe has arrived back from college. Zach hides in the bathroom while Shaun distracts Gabe, allowing Zach to sneak out.
Gabe visits Zach at work (commenting on the shirt Zach is wearing, which happens to be Shaun's) and the three go surfing. Gabe runs off for some beer. Shaun touches Zach, who rebuffs him, worried that Gabe will see.
At home, Jean confronts him about what he has been doing with Shaun. She convinces him that if he cares about their family, that he will break it off.
That night, at a party and Gabe's house, Zach sits in the car and is approached by Shaun. He shuns Shaun, telling him he isn't sure that a relationship is what he wants. Shaun replies, 'It seems like what you want'. Both guys get emotional and Zach drives off.
The next morning Zach is getting the diner ready for opening when Gabe comes by and tells him he knows all about Zach and Shaun, but that it doesn't change anything between them. Zach says it doesn't matter since he has broken up with Shaun.
Confused, he goes to visit Tori, but she is with another guy and can't talk to him.
Shaun tries to call Zach, but Zach ignores him. He is looking for his portfolio to send to the art school, but can't find it. Jean offers to help him get a job at the supermarket where she works.
Zach watches as the mural he painted is painted over. He feels his life is falling apart.
Jean tells him she is moving away with her boyfriend, and that they are leaving Cody behind.
Zach learns Shaun submitted his portfolio, and that he has been accepted to art school. He travels to the campus.
Later he meets up with Tori, prepared to tell her everything, but she already knows. In a roundabout way she tells him that even if it doesn't last, love is still worth it.
Shaun is packing to leave, when he finds the walkie-talkie left by Zach. They talk, with Zach revealing himself to Shaun in the backyard. He's accepted the different parts of his life and wants Shaun to be a part of it. Zach tells Shaun that he got into art school, and that he got in a year ago, but turned it down because of his family commitments.
They go to where Jean and her boyfriend are packing to leave.
After the boyfriend maligns Cody, Zach attacks him, but Shaun and Jean separate them. Shaun goes inside to check on Cody, while the boyfriend takes a walk to clear his head. Zach tells Jean that Cody can stay with him and Shaun, or that Jean could stay behind. Jean admits Cody is better off with Shaun and Zach. Jean and her boyfriend leave, then so do Cody, Shaun and Zach.
Some time later Zach, Cody and Shaun are all hanging out on the beach, playing, the implication being that everything turned out well.