yeah 6.g4 also weakened his kingside.
13...Bb6 was an inaccuracy. You could have played 13...Nc4, threatening ...d4 and maybe an outpost with ...Ne3. If White reacted to this threat by playing e3, then you'd win the a3 pawn with tempo on his rook.
29...Nc7 was an unneeded retreat. You could have just played 29...Ra8 to cover the a4-pawn.
38...Nd5 blocks your open file. Why not play 38...Rd3 and double rooks on the d-file.
That's all I've got. I'm sure a better player would see some more things. Constructive critiscism aside, well done on the win, but also for analyzing your game. It's a great way to improve
Any help would be appreciated