Pin Mapping (ATmega8, ATmega168): a diagram showing the correspondence between the pins on an Arduino board and those of the ATmega8 or ATmega168 microcontroller.
NG Auto Reset: how to modify your Arduino NG so you can upload sketches with having to physically press the reset button on the board.
Parallel Programmer: instructions for making a cheap piece of hardware that lets you burn the bootloader to an Arduino board or upload sketches to a board with no bootloader (only works on computers with a parallel port).
Breadboard Circuit: instructions for replicating the circuit of an Arduino board on a breadboard.
Arduino is designed to be easily extensible, being based on standard and powerful components. This section of the site includes information on how Arduino works and ways you can extend it.
The Arduino hardware is based on Atmel's AVR microcontrollers, in particular the ATmega8, the ATmega168, the ATmega328, and the ATmega1280. Arduino sketches are C/C++ based and compiled with the open-source compiler avr-gcc and linked against the open-source AVR Libc. The Arduino language comes from Wiring. The Arduino environment is based on Processing and includes modifications made by Wiring.
Other tutorials for extending Arduino include:
Arduino on a breadboard: construct your own USB Arduino using individual components on a breadboard (from the ITP physical computing tutorials). See also the serial version.
DIY breadboard shield: make your own breadboard shield to snap onto an Arduino board.
DIY Arduino shields: instructions for designing and etching your own Arduino shield.
Other resources:
AVR fuse calculator: useful for figuring out which fuse settings to use for custom circuits.
Minty Boost process: no microcontroller, but a great explanation on how to put together a kit, from idea to product.