Preheat a large skillet over high heat and sear the ribs for about 5 minutes on each side. (This part is optional but will help to seal in flavor and moisture.)
Once done, transfer ribs to a large stockpot and add water. Bring to a boil over high heat.
Once boiling, reduce heat to a simmer, cover and cook about 1-1½ hours until meat is tender and falling off the bone.
Meanwhile, chop the onion and thinly slice the carrots and beets.
Preheat a skillet with oil (or use the same one from searing the meat) and add in the chopped onion. Cook until the onion becomes translucent.
Add in the sliced carrots and beets and cook for another 10 minutes.
Add in the tomato paste, salt, and sugar. Cook for about 10 more minutes. When done, remove from heat.
Once the meat is done cooking, remove from pot and separate the meat from bones and shred the meat. Place the shredded meat back into the pot.
Add in the chopped potatoes and shredded cabbage. Cook for another 20 minutes or until potatoes are cooked.
Then add in the onion-carrot-beets mixture. Sprinkle in parsley and dill. Cook for another 10 minutes.
Turn off the heat from the pot and cover with a lid and allow the soup to sit and cool for about 15 minutes before serving.
Serve the soup topped with sour cream and fresh dill.
Enjoy!