If a route was to be introduced between Leith and Portobello via Fillyside Road, there are so many options for how it could be done - extend the 1, extend the 12, extend the 200, extend the 140/141, reroute the 19... I'd even throw in extending the 15 as a wildcard, send it up Leith Walk and across to Portobello, terminating either at Eastfield or Musselburgh Tesco.
How about something like this - an idea I came up with on the spot.
The 21 would be split into two routes, let's say the 21 and 28.
The 21 would run from Clovenstone to the Infirmary via its current route. The 28 would run from the Gyle Centre to Musselburgh, along the 21 route until the foot of Easter Road, then to Musselburgh Tesco via Hermitage Place, Claremont Park, Seafield Place, Seafield Road, Seafield Road East, Fillyside Road, Craigentinny Avenue, Craigentinny Road, Wakefield Avenue, and the route of the 26.
Then a new route would be introduced, let's give it the number 17, running every half hour along the route of the 21 from Ocean Terminal to the Infirmary, which could also be extended to northern Shawfair in the future.
This maintains the 15 minute frequency along the 21 corridor, alongside providing a new link from Ocean Terminal to the Infirmary, provides a bus service to the Leith-Portobello corridor that avoids the city centre, and creates new direct connections from Musselburgh and Joppa to north Edinburgh and the Gyle Centre. Direct connections between the west of the city and Portobello are also still maintained through the 28, albeit at a lower frequency, though I imagine demand for this is relatively low considering the length of journey, and plenty of alternative options are available through the 12, 19 and 26. The only section the 17, 21 and 28 overlap is between Junction Bridge and Easter Road, a very short section, thus there wouldn't be any stretches of the current 21's route that would suddenly become overserved.
Here's a summary:
17 | Ocean Terminal - Royal Infirmary
via Leith, Lochend, Portobello and Niddrie.
Every 30 minutes.
21 | Clovenstone - Royal Infirmary
via Sighthill, Drum Brae, Davidson's Mains, Leith, Lochend, Portobello and Niddrie.
Every 30 minutes.
28 | Gyle Centre - Musselburgh
via Drum Brae, Davidson's Mains, Leith, Seafield and Portobello.
Every 30 minutes.