

Show HN: garlic.js - don't let your users lose their form data - guillaumepotier
http://guillaumepotier.github.com/Garlic.js/

======
fruchtose
I think the desire for this kind of project is very reasonably based, and it
looks like you have done great work on most of the implementation. I have one
gripe with it, though.

It would be nice if the documentation mentioned that garlic.js requires an
HTML5 browser with localStorage implemented. Remember, there are people who
are still using Internet Explorer 6 and 7, and these browsers are incompatible
[1]. This is a minor details considering browser marketshare, but a fallback
using cookies would be a nice-to-have feature.

Besides that, awesome work!

[1] <http://www.quirksmode.org/dom/html5.html#t00>

~~~
paulirish
For all intents and purposes, IE6 and IE7 are dead. They account for less than
1.5% of worldwide browsers [1]. At this point, seems okay to leave out.

[1]
[http://gs.statcounter.com/#browser_version_partially_combine...](http://gs.statcounter.com/#browser_version_partially_combined-
ww-daily-20121107-20121109-bar)

~~~
showerst
That depends on your user base. If it's just the wider internet that's
accurate, but if you're aiming at government or big corporate clients, you'd
better check your analytics first.

~~~
marcuschristie
We're talking about something that prevents form data loss. If it doesn't
error on IE6/7 and simply doesn't work, then that's fairly graceful
degradation that provides a benefit to users on more modern browsers.

But I suppose if your userbase is predominantly IE6/7, then it may not be
worth the effort for you.

------
daymun
I'm getting a 404. <https://github.com/guillaumepotier/Garlic.js>

~~~
flyingyeti
<http://garlicjs.org/> works as well

------
qohen
The provided github link 404's. But this one works:

<https://github.com/guillaumepotier/Garlic.js>

Another link worth knowing about -- perhaps even more so, since there are
demos there:

<http://garlicjs.org>

------
LearnYouALisp
> don't let your users lose their form data

This is a huge problem, and is the reason I've had Lazarus installed for a few
years now.

[https://addons.mozilla.org/en-us/firefox/addon/lazarus-
form-...](https://addons.mozilla.org/en-us/firefox/addon/lazarus-form-
recovery/)

Apparently it exists for Chrome now, too.

~~~
mikeash
Thinking about it, I'm mildly amazed that the browsers themselves didn't solve
this problem back in 1996 or so.

~~~
fudged71
Maybe it's a security issue? With some sites you might not want that
information saved, perhaps.

~~~
guillaumepotier
Good call. Not thought about that. At least, it is shown to the user, and not
hidden and recorded secretly.

------
5vforest
Don't want to be that guy, but what's different from
<http://simsalabim.github.com/sisyphus/>?

~~~
guillaumepotier
Oh, I was totally unaware of this one. Never mind, it clearly shows that
there's a lack here on this browser behavior. My project is juste a few hours
pet project. I'll try to maintain it and make it as advanced & usefull as
sisyphus, for fun :)

------
stevoyoung
Is there a way to differentiate between data that's only saved using Garlic
(local) vs data that's also been saved to the server? This could be a huge
confusion for users if there isn't.

~~~
guillaumepotier
Yes, I'll need to work on that, if there is already server data. Maybe in a
tooltip like, let the user choose which version he should use

~~~
citricsquid
I wonder if you should have some sort of icon or text indicator (per field)
that shows there is saved form data available, but don't populate until the
user triggers it, or an option to restore all available form data in one
click? There are situations where I want to clear a form so I'll refresh the
page if a clear option isn't available. I guess the solution would be for
everyone that uses garlic.js to make sure they have a clear option.

