Magit Kickstarter fully funded
kickstarter.com
kickstarter.com
The support I received during the last three weeks has been phenomenal! Thanks again! The only disappointment was that the campaign did not get a lot of press outside the Emacs community, which was a bit frustrating because I published a lot of the articles that are intended for potential users who are not Emacs users.
Until now that is - please have a look [1]. I found it quite challenging to explain why someone who is not familiar with Emacs would want to use Magit even though the majority of those who have given it a chance swear by it. It's a bit like explaining to someone who has only every used GUIs, why the command-line can be an empowering interface. But I think I did a fairly good job at [2].
Also, please excuse the crappy video - the Magit campaign might be the Kickstarter campaign with the least polished video to ever succeed ;-) Luckily a few users have created more informative video tutorials in the past [3].
[1] https://emacsair.me/2017/09/01/campaign-articles/ [2] https://emacsair.me/2017/09/01/the-magical-git-interface/#st... [3] https://magit.vc/screencasts/
So it looks like a standalone git client rather than emacs.
I'm an emacs user, so I would never use this, but it's just a thought.
Packaging that up in a fail-safe fashion is a different story, I would like to do that too, but I expect it will be a lot of work and would certainly appreciate help with that. (There are some projects like Lispbox, which might give such an effort a head start.)
At least in the beginning I think "mostly fail-safe" installation instructions will have to do.
Magit is so good that it's actually a reason to use Emacs in the first place.
When exploring some large code base, or trying to get at a rarely used emacs function or variable whose name you don't remember exactly (but it's about foo and bar for sure) there is definitely this fuzzy discovery element. And then the Helm approach is a blessing. Helm is completion + efficient exploration and discovery.
Also check out Hydra (by the same author).[2] That's really revolutionized my Emacs experience recently. It's customizable menu system you can add anywhere. I've put all those Emacs functions I keep forgetting exist in to it and now they're all at my fingertips.
Can you share some of that? I've been meaning to get into Hydra, and would gladly look at some configs.
But really the best place to start is with the hydra docs: [2] which not only has examples but detailed explanations of them too.
Regarding my own hydras, they're not quite ready for prime time. But when they are, I'll be posting them to r/emacs.[3] In the meantime, you can search there for hydras too: [4]
[1] - https://github.com/abo-abo/hydra/wiki/Hydras-by-Topic
[2] - https://github.com/abo-abo/hydra
[3] - https://www.reddit.com/r/emacs
[4] - https://www.reddit.com/r/emacs/search?q=hydra&restrict_sr=on
or `spc b .` that gives you a bunch of buffer selection functions https://i.imgur.com/htj6xEn.png
quite useful and pretty easy to add to if you have a niche that is not being fulfilled by the standard spacemacs.
a more complex transient state might be for org-agenda
https://github.com/syl20bnr/spacemacs/blob/master/layers/%2B...
and a complete list of transient states here by searching for `define-transient-state` that you may feel compelled to copy.
https://github.com/syl20bnr/spacemacs/search?utf8=%E2%9C%93&...
I get that for some people org-mode is the same way, but I've never been able to make org-mode click.
Of course, that's also the old joke about emacs. Personally, as I got more heavily involved in software development, I wound my org-mode usage down to just outlining and syntax-highlighted source code blocks.
It was actually posted to HN early during the campaign, but the capricious Gods of the HN Frontpage didn't bless the submission.
By the way, this thread took a huge dive at some point - was that due to some manual penalty?
And now for something completely different: It just occurred to me that Magit's success is partially due to the use of Lisp, for reasons similar to those described in "Beating the Averages" [2]. Just thought that would be worth mentioning to give this more relevance to the HN crowd ;-)
[1] https://news.ycombinator.com/item?id=14819256 [2] http://www.paulgraham.com/avg.html
This is, by far, my primary complaint about Kickstarter. They insist on sending me emails with "Things we like on Kickstarter". It is, generally speaking, full of absolutely irrelevant projects in the context of someone with a history on KS indicating I am only interested in technology projects.
It is truly infuriating because it always leads to exactly what you said: I had no idea project x was on KS.
I don't know what it is. Some kind of an internal cult. Or is it incompetence? They have my entire history on their site spanning years of supporting projects. Yet they think I might find campaigns about bow-ties and butterflies interesting? Unbelievable.
I wonder how much better campaigns could do if KS actually got their shit together?
This is a damn high compliment.
My problem is that I am one step further removed from the money - I write "end-user free software", that's even harder to get companies to pay for than an open source library. The Magit users among a company's employees might be among those wasting the least time on version control and make fewer costly mistakes than others, but while that benefits the employer it is not something that is being measured.
So the money has to come from the developers themselves. I am very grateful that so many of them have decided to back my campaign. I also think that the Emacs community is being very nice with its maintainers. The vast majority of users are very respectful when they need your help and they are generally a nice bunch.
I don't know if a second campaign in one years time would succeed though - so it's unclear whether this could become a successful "1-person business model". I certainly hope it does - not just for me. It would be nice if fewer authors of unique free software projects had to throw in the towel eventually and move on writing "real world software" - you know things that scale.
I actually did try to get some companies to pay for my work. I hoped that Github, Gitlab, or Atlassian would see this as an opportunity to gain some goodwill in the free software world, but that didn't work out unfortunately.
The Gitlab CEO actually replied within a few hours and seemed like a nice guy (after sending my message but before getting his rejection I had actually booked a flight to go see him at a meetup), but he was not interested in sponsoring my work. Atlassian send me a canned response, and Github did not respond at all.
Nor did its CEO who actually is (was?) an Emacs users who had forked Magit at one point. I can't really blame him for that, the message probably was just drowned in a lot of other email.
But I would have hoped that those companies would show some interest. Maybe now that its users have shown with their wallets that they believe in Magit, maybe now that changes. If you work for one of these companies, or a less known competitor, and have anything to say in such matters, you are certainly welcome to support me now!
The bright side is that our world is not (yet) entirely comprised of the morally eviscerated, so, as you say, money for many widely useful things will have to come from 'the developers themselves'. It may not form a sustainable business model, but the temporary expedient is better than nothing.
i use sourcetree, and i like it a lot, but with all the positive talk about magit, i need to try it
i now only use emacs for org-mode and this mode is also by far the best personal todo list i used (i.e. if you dont need any social, sharing features found in web todos, org-mode is the best there is) .. so i know emacs can be very good
In general, things just work as expected. Bind "C-x g" (or whatever) to open the status window, and "s" will stage changes. "c" will bring up a window asking if you want to commit. "k" will kill whatever the point is at. Tab will expand changes, and you can highlight then with a region to stage just part. (Or kill to discard part.).
At any time "h" provides a ton of help.
I can't remember if I read any specific documentation, but Magit has pretty good integrated help.
Type M-x magit-status to launch it. This will show your git status. Then type ? to see what you operations you can do.
http://endlessparentheses.com/it-s-magit-and-you-re-the-magi...
If you've ever compared branches using GitHub, same thing.
Staging/unstaging/reverting (specially when you don't want to do that for a whole file but for a chunk) in magit however is so far ahead of every other git interface I've seen that it's not even funny.
It's a demo which I'm sure appeals to emacs users, who are the target, but I couldn't imagine using it as a non-emacs user. I previously tried learning emacs to use OrgMode, and gave up after a couple of days when I failed to master even basic text editing skills.
There are a few that go against this. "x", for example. But it really becomes almost conversational.
Edit: corrected spelling of mnenomic. :) Not convinced it is correct word, oddly...
I just keep thinking there is another word that is even more applicable than mnemonic. Guessing I'm just confusing myself.
Generally, each time you press a key that is part of a sequence, you get a pop-up explaining what further keys are available. So for instance, I opened magit (M-x magit-status) on a project and pressed ? (for help):
https://i.imgur.com/c5cmmpB.png
The popup lists the keys I can use on magit-status page, and if you know git it's pretty obvious where to go in most cases.
Also, at any time you can press ? and then one of the key listed in the popup to get a detailed description and/or an appropriate manpage.
[1] https://emacsair.me/2017/09/01/magit-walk-through/#start [2] https://emacsair.me/2017/09/01/the-magical-git-interface/#st...
A reason why it might actually be an advantage that the interface is "text based" is that the thing the tool interacts with is also text [3]. The primary difference to git is that the "output" is "actionable", the primary difference to GUIs is that every feature of git can be exposed quite naturally.
[3] And a major advantage of that is that the barrier between writing the code and thinking of it in terms of change sets starts to break down.
I first visited their docs: https://magit.vc/manual/magit.html#Introduction
And saw that it's over 100 pages (printed).
It is powerful, in that it exposes everything of git. However, I doubt most people use most of that. I've found few, for example, know all the flags you can pass log. Magit actually helps fill them with tab completion on path names and such.
Just read the getting started guide, and you are set for most use cases.
I'm just not sure how to actually address that. The big doc is good to have. It is a shame folks land immediately on it.
A year later after discovering Kraken, we've now migrated to it and the developer experience has been great.
Can't edit my parent comment though now :/
Best GUI for Mac and they also have a Windows client as well now, just makes life easier and repos easier to manage especially when you have merge conflicts!