Here's who stood out during Day 1 of 49ers training camp. Keep in mind, this practice lasted just 75 minutes, and the 49ers won't put on pads until Day 6. Also, I wrote about Day 1 of the quarterback competition here.
1. Wide receiver Brandon Aiyuk.
He led all 49ers with five catches. No one else had more than two. That doesn't necessarily mean Aiyuk will lead the 49ers in catches this season -- George Kittle and Deebo Samuel are established and need less reps in practice, while Aiyuk is entering just his second season. But he still looks capable of leading the 49ers in catches. He has extremely long arms and made two difficult catches this morning which required full extension. Plus, he destroyed rookie third-round pick Ambry Thomas with a deep comeback route on a play-action pass. Aiyuk just needs to stay healthy. He's fantastic.
2. Wide receiver Deebo Samuel.
Caught two passes in team drills, and one was a 70-yard touchdown bomb from Trey Lance. It's clear that Samuel is much more than a glorified running back or a yards-after-the-catch specialist. He's a complete wide receiver who can run deep, and Lance will highlight that part of his game.
3. Wide receiver Mohamed Sanu.
Caught two passes during team drills. After practice, Garoppolo said Sanu is "looking f---ing good." He's the obvious favorite to be the No. 3 wide receiver.
4. Wide receiver Kevin White.
Beat No. 1 cornerback Jason Verrett with a curl route on the outside. White is a former top 10 pick whose career has never taken off because of injuries, and he's a long shot to make the roster. But today was a step in the right direction for him.
5. Running back Raheem Mostert.
Ran through the first-string defense for a 75-yard touchdown run on the first play of practice. Mostert is still an animal and the fastest player on the team.
6. Tight end George Kittle.
Caught just one pass -- the long one from Lance. Kittle used to get more action in practice when he was younger. Now, Aiyuk gets the action.
7. Right guard Daniel Brunskill.
Took all the reps at right guard with the first-string offense. Rookie Aaron Banks might take his job eventually, but not any time soon.
8. Linebacker Dre Greenlaw.
Broke up Jimmy Garoppolo's first pass attempt of the morning -- a risky throw over the middle intended for Aiyuk. Greenlaw read Garoppolo's eyes and broke early on the pass.
9. Strong safety Tavon Wilson.
Played with the first-string defense and stripped the ball from running back Trey Sermon. Wilson seems to be Jaquiski Tartt's primary backup for now.
THE NOT SO GOOD
1. The pass rush.
Nick Bosa and Dee Ford returned to practice and warmed up with the other defensive linemen, but neither participated in team drills, which means the pass rush was terrible, just like last season. Arik Armstead rushed from the edge and got nowhere, while Samson Ebukam went against Trent Williams and got owned. Which means both quarterbacks had forever to throw. Which is a big reason both quarterbacks played so well.
2. Defensive tackle Javon Kinlaw.
Apparently re-injured his surgically-repaired knee some time after the end of OTAs. Kinlaw watched along with Bosa and Ford while the rest of the players did team drills. This is a crucial training camp for Kinlaw, who needs to improve tremendously as a pass rusher. Bad start.
2. Running back Trey Sermon.
Fumbled and committed a false start penalty. Typical first day for a rookie.
3. Strong safety Jaquiski Tartt.
The 49ers didn't place him on the PUP list with a toe injury, which is good news, but they did place him on the Reserve/COVID-19 list, which is bad news. Tartt just can't get on the field.
4. Wide receiver Jauan Jennings.
Also got placed on the Reserve/COVID-19 list while the rest of the team raved about his competition, Mohamed Sanu. Not good for Jennings.
5. Cornerback Tim Harris Jr.
Started in place of Emmanuel Moseley, who also is on the Reserve/COVID-19 list, and got torched all morning. At one point, he almost burst into flames. Every time the 49ers wanted a big play, they threw at him, and he gave it up.
6. Quarterback Nate Sudfeld.
Threw a pass while rolling to his left that bounced five feet behind the intended receiver, who was five yards away from him. Still trying to figure out why Sudfeld is on the team.
7. Quarterback Josh Rosen.
Threw one pass attempt during 11 on 11s, and almost got sacked. Threw the ball away while falling on his back. That was the extent of his morning.