------
ryankirkman
Nice work! I've added garlic to cdnjs:
[http://cdnjs.cloudflare.com/ajax/libs/garlic.js/0.0.1/garlic...](http://cdnjs.cloudflare.com/ajax/libs/garlic.js/0.0.1/garlic.min.js)

------
mmanfrin
'Loose' is the opposite of 'tight'; to 'lose' is to misplace, which is the
word you were going for.

------
bookcasey
Just a heads up, the <title> of your page is still "Bootstrap".

~~~
pyrotechnick
That was a test.

You passed.

~~~
guillaumepotier
ahah ^^

------
RBerenguel
I just hope everyone gets to use it. I added it to my "great to have"
Javascript libraries list. Good work!

~~~
pratyushmittal
Ruben, can you please share your "great to have" Javascript libraries list? It
sounds promising.

~~~
RBerenguel
It's still a work in progress, but of course! I have many (many!) bookmarked
pages with more libraries in my instapaper feed, some emails to myself and a
few emacs .org files I use as buckets. I just decided to start collecting them
last week and made a quick sweep-clean with the most recent tabs I had open
and the few I had linked to recently:

1.1 Markdown 1.1.1 <http://> attacklab.net/showdown/

1.2 DBs 1.2.1 <http://jazzrecord.org>

1.3 Unit tests 1.3.1 <http://jsunittest.com/>

1.4 Documentation 1.4.1 <http://www.naturaldocs.org/> 1.4.2
<http://fitzgen.github.com/pycco/>

1.5 Visual 1.5.1 <http://lab.hakim.se/kort/>

1.6 localStorage 1.6.1 Redis inspired, at twilio
<https://github.com/twilio/BankersBox> 1.6.2 Amplify.store
<http://amplifyjs.com/api/store/> 1.6.3 Persistent form data
<http://guillaumepotier.github.com/Garlic.js/>

I'll probably end up posting the list (or the mind map that forms it) on my
blog sooner or later (probably as soon as I hit 30 or when I finish my current
Javascript RTE project)

~~~
ErikD
Anyone else ending up on a "UPVC Doors and Windows" site when going to
<http://jsunittest.com/> ?

~~~
RBerenguel
Jsunit's site is dead, too. <http://qunitjs.com/> looks like a good one having
similar abilities (test in browser was my main feature for this one)

------
salman89
Should add an option for users to disable this (like remember me on login
forms)... not good for public computers if you don't know the form you just
filled in but didn't submit will retain the data. Other than that, cool!

~~~
wildgift
Persisting localStorage seems to be controlled by the setting to delete
cookies after exiting the browser. If i have it set to delete cookies, it
deletes localStorage. if i allow it to keep cookies after quitting the
browser, then it persists localStorage.

(Noticed this because the demo failed for me the first time.)

~~~
guillaumepotier
Are you sure of that? I've tested the behavior of cookies / localStorage on
iPads recently, and on private sessions without cookies, Safari on iPad had
localStorage persisted.

------
baseh
Getting a 404 on the OPS link. This seems to work
<https://github.com/guillaumepotier/Garlic.js>

------
astro1138
While convenient and technically fine, this can get creepy for users. “Wait, I
didn't submit the form on purpose but the data has been saved?”

~~~
bluetidepro
I had this same thought, but I think it would just be best to use these sort
of plugins wisely, and not on every form element possible. Or to maybe have
some sort of form "note/tip" that mentions it's being auto saved. Sites like
Quora do this via drafts of your comments/responses that you write. That way
people know to erase the content if they truly don't want it saved.

Like many UX features similar to this, I would say it mainly comes down to who
your audience is, and where it's being used on how "weirded out" users would
feel by this feature.

------
mkelley
Pretty cool - another very similar option that comes in the form of a jQuery
plugin that I just noticed in the [new] section of HN....
<https://github.com/simsalabim/sisyphus> \- It looks pretty slick.

------
guillaumepotier
Hi there, github has some difficulties with the page url and tend to show some
weird 404 :(

Please, could you update the link of this post to <http://garlicjs.org>?

Thx!

------
program
As a side note do not use the Bootstrap class .well together with .row cause
it overflow because of padding. Create this structure: div.row > div.well >
the content.

------
minervauk
They have been doing this for years!!

<http://www.bonsoni.com/post_ad.php>

------
guillaumepotier
Thanks for your first comments ;) This is a very very early alpha release. 1h
of work in fact.. Please, feel free to contribute!

------
anothermachine
Why is this a website feature instead of a browser extension, where it would
work for every site?

~~~
skndr
I would imagine it's easier for a site owner to provide this than get everyone
to install a browser extension.

~~~
ErikD
I think anothermachine meant it should be default behavior in browsers. I
agree, with the attribute to disable or enable this from the html it would be
a nice feature for browsers to implement.

------
csmatt
I was thinking about this the other day and I thought "How is this not
standard!?"

Good job!

~~~
ceejayoz
It's not standard because people frequently do things like type a credit card
number into a form on a public computer. Lots of potential for privacy
breaches.

~~~
ErikD
With and option to disable this behavior from the HTML websites could chose to
disable it on forms which might contain sensitive data. Browsers could even
disable it by default and let the websites enable using an attribute.

------
StavrosK
Huh, this is very nice. Congratulations!

~~~
guillaumepotier
Thanks :)

------
borplk
Link doesn't work (404)

------
zapt02
i like it. workaround for older browser possible?

~~~
guillaumepotier
Yes possible. Someone mentioned usage of store.js, i'll dive into it next week

------
webmech
it's gooooone!

