Very short answer: Download the latest version here.
The short answer: The stacks project is aimed at graduate students and researchers in algebraic geometry. It is both an ever growing reference work and a graduate textbook in progress. It is not a usual textbook, in that it is virtually impossible to read from beginning till end. It does not rely on outside references, but develops everything from scratch. The stacks project resembles an open source software project in the following ways: (1) Everybody can contribute material and make suggestions, but the maintainer makes the final decision, (2) all of its source (LaTeX) files can be downloaded, (3) it is licensed under the GFDL, and (4) we keep a complete history of its development.
In the rest of this post we give the long answer which is aimed at mathematicians especially those working in algebraic geometry.
The stacks project started in 2005. The initial idea was to write an open source introductory text on algebraic stacks. I emailed Bill Fulton et al to ask if they were interested in such a thing, and I got a surprisingly positive response from them, but in the end they decided to finish their book project in the traditional way. At the time I also enthusiastically started an email list. An interesting, prescient email by Kevin Buzzard you can read here. The mailing list did not generate activity (exactly as predicted by Kevin). In May, 2008 I started working on the stacks project in earnest. My short term goal was to write an algebra chapter that I was going to use as lecture notes for my commutative algebra course in the Spring of 2008. As a consequence, I started thinking of the stacks project more as a kind of a foundations for algebraic stacks and less as an introductory text. I was quite happy with the progress I made writing about commutative algebra, so I started writing about sheaves on spaces, schemes, etc. From there it became clear how to continue.
What is the stacks project now? Let me describe its basic structure briefly.
The stacks project assumes the reader is a mathematician who has at least had advanced undergraduate courses in set theory, point set topology, and basic algebra including the definitions on rings, ideals, modules, a bit of group theory, fields, vector spaces, and some Galois theory (it probably makes sense to add more basic algebra to the stacks project). The chapters Algebra, Topology, Sheaves try to list the basic notions which are supposed to be understood. Starting from this the stacks project builds up theory.
As we build theory we adhere to the following basic rules: (1) Every mathematical result in the stacks project has a proof, (2) no outside results are used in proofs, (3) there are no forward references, (4) every time a previous result is used, it is explicitly referenced, (5) every statement explicitly states all of its assumptions, (6) we try to prove things in the correct generality, e.g., we do not add hypotheses for the purpose of simplifying the proof, (7) we avoid long proofs by explicitly introducing lemmas for intermediate results, (8) every result is moved to its natural location, for example a result on modules and rings is put in the algebra chapter.
There is a lot more that can be said about each of these rules; this is just a rough outline. A consequence of the rules above is that while reading a proof in the stacks project one can find the basic results a lemma depends on by clicking on the hyperlinks.
You may wonder what level of generality we have in the stacks project. The answer is that on schemes the level of generality of the stacks project is similar to that of EGA. For the material on sites and sheaves, the level of generality is comparable to SGA4. The material on algebraic spaces is more general than that in Knutson’s monograph as we allow our algebraic spaces to be non-quasi-separated. For the same reason, our material on algebraic stacks is more general than that in the book by Laumon-Bailly.
How far have we gotten so far? At the moment of writing this we have quite a lot of algebra and a lot about schemes, morphisms of schemes, descent, sheaves and sites, some results on cohomology, etc. We have results on algebraic spaces; here some of the material is a bit closer to current research (as we are studying “arbitrary” algebraic spaces — see above). Finally, altogether we have developed enough theory to state the definition of an algebraic stack, and prove some basic results on properties of algebraic stacks and morphisms, and it would be relatively painless to write more general results on types of algebraic stacks, and types of morphisms (this will be done in the future). What is currently missing is a discussion of several fundamental results by Artin, for example 1 and 4 from the list here. Currently, I am working on flattening stratifications, in order to write about Hilbert functors, in order to do 4 mentioned above.
How are you supposed to use the stacks project? My hope is that users will look for and find basic results on algebra/schemes/algebraic spaces/algebraic stacks in the stacks project and learn by locally reading. One problem is that the stacks project is already large enough so that finding a particular result may not be easy (there is an index of definitions). Hopefully, google will eventually get better at picking out spots in pdfs; also putting pointers from the blog to results in the stacks project seems to help.
How can you help? As you read the material you may find typos, small errors, annoyances, lemmas stated in an incomprehensible fashion, missing results, missing or incomplete proofs, have requests for additional results, etc. Whenever this happens we ask that you write a quick email to firstname.lastname@example.org. As another rule to add to the above we have: (0) If a (fixable) mistake is found then it gets fixed quickly.
Of course there are other ways you can help. There is a todo-list. If you have written an expository note on some material you might consider adding it to the stacks project (some of the chapters try to be more informal, see for example the chapter on etale morphisms). For another suggestion, read the last paragraph of the email by Kevin Buzzard I mentioned above!
Text editors and TeX have made the task of writing math papers easier (of course it hasn’t always led to better mathematics). It is for example trivial to move around lemmas, proofs, etc, whereas traditionally this was done by cutting and pasting (literally). Since internal referencing is automatic you do not have to worry about numbering. Hyperlinks make it possible to quickly jump back and forth between referent and reference (i.e., when checking all the assumptions are satisfied). All of these technological advances make it easy to write very long mathematical texts. In the stacks project we try to keep the basic layout of the LaTeX source files as simple as possible, see coding style. The idea is that this makes it easy for outsiders to quickly make a local edit, and that we can add layers by writing software that parses the text and adds additional features. Examples are the tags system (which provides stable references) and a python script to check for forward references (and coding style violations).
Technological innovations will eventually improve the layout and presentation of the stacks project, e.g., by rendering LaTeX source directly on web pages, but this will not improve the mathematical exposition. So the contributions to the stacks project that really count are the mathematical ones.
What can we expect from the stacks project in the future? I’m not sure, we’ll see, but… it also depends on you!