SANTA CLARA -- The 49ers just finished Day 10 of training camp. Here's who stood out. Keep in mind, Christian McCaffrey missed his first practice of the offseason. The team is saying that he has general tightness, whatever that means. More on him in a minute.THE GOOD1. Wide receiver De'Zhaun StriblingHe hasn't even played a preseason game yet, and he already is the best wide receiver on the team. Full stop. He's the only wide receiver on the roster who will actually frighten opposing defenses this year. Today, he caught a 40-yard bomb from Brock Purdy while running a deep crossing route against Marques Sigle. No other wide receiver on the team could do that right now.2. Wide receiver Demarcus RobinsonMade a wide-open 25-yard catch up the left sideline after Deommodore Lenoir busted his coverage. Robinson is the 49ers' most durable and reliable wide receiver, but he's not dangerous. No one is scared of him. Fortunately for the 49ers, they have Stribling. Without him, their wide receiver room would be one of the worst in the NFL.3. Wide receiver Trenton IrwinHe made a one-handed touchdown catch over Deommodore Lenoir in the corner of the end zone during 1-on-1 drills. Irwin is having a surprisingly solid training camp for a player I assumed was an undrafted rookie. Turns out, he's 30. Who knew he played six seasons with the Cincinnati Bengals? Now, he's finally old enough to get some playing time on the 49ers. Don't sleep on this guy. He might be the next River Cracraft.4. Linebacker Jaden DuggerBroke up a pass that was intended for running back Justin Herbert in the flat during 1-on-1 drills. Every day, Dugger bats down a pass in this drill. He's a work in progress, but he already shows so much potential in coverage, which makes sense, considering he's huge and a former safety.5. Cornerback Jack JonesIntercepted yet another pass. Granted, he picked off Adrian Martinez, who isn't good. Still, Jones has intercepted at least four passes through 10 days of camp. He doesn't seem to be competing for a starting job, but he'll take Renardo Green's spot if he struggles early in the season. Expect Green to have a short leash. More on him in a minute.6. Running back Khalil HerbertCurrently the best healthy running back on the roster, which isn't saying much, considering the top four running backs on the depth chart all are injured. We're talking McCaffrey, Kaelon Black, Jordan James and Isaac Guerendo. If Herbert makes the team and has to play meaningful snaps, the 49ers will be in trouble.7. Quarterback Brock PurdyPracticed without his security blanket, Christian McCaffrey. Completed deep passes to Stribling and Robinson. And didn't get intercepted. All things considered, that's a good day for Purdy. He's working with a bunch of backups he barely knows, and he's still playing well.THE NOT SO GOOD1. Running back Christian McCaffreyMissed practice. Didn't show up. Didn't watch from the sidelines. The team said he has "tightness" and they're being cautious with him. But that's what they said two years ago when McCaffrey injured his calf during training camp. They said he had tightness, the injury wasn't serious, and he could play if the season were to start tomorrow. Then Week 1 rolled around, and he didn't play, and then we learned that "tightness" really was bilateral Achilles tendinits which kept him on the shelf until Week 10. Maybe he needs to take another trip to Germany. Or, maybe he's just old and chose not to practice. Keep in mind, yesterday was a day off for the players. How do you suffer tightness on your day off? If he's out tomorrow, you can get worried.2. Running back Deebo SamuelHe was the starting running back today. That's how depleted the 49ers are at this position. Deebo Samuel is not a running back. He's a gadget guy who can carry the ball a couple times a game. Today, he ran an out route from the backfield against Dre Greenlaw and let Brock Purdy's five-yard pass bounce off his chest. Good to see some things never change.3. Defensive end Nick BosaHas now missed a full week with "soreness." Hasn't shown up to practice since last Monday. This reminds me of Jauan Jennings, who shut himself down early in camp last season with calf soreness that mysteriously went away right when the season started. Jennings wanted a contract extension and never got it. I'm guessing Bosa wants an extension as well, considering he'll have less than $1 million in guaranteed money on his contract next year. If the 49ers extend him, they're crazy. He's not the player he was four years ago.4. Fullback Kyle JuszczykHas not missed a full week with a broken finger, which is understandable. But like Bosa, Juszczyk hasn't even shown up to practice in a week, not even as a spectator, as opposed to Mike Evans, who has attended every practice even while he's out with a quad strain. Makes you wonder if Juszczyk wants an extension too, considering he'll be a free agent next year. If that's the case, ha ha ha ha ha ha ha ha ha ha ha.5. Cornerback Renardo GreenRenardo Green is a proven NFL cornerback who has had success in real games, so a few bad reps in training camp won't define him. Still, he doesn't intercept passes, and today, he got flagged for defensive pass interference against Robinson. He's not competing for his job just yet, but if his struggles carry over to the regular season, he'll lose his starting spot quickly.6. Right guard Connor ColbyFor the first week of camp, he was the starting left guard. Since then, he has been the second-string right guard, which likely means the coaches are down on him. And that's because he's not good. He was a seventh-round pick last year who was an utter liability when he had to play. Expecting him to make some giant leap this year is unrealistic.7. Punt returnerThe 49ers don't have one. They'd like it to be Jordan Watkins, but he's not particularly elusive. Which means it probably will be Junior Bergen, who's not particularly fast. Those are the 49ers' best options.Add us as a preferred source on GoogleFollow