Hey guys, I want to share something I've been building.
I'm a 2nd year student, and I practice on Codeforces, LeetCode, and CodeChef. For a while I kept running into the same annoying problem — my progress was scattered across three tabs, three different rating systems, three different "weak topics," and I had no single place to actually see how I was doing or what I should practice next.
So over the past few months I built CPPro to fix that for myself, and figured some of you might find it useful too.
What it actually does
It's a single platform that pulls your CF + LC + CodeChef data together — ratings, heatmap, contest history, topic-wise solve counts. Nothing groundbreaking on its own, I know there are tools that already do parts of this.
The part that's actually different from most trackers is the daily problem system. Instead of generic "problem of the day" picks, it looks at your actual solve history across all three platforms and gives you two problems every day — one that's comfortable and keeps your streak going, and one that's specifically targeting whatever topic you're statistically weakest at. So if you've solved 80 array problems and 3 DP problems, it's going to keep nudging you toward DP instead of letting you stay comfortable. There's also a third bonus problem that's just random, mainly there so you have something to do if you're done with the first two and still want more.
I also added an AI-generated topic-of-the-day. Every day it picks a concept from whatever you're weak at and generates a short article explaining it, why it actually matters (not just "this is the definition"), a dry run with a small example so you can see it working step by step, a code template you can use directly in a contest, and a visualization of how the algorithm flows. The idea was that just being told "you're weak at DP" isn't useful by itself — you also need something to actually read and learn from right there instead of going and searching for a separate resource.
I also built a Level Up section which honestly took the most time. It has three parts:
The first is an upsolve queue — pulls all the problems you attempted but didn't AC across CF, LC, and CodeChef, shows the verdict so you know why you left it (WA, TLE, or just never came back to it). For Codeforces specifically it also picks one problem from each contest you participated in, so you have a structured upsolve list per contest rather than just a random dump.
The second is problem recommendations — 6 problems per category (Workout / Challenge / Bonus) curated based on your actual rating and weak tags, refreshed weekly.
The third is a performance stats page that compares your last 30 days vs the previous month. Consistency score, your weakest topics with acceptance rates, which days of the week you're most active, pace projection, how far you are from your next rating milestone. There's also an insights section that just tells you in plain text what to focus on — "your weakest area is games (43% acceptance), focus here for maximum growth" — instead of making you figure it out yourself from the charts.
Why I'm posting this
I built this for myself first, mostly because I was tired of jumping between three sites just to figure out what to practice next. I'm not saying this is better than tools that have been around for years and have way more work behind them — I'm just a solo 2nd year student building this in my free time, partly to get better at full-stack dev and partly because I actually needed it.
If you try it and something's broken or confusing, I'd genuinely rather hear that than silence. And if you've got ideas for what would actually make your daily practice better, I'm listening.
Happy coding.










Auto comment: topic has been updated by _Sparky_ (previous revision, new revision, compare).
guys atleast try it before downvoting it T-T my contribution have reached -14 :). i have seen many guys make just make rating divisions of problem and people are praising like dont know what they have made and whenever i post people just downvote without even trying :)
The concept is really good, but I would say that choosing problems for upsolving is a part that you can do better ( honestly if you just focus on this concept, with time you can make it really good ).
thanks for your feedback btw any particular recommendation for upsolve queue ?
I think adding the problems which are voted in some editorials to be really good, can also use cf problems mentioned by USACO guide.
I want that upsolve to not have the problems which are not really needed to grow in that phase, like: DP is not really a priority for 1300 less guys, (not more experience that this point).
Basically, try to think which directions will be best to broaden this upsolve concept, after all we aare going to do it for growth!
ohh i get it , i need to do some research about USACO guide as i have never used it and its cf problems than maybe we could do something about it. btw thanks for your suggestion buddy :)
Hope to see it become a really good tool!
Good luck bro!
I dont get the downvotes actually. I just visited it once, so yet to properly use it, but the website feels nice enough. I like the idea behind it too, and the linking process was also pretty straightforward and easy. The only suggestion i would make, is maybe find a better way for Leetcode account verification, since Leetcode allows only one name modification per 90 days so.. All in all, pretty good.
thanks for your feedback :) . for the leetcode actually leetcode doesn't have any other field which uniquely identifies a user so i just use username for that.
you can use bio field. it can be changed. i think sites like codolio use that
for leetcode we use the username as unique identifier and its display name to verify access of account. display name can be changed as many times as you like ,so even if you put the code given by cppro in place of display name just click verify and instantly change to your old display name .
I didnt visit but the concept is decent. I like that the blog isnt written in AI, lol
thanks :)
Can you also add AtCoder please? Your website looks pretty nice btw,thx!
well i did wanted to add it previously too but as i have split all sync engines differently as microservices and i didnt had any more instance of vm or free render account thats why i stopped. but i am again working on it and soon it will be added too
Cool project, bro The animations and scrolling experience are very smooth. Have a q though how did you scrape the CodeChef data?
bro i used web scraping or html scraping for codechef as we dont have any official rest or graphql api for codechef like leetcode and codeforces , i used cheerio a lightweight nodejs library used to parse html from webpages and get user data from it
you should also add unsolved questions from previous contest like for for leetcode(lc doesn't have apis like cf ig).
bro actually leetcode's graphql endpoints don't reveal the contest in which problem was asked but i am trying a way to actually make it happen so lets see if thats possible or not
I thought of making for leetcode but i has the same probelm as you
actually i did find solution :) . ( leetcode have a graphql endpoint for fetching last 10 contests details but with pagination you could fetch even more ,even the first contest) soon upsolve queue from past contest for leetcode will be added
upsolve from last contests for leetcode is live please check it out!
so is it a glorified profiles manager ?
feels like adding another website to the list.
the ui and features look good(i prefer simple ui like codeforces and atcoder).
for me, i would keep limited features such as the Daily Problem System.
i could go on about ai sloppiness and stuff but i'll stop here.
~ fellow newbie
thanks for using buddy :)
ngl, such a attractive ui keep it up yash !.
thanks buddy :)
can u shorten the refresh time pls? currently loving the website
i can definitely shorten the refresh time but the problem is all these syncs are done on bandwidth of free webshare proxy ip's which is limited , if i decrease the refresh time which will suddenly increase bandwidth consumption T-T . i will see from my end if bandwidth consumption is limited i will decrease it myself :) btw thanks for loving it
Built with Claude?
i dont have claude bro T-T (if i had wouldnt have taken so much time to build it )
Been using it for quite a time, feels like an all in one platform for my CP journey!! Everything is neatly organized and easily accessable. The UI is great and the overall implementation of the problem that it solves is also good. Will be using it for my further CP journey, Hoping for unique and fresh updates.
I like the application I was building one myself.
In general I would say to focus more on core features and not have so many fashy feautures.
People will really come to this page to find problems to upsolve so having it hidden away in the level up.
Keep iterating and you will make a great product.
Also, in my profile I found a bug some problems I have already solved appear in the upsolving page
brother try refreshing your dashboard and even after half an hour of refreshing still solved problems in upsolve queue than could you please mail the screenshot of your upsolve queue to [email protected] :)