The 2024 will bring a lot of new features to ContextKeeper and you will be surprised how much more useful the whole experience could be. It is the only the beginning and I have only scratched the surface with the current ContextKeeper version. The power of context will be given in your hands, and there is no tool on the market that will be even remotely close to ContextKeeper upcoming releases in 2024. And I am really serious about that πŸ’ͺ "Stay hungry. Stay foolish".

The Roadmap

  • Active snapshot feature - an active snapshot (manually created or branch snapshot) will be continuously auto-saved, similar to branch snapshots. Additionally, when you change git branches using the CLI or another third-party tool, ContextKeeper will detect the active snapshot during loading the solution in Visual Studio and ask you to restore the snapshot matching the current git branch,
  • Multiple solution support - snapshots are currently shared between solutions (*.sln) from the same directory, but snapshots will be marked and restricted to show only for solutions they belong to. It will allow independent branch snapshots for multiple solutions projects,
  • Startup project support - the current startup project will be included in a snapshot,
  • Floating breakpoints & bookmarks support - when a file is edited, breakpoints & bookmarks' positions will follow and be recalculated,
  • Custom bookmark engine - advanced navigation, customization, switching between bookmark sets, etc. The Visual Studio default engine for bookmarks is very limited; it doesn't allow storing bookmark names, and navigation is constrained. However, the ContextKeeper Bookmarks engine will change that,
  • Snapshots timeline history - you will have the ability to return to deleted/altered snapshots; every meaningful snapshot change will be automatically auto-saved,
  • Last active snapshots timeline - last used active snapshots will be shown without loading the solution/project first,
  • Organizing snapshots in folders
  • Favorites files list
  • Last closed documents list
  • Bookmarks & breakpoints behavior configuration Option to turn off restoring breakpoints & bookmarks or preserve old ones during restore, Removing breakpoints & bookmarks when closing a snapshot.
  • Saving vertical scroll position and selected text per file
  • Support for opening the same file in "editor" and "design" mode at the same time
  • Automatically deleting a branch snapshot if a git branch doesn't exists anymore (after confirmation),
  • Visual Studio Code support,
  • and more (including secret features not listed above) πŸ”₯

Not convinced how much value ContextKeeper brings? I've got you covered.

Below, you'll find a table comparing extensions that work with VS 2022. I've included free extensions, with the exception of Task Canvas, which is a paid one. I've invested several hours in testing Favorite Documents, Workspace Manager, and Task Canvas to get a clearer picture of how they all stack up against ContextKeeper.

Features supported ContextKeeper Task Canvas Favorite Documents Workspace Manager
Automatic session switching when changing Git branches βœ… ❌ ❌ ❌
Restores full Visual Studio's original documents state βœ… ❌ ❌ ❌
Tabs order βœ… ❌ ❌ unreliable
Tab groups (including horizontal/vertical orientation) βœ… ❌ ❌ unreliable
Document windows positions & size (including floating windows) βœ… ❌ ❌ unreliable
Breakpoints βœ… ❌ ❌ ❌
Bookmarks βœ… ❌ ❌ ❌
Last selected tab for every window βœ… ❌ ❌ unreliable
Last active tab among all opened βœ… ❌ ❌ unreliable
Visual Studio independent restore engine βœ… partially ❌ ❌
Multiple document windows βœ… ❌ ❌ unreliable
Multiple monitors support βœ… ❌ ❌ unreliable
Relative path (portable sessions between environments) βœ… limited limited ❌
Maximized/Normal state for document windows βœ… ❌ ❌ ❌
Source control ready sessions files (diffable JSON format) βœ… ❌ ❌ ❌
Continuous session auto-save for branch snapshots βœ… ❌ ❌ ❌
One-click append files βœ… ❌ βœ… ❌
Pinned files βœ… ❌ βœ… unreliable
One-click session update βœ… βœ… ❌(only adding) unreliable
One-click restore βœ… βœ… ❌ ❌
Shareable session's file between teammates βœ… βœ… ❌(one file for all sessions) ❌
Last opened files βœ… βœ… βœ… unreliable
Line & column for every file βœ… βœ… βœ… unreliable
Non-solution (external) files βœ… βœ… βœ… ❌
Not based on the (broken) IVsUIShellDocumentWindowMgr βœ… βœ… βœ… ❌
Still in an active development (updates in 2024) βœ… ❌ ❌ ❌
Price $149 $49 Free Free

