Miniaturized satellites such as CubeSats continue to improve their capabilities to enable missions that can produce significant amounts of data. For most CubeSat missions, data must be downlinked during short lowearth orbit ground station passes, a task currently performed using traditional radio systems. Free-space optical communications take advantage of the high gain of a narrow optical beam to achieve better link efficiency, allowing more valuable data to be downlinked over the mission lifetime. We present the Nanosatellite Optical Downlink Experiment (NODE) design, capable of providing a typical 3U (30 x 10 x 10 cm) CubeSat with a comparatively high data-rate downlink. The NODE optical communication module is designed to fit within a 5 x 10 x 10 cm volume, weigh less than 1 kg, and consume no more than 10 W of power during active communication periods. Our design incorporates a fine-steering mechanism and beacon-tracking system to achieve a 10 Mbps link rate. We describe the system-level requirements and designs for key components, including a transmitter, a beacon tracking camera, and a fast-steering mirror. We present simulation results of the uplink beacon tracking and fine steering of the downlink beam, including the effects of atmospheric fading and on-orbit environmental disturbances to demonstrate the feasibility of this approach.