internal/fs/utils.js:332
throw err;
^
Error: ENOSPC: no space left on device, write
at writeSync (fs.js:736:3)263 karma · joined April 11, 2017
Website: https://ksbrooksjr.com/
Email: hn@ksbrooksjr.com
Freezetab: https://freezetab.com/ internal/fs/utils.js:332
throw err;
^
Error: ENOSPC: no space left on device, write
at writeSync (fs.js:736:3) curl -s cloudflare.com/cdn-cgi/trace | grep ip | cut -d "=" -f 2 --[0] https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers...
type RequiredKeys<O, K extends keyof O> = Omit<O, K> & Required<Pick<O, K>>
type Person = {
name?: string
age?: number
}
type RequiredName = RequiredKeys<Person, 'name'>
The opposite (making some of the fields optional, without affecting the rest) would be written like this: type OptionalKeys<O, K extends keyof O> = Omit<O, K> & Partial<Pick<O, K>>I saw your email, and I'll personally send you an email when an Opera version is available. Given that Opera is just a fork of Chromium, you can actually install most Chrome extensions directly from the Chrome Webstore[1], although that's just a temporary fix. I plan on fully supporting Opera in the near future.
As to the business model, I certainly considered monetization while building the product, but my initial concern was just solving my own problem and getting Freezetab into the hands of users. Given how successful the launch was (it's the #1 product on Producthunt today[2]) I'm actively exploring monetization strategies.
Given how many requests there are for cross-platform availability, I think I'll set up an email list to notify everyone when it's available for Firefox and Opera. I'll update this thread accordingly.
[1] http://www.makeuseof.com/tag/how-to-install-google-chrome-ex...
Cloud syncing is certainly on my radar, but slightly more difficult. If Freezetab synced the saved links with Google Bookmarks it would lose all the metadata associated with each link. Freezetab assigns each saved link a unique ID for example — bookmarks don't allot any extra storage for this sort of custom metadata. I do plan on building a server side implementation of Freezetab to handle syncing if the extension gains enough traction.
I definitely plan on expanding availability to Firefox and Opera in the short-term (and eventually Edge), because porting Chrome extensions to those platforms is pretty straight forward.
Safari on the other hand is a little bit more challenging. Most browsers implement extensions as plain HTML, CSS, and Javscript — they're essentially just websites. Safari requires developers to integrate native Swift and Objective C code into extensions, which means I might have to do a partial rewrite (and learn Swift or Obj C) to target Safari.
You also have to pay a 99 dollar annual fee to maintain a presence in the Safari Extension Gallery, which is somewhat exorbitant for a free extension. If users install the Safari extension directly from my website instead of the extension gallery, then they'll miss out on auto updates.
Freezetab uses an infinite scrolling mechanism that loads your tabs as you scroll, so it's just as responsive when you have 1500 saved tabs as it is when you have 15 saved tabs.
I added some features to help people keep their saved links organized, so that it would be easier to parse them at a later date. You can of course just search through your browsing history, but all of that data is lost whenever you clear your history.
Even if you do refrain from clearing your browsing data, there aren't many options for organizing your browsing history. What if you want to view every link you've ever saved from Ycombinator? What if you want to find every link you've ever saved on a certain day of the month? Also, what if you want more control over which tabs are saved? Have you ever had so many tabs open that Chrome no longer displays their titles, making it extremely difficult to find the specific tabs you want to save?
These are the sort of problem sets that I set out to solve. Hopefully there are some power users here who are able to derive some value from it.
Give it a try, it's free.
I used the words bookmark and tab on the landing page, because they are familiar words that provide a reference point for people trying to quickly grasp what the extension does (especially non-technical people). There's always a tradeoff between precision and concision when crafting marketing materials, but I hope most people are able to understand the project's basic functionality.
I do think that a huge opportunity has been missed by the major browser vendors in relation to bookmarks. That area of technology has been pretty stagnant throughout the history of the internet, which seems odd given the fact that saving links is such a basic necessity.