Task Canvas

I must say, I'm a bit surprised by how Task Canvas, the only paid competitor, performed in the comparison. It was built with a different workflow in mind, which is why it lacks in certain areas. However, it's still quite powerful and presents an interesting concept with its independent task canvas (separate, physical tab). Kudos to Sergey for trying something different. I'll take a closer look to see if there are any elements from this concept that could add additional value to ContextKeeper. What are your thoughts on this?

Favorite Documents

It appears that the most popular extension is based on the simple VS API - VsShellUtilities.OpenDocument(). Unfortunately, it lacks more sophisticated use cases. Nonetheless, it's still better than relying solely on Visual Studio's default state engine and the inherently flawed .suo file.

Workspace Manager

The spiritual successor to the (broken) approach of Save All the Tabs, utilizing the IVsUIShellDocumentWindowMgr.ReopenDocumentWindows() API. Unfortunately it is nothing more than wrapper for the default Visual Studio state engine, which which has had persistent, unresolved issues for years. It's unreliable, sometimes functioning properly but often failing. My experience with it has been similar to Save All the Tabs, which I tried using with mixed success in the past.

The fail of the Save All the Tabs extension, to deliver a stable and reliable restore mechanism, really push me to work on the a truly independent session restore engine. I distinctly recall my thought process during that time -

If it doesn't work, I'll at least give it a shot and try to build it. There's nothing wrong with failing, but if I succeed, man, one day it'll be a big deal! I will try to make it the state of the art session manager Visual Studio never had, but always deserved.

Later, the engine has become the heart of ContextKeeper. It has taken thousands of hours and years of work to bring it to a state where it is a true pleasure and an enjoyable experience to use, and to have the session manager that Visual Studio has always deserved. πŸš€ Cause there ain't room for more than one King πŸ‘‘ in this town.

What's more this week?

  • unique access to the Lifetime license (only the first 5000 licenses), both personal and business(!), including commercial license for using ContextKeeper, forever, including all future version upgrades, including plugin for Visual Studio and Visual Studio Code πŸ”₯ (when available). No subscription fees, unlimited use time and free upgrades,
  • lately Visual Studio celebrated 25th Birthday. I’m sure in 2034 it will be still the major player on the IDE market. I have long-term strategy to create successful business, focused on the next-gen tooling for developers and the ContextKeeper is a key element of this strategy. By long term, I mean at least a 10+ year time horizon. Surprisingly, it’s not so long. NCrunch plugin has been on the market for 13 years, and Resharper for more than 15 years. Both are VS plugins. By investing today, you’re making a real, lifetime deal. No bullshit. Let’s compare how much ContextKeeper will cost you over the years for Personal Lifetime license:
    • $349 / 5 years = $70 / year
    • $349 / 10 years = $35 / year
  • ContextKeeper was born from my pure passion for optimizing daily dev workflow. When I’ve started my software developer career in 2005, I had always this big dream, to create a product that others will love πŸ’– and to have the opportunity to work on something that I really care about πŸ’ͺ - devs tooling, neuroscience and cognitive psychology which are big parts of the overall ContextKeeper vision,
  • there is a real value behind the offer which you probably recognizes instantly - in the world of subscriptions, especially for devs, Lifetime license is a unseen gem πŸ’Ž

How to convince management in a company?

If you’re the only one using ContextKeeper in the company, it is high time ⌚ to introduce it to your colleagues, and ask management to buy business licenses for your team.

I have a great example from our business customer:

One of the first emails:

After your email, I started to reconsider and started talking to the management in the company I am working. Currently, there is the possibility, that the company will get one or multiple licenses.

I checked your list and had a quick look at the alternative extensions myself.

