Hart moved from the Manchester United Academy to the Liverpool Academy whilst an under-16 level player. He made his first appearance for Liverpool on 7 August 2016, coming on as a second-half substitute in a 4–0 friendly defeat to Mainz 05 at the Opel Arena. In August 2016, Hart joined League One side Port Vale on loan for the 2016–17 season, as manager Bruno Ribeiro needed cover for injured duo Kiko and Adam Yates. He made his debut in professional football on 27 August, coming on as an 83rd-minute substitute for Jerome Thomas in a 3–1 win over Scunthorpe United at Vale Park. With Thomas injured, Hart made his first league start on 27 September, playing at left-wing in a 3–1 home win over Millwall. His performance impressed Ribeiro, who stated that Hart played well enough to guarantee himself either the left-back or left-wing spot in the next game. He scored his first goal in senior football on 29 October, in a 3–1 defeat to hometown club Bolton Wanderers at the Macron Stadium. Hart's loan deal was cut short after Michael Brown succeeded Ribeiro as manager in January 2017; he had made 12 starts and four substitute appearances for the "Valiants", often out of position on the left and right-wing. He was reportedly targeted by Grimsby Town for a loan deal in July 2017.
Blackburn Rovers
On 31 August 2017, Hart signed a two-year deal with League One side Blackburn Rovers after he was purchased for an undisclosed fee. On 18 January 2018, he joined fellow League One side Rochdale on loan until the end of the 2017–18 season, having featured just seven times for Tony Mowbray's Rovers. Manager Keith Hill needed cover at left-back having sold Joe Bunney to Northampton Town. Hart featured just three times for the "Dale" during his time at Spotland, though came on as a substitute in the final day win over Charlton Athletic that secured the club's League One status. On 30 August 2018, Hart returned to Rochdale on loan for the remainder of the 2018–19 season. He said: "I'm really happy. I have got a bond with the football club and the people here, so I am excited to be back". He made 13 appearances, but did not feature after playing in a 4–2 defeat at Oxford United on 27 November, and was recalled to Blackburn on 2 January. On 15 January 2019, he returned to League One, joining Southend United on loan until the end of the 2018–19 season. He made his "Shrimpers" debut four days later, playing at left wing-back in a 4–0 win at Bradford City; after the game manager Chris Powell said that he was pleased with Hart's performance. Hart went on to sign a one-year contract extension at Blackburn the following week, keeping him tied to the club until 2020. He missed the first half of the 2019–20 season after picking up a hamstring injury in pre-season. On 17 January 2020, Hart joined League One side Shrewsbury Town on loan until the end of the 2019–20 season. "Shrews" manager Sam Ricketts signed him to replace recalled Wolverhampton Wanderers loanee Ryan Giles. He was released by Blackburn manager Tony Mowbray on 24 July 2020.
Style of play
Hart was described by the Liverpool website as "a left-back, who relishes going forward and poses a real threat when pushing on down the flank", and someone who "can carry the attack with his fine athletic profile – but he's also very strong in the tackle".