About 1: Yes! About 2: (Internal logic of Zariski topos) I don't think it has been done systematically. A glimpse of it is in Anders Kock, Universal projective geometry via topos theory, if I remember well, and certainly in some other places. But one point is that it is not at all easy to find formulas in the internal language which express what you have in mind. See my answer at http://mathoverflow.net/questions/606/synthetic-reasoning-applied-to-algebraic-geometry About 3:You can indeed glue all sorts of things: * Things fitting into the axiomatic framework of "geometric contexts": Look at the "master course on Algebraic stacks" here: http://www.math.univ-montp2.fr/~toen/m2.html This one is great reading to understand the functorial point of view on schemes and manifolds! * Commutative Monoid objects in good monoidal (model) categories: http://arxiv.org/abs/math/0509684 * Commutative monads (here you can glue monoids, semirings and other algebraic structures mixing them all): http://arxiv.org/abs/0704.2030 * In Shai Haran's "Non-Additive Geometry" you can even glue the monoids and semirings etc. with relations (although I wouldn't know why) * You can also glue things "up to homotopy instead" of strictly - this is roughly what Lurie's infinity-topoi are about, and also the model catgeory part of the 2nd point, or any oter approaches to derived algebraic geometry One of several good points of view on what a Grothendieck topology does, is to say it determines which colimits existing in your site should be preserved under the Yoneda embedding, i.e. what glueing takes already place among the affine objects. So, if you insist on glueing groups it could be a good idea to look e.g. for a topology which takes amalgamated products (for me this means glueing groups, you may want only selected such products, e.g. along injective maps) to pushouts of sheaves... Then feel free to develop a theory on this and send me a copy! About 4: (Why don't people work with sheaves instead of schemes) They do. One situation where they do is when taking the quotient of a scheme by a group action. The coequalizer in the category of schemes is often too degenerate. One answer is taking the coequalizer in the category of sheaves, the "sheaf quotient" (but sometimes better answers are GIT quotients and stack quotients).