As I said in my earlier email, the automatic Git branch switch is really comfortable, but not exactly mandatory. Apart from that nice feature, for me, the biggest selling point for the ContextKeeper was that it also stores breakpoints and bookmarks and does apparently also store more window / context information (like last selected tab, order, position etc.).

and later:

after showing your extensions to my colleagues, the company I work in just bought multiple lifetime business licenses for me and other interested colleagues.

So if you enjoy πŸ’– using ContextKeeper, please show it to your colleagues, share with them how much value it delivers, among other wonderful features, and talk to the management about buying business licenses.

Your dev team will forever owe you πŸ™ - πŸ’― guaranteed.

The offer sounds good but can I trust you? Will you deliver all those features?

I’m really glad you asked πŸ‘‹! At the end of the day everything is about trust. When you spend you hard-earned money, you want to be sure that you will get high quality, polished product, made by people you know. You want to be πŸ’― sure that all those updates will be delivered and the product development will thrive for years.

There are developers, whose trust I’ve already have managed to gain, and I am eternally grateful to them for that.

Maybe you're thinking, 'This is a random guy from the internet. What's his track record? I want to know him better' I've got you covered; follow me.

Piotr’s Track Record

I have been working as a software developer in the industry since 2005, and now the 19th year has just begun. You might ask, 'Have you gotten bored with coding after so many years?' Not in the slightest. My love for computers and coding began very early. I was 9 years old when I got my first Commodore 64. From then on, I always knew that I would be working with computers when I grew up. I had told this to my parents, but they were skeptical. Here we are, 34 years later, and I'm still fulfilling my childhood dream.

Throughout those years, I have designed and implemented many interesting projects. I value your time, so let's keep it short and sweet.

The CNN MagicWall app

I've designed and implemented vote counting algorithms for the 2016 and 2020 US presidential elections within the MagicWall app (.NET, XAML, WinRT, and later UWP) developed for CNN, which was used during election nights. Additionally, I created the National Map module which John King was interacting on the live broadcast in 2016 and again in 2020. This project was both enjoyable and demanding; the app needed to function flawlessly 24/7, airing continuously during election nights. I was also personally responsible for designing the app's automated stress tests from the ground up. All of this occurred while I was part of the incredible team at InterKnowlogy for a couple of years.

MAGIC WALL: Trump's attempt to revive agendaCNN MagicWall and John King

During my work, I've begun to specialize and developed an attitude that can be summarized as follows: 'Throw any technologically demanding problem at me, and I will find a solution, no matter what.' I dig deep until I find the solution.

Those abilities helped me when I started working on the first Proof of Concept, which later became ContextKeeper. In 2015, it had the codename CodeDocker:

img ContextKeeper's first commit

I've spent the past 38 months bootstrapping (with no VC funding) and working full-time on ContextKeeper since January 2021. I've carefully planned it since 2015 when it was still my side project. Month by month, I've shared progress on the blog. Finally, when the plugin was released in July 2021, I had included the two most requested features in the first roadmap:

Both features have are already been implemented: Git support when changing branches in November 2021 and support for the relative paths in June 2022.

In 2023, there was a truly pivotal moment when support for breakpoints & bookmarks was released. These were the most requested features so far, alongside automatic snapshot switching when changing git branches.

As you can see, I am an experienced marathon runner, consistently delivering results over the years. In 2024, ContextKeeper will be even more polished, offering more exciting and useful(!) features. Consider it done and I will deliver resultsπŸ’ͺ

The ContextKeeper Promise - πŸ’― satisfaction or full refund within 90 days

If you’re not satisfied for any reason within 90 days you get a full refund, period, no questions asked. If you’re not amazingly happy, I don’t want your money. Without any asterisks or fine prints. You can give any reason or no reason for the refund: you don’t like something, you need the cash back for something else … You can refund and get your cash back.

Free or discounted licenses for startups, students, open source projects, Microsoft MVPs etc.

If you any of above groups please leave your email here, confirm it in your email client and reply to the first email that comes next providing some additional context.

    πŸ™ Thanks for your support!

    Piotr Karczmarz,

    ContextKeeper Founder & CTO

    Piotr Karczmarz