Skip to content
CraftlyKit

About

One person, a text editor,and a list of small annoyances

CraftlyKit is an independent studio, not a company. This page explains who is behind it, what has actually shipped, what is still being built, and how it is paid for — including the parts that are not flattering.

Who I am

I’m Muhammad Saad Ali, and I build everything here on my own from Faisalabad, Punjab, in Pakistan. CraftlyKit is the name I publish under. There is no team, no office, and no company registration behind it — it is one person and a text editor, and saying that plainly seems more useful than writing “we” and hoping nobody checks.

That has consequences worth knowing before you rely on anything here. Support is me answering email, usually within a few days rather than within an hour. Things ship when they are finished rather than on a schedule. And I keep the list of things I maintain deliberately short, because the realistic alternative is a longer list where half of it has quietly stopped working.

TabVault, and the problem it solved for me first

I had a bad habit of keeping forty tabs open. Not because I needed forty things at once, but because closing one meant losing my place in it. A half-read article would mean hunting for the paragraph again; a tutorial I was forty minutes into meant dragging the YouTube scrubber around trying to find the spot. So the tab stayed open. Then the next one did, and eventually the browser was using more memory than everything else on the machine put together.

The realisation was that the problem was not the number of tabs. It was that closing one had a cost. Take the cost away and the habit fixes itself.

So I built TabVault. It saves a tab along with the exact scroll position you were at and the exact timestamp you reached in a video, so reopening it puts you back where you stopped instead of back at the top. Saved tabs go into categories I name myself — mine are Study and Work — and a whole category reopens in one click. It is free, and it is on the Chrome Web Store now.

It asks for no account, and everything it saves stays in your browser on your device. I did not add a sync server because I did not want one — building it would have meant holding a copy of everybody’s tab history, and that is a thing I would then be responsible for securing and could lose. Not collecting it is simpler and safer for both of us. In a category where most extensions sync your tab history by default, that is the part worth checking before you install anything, mine included. Full detail on the TabVault page.

OdDraw, which I am still building

OdDraw is a hub of short browser games. It is in development and not playable yet, so there is no link to give you — and I am not going to publish a date I might miss.

The game it is named after came out of playing something similar with friends and thinking the format deserved a version that loaded instantly and did not ask anyone to sign up. Everyone gets the same secret word to draw, except one player who gets a different word and does not know it. That player has to blend in; everyone else has to prove they know the real word without drawing so clearly that they hand the imposter the answer. That second constraint is the whole game — being too good at it is how you lose.

Around it I am building a set of quicker games: trivia, speed typing, drawing guess, and the classics. The games are not a distraction from the tools. They come from the same instinct — that something small, fast, and finished beats something ambitious and abandoned. Making a game load in two seconds on a cheap phone is the same craft problem as making an extension that does not slow your browser down. The concept is written up in full on the games page.

Why I make these

The web is full of small friction that nobody fixes because each individual instance is too short to feel worth fixing. A task that takes forty seconds, done nine times a day, costs about three working days a year — and it never once feels like a problem worth solving, because it is over before the irritation registers.

That is the gap I work in. Not big software, not platforms, not anything that needs an account and a subscription. Both things I have made started as something that annoyed me personally, often enough that I could put a number on it.

The rules I hold everything to

These are fixed rather than negotiated per project, which is the only way rules like this survive contact with a deadline. If something I am building cannot meet them, I do not ship it.

  • Narrowest permissions the job needs. An extension that only acts when you click it does not get permission to read every page you visit.
  • Work happens locally where the task allows. A great many small tasks — reformatting, converting, calculating — have no technical need to send your data to a server. When it does not need to leave your browser, it does not.
  • No account for the core function. Nothing here asks who you are before it works. Settings and scores live in your own browser.
  • Usable on the device you actually have. The test case is a mid-range phone on a slow connection, not a fast laptop.
  • Keyboard accessible, readable, and calm. Visible focus rings, real contrast, text large enough to read without zooming, and animation that respects a reduced-motion preference.

How a project actually gets chosen

Ideas start as a line in a running list of things that have annoyed me more than once. Most never leave that list. The ones that do get ignored deliberately for about a week — enthusiasm is a poor predictor of whether something is worth building, and a week is enough for roughly two thirds of ideas to become visibly not worth it.

What survives gets built as an ugly, unstyled version in a day or less, then used daily for a fortnight before any design work happens. That is where most of the remaining ideas die, because it turns out the tool did not actually remove the annoyance. The full version of this process, including the parts that waste time, is written up in from annoyance to shipped.

How this site is paid for

TabVault is free, the games will be, and I pay for the site with advertising rather than by charging for access. That is a trade with real consequences, so here is the shape of it.

Ads are served through Google AdSense. I place them between sections of content rather than inside them, never inside a game, and never at a density that makes a page hard to read. No advertising or analytics cookies are set until you accept them — those scripts are not loaded at all before that, which is why the cookie banner has a genuine “essential only” option rather than a decorative one. The details are in the cookie policy and the privacy policy.

What advertising does not buy: influence over what I write here. There are no sponsored posts, no paid placements in the projects list, and no affiliate links in the blog. If that ever changes, I will label it on the page it applies to.

What this site is not

It is not a company, and calling it one would be a lie that is easy to check. It is not a content farm — I write about things I have actually built and actually use, which is also why there is not much of it. It is not a review site, so nothing here is ranked in exchange for anything. And it will not ask for your email address before showing you a product.

Getting in touch

The most useful message I get is a specific annoyance you have hit more than twice — the same kind of thing that started both of these projects. Bug reports are a close second, particularly ones that name the browser and what you were doing.

Email me

This goes straight to me. Replies usually take a few days.

craftlykit@gmail.com

Or use the contact form, which arrives in the same inbox.