state_invariant's blog

By state_invariant, history, 5 months ago, In English

Hey guys,

Like many of you, my browser extensions setup during a live round was a total mess. I had one extension just for dark mode, another for rating predictions, another to hide tags, and a few more for random stats. Running all of them together was actively lagging my UI, especially during the final minutes of a contest.

To fix this, I spent the last few weeks building a single, unified workspace from scratch called CF Monolith. It’s built entirely on vanilla JS and Manifest V3, so it has near-zero overhead and won't lag your browser when the contest clock hits zero. It runs 100% client-side with no tracking or external database dependencies.

I wanted to make something that actually improves the workflow for both live rounds and upsolving. Here is what it does:

  • Instant GM Code Viewing: When you're upsolving, you can view the exact code of top leaderboard finishers with a single click right from the standings page. You don't have to open five different tabs or dig through deep submission logs to find grandmaster solutions anymore.

  • Auto-fetching tags on submit: The moment you hit the submit button on a problem, the extension automatically grabs and logs the question tags for your history tracking. You don't have to waste time clicking back and forth to see what the topics were.

  • Live Regional Leaderboard: It dynamically filters and injects a live India standings tab straight into active contests based on profile data, which is great if you want to track local rank in real time.

  • Interactive Analytics: The performance charts on your profile aren't just static visuals. If you click on any bar (for example, 1000 rating bar), it instantly filters and pulls up the complete list of problems you've done or missed in that category.

  • Smart Tag Hiding: It completely masks algorithmic tags on the problem page to eliminate solution bias while you're practicing, but it keeps the numerical difficulty rating visible so you still know what you're dealing with.

  • Zero-Lag Dark Mode: A native, deeply optimized dark theme that covers the whole site without causing rendering delays. The extension is fully verified and live on the Web Store. If you want to try it out for your next practice session or live round, the links are below.

Let me know if you find any bugs or have ideas for features to add next!

...and there are a few other smaller quality-of-life features packed into it as well. Honestly, it's a lot easier to just install it and use it during a real practice session to fully understand how everything fits together and speeds up your workflow.

Chrome Web Store: Download CF Monolith:(https://chromewebstore.google.com/detail/codeforces-monolith-cf-mo/alailmojcgnjfgclagniegeeaeecndni)

GitHub (MIT License): (https://github.com/code-uix21/cf-monolith)

I’m still actively working on this, so if something breaks or if you have a feature idea you want to see added, just drop a comment below or open an issue on GitHub. Since it's fully open-source, feel free to contribute or raise a PR if you want to optimize something!

Good luck with the upcoming rounds

  • Vote: I like it
  • +15
  • Vote: I do not like it

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by state_invariant (previous revision, new revision, compare).

»
5 months ago, hide # |
 
Vote: I like it +10 Vote: I do not like it

It's fine, I guess?

The Endians doesn't have a problem rating in the problem set tab, dark mode doesn't work as well as other extensions have it (Don't get me wrong, it's a nice dark colour, but the codeforces logo is a white box that sticks out, and rating pages act weird with the dark mode enabled), plus the bubble buttons are kind of off-putting.

  • »
    »
    5 months ago, hide # ^ |
     
    Vote: I like it +10 Vote: I do not like it

    Thanks for the feedback, appreciate you pointing these out.

    Since this is just the first version, there are definitely some rough edges to smooth out. I'm already working on fixing the dark mode bugs—the white box behind the logo and the weird layout on the rating pages will be fixed in the next patch. I'm also going to redesign the bubble buttons to look more normal and native to the site in the next update.

    More updates are on the way soon. Let me know if you run into anything else!

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

The Attempted Question Analysis area has two colours for solved and unsolved. But it is not being used? Proof

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

it's good for beginner

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

This is incredibly helpful! It saves me from having to download four different extensions. The auto-fetch feature that grabs the problem number when you click submit is the best part. Previously, if I forgot the question tag, I had to go back, which was quite a hassle.

  • »
    »
    5 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Glad it’s helping you save time!

    Thanks for trying it out, and let me know if you think of any other features or tweaks that would make your workflow even smoother!

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

This is a nice extension. It helps a lot in reducing the number of extensions active at a single time. It helps in keeping track of your already solved question and concept of regional ranks is pretty impressive.

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Really enjoyed reading this blog. The intuition was explained in a very simple and natural way, so it honestly felt easier to understand than a lot of CF editorials. Also liked the extension part a lot! Great write-up!

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Guys first I thought it is a normal dashboard but the real gem is when you click on any particular bar it open the list of the problems Marvelous and super handy

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

what a good extension!

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by state_invariant (previous revision, new revision, compare).

»
5 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Whenever I use Competitive Companion, an emoji ( Add NoteSaveDelete) gets added to the problem title in the generated code comments. Please help me fix this issue.

  • »
    »
    5 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Hey! Thank you for bringing this to my attention. This issue occurs because the extension modifies the title DOM element, which interferes with competitive companion's scraping mechanism. I have identified the root cause and will update the injection logic to resolve this conflict in the upcoming release. Please look out for the next update, which will be rolled out shortly. Thank you for your patience and for helping improve the extension!

    — CF Monolith