Randy,
CMS and ETP _are_ user interfaces to the content repository. The point of a user interface over the CR is to hide the details of the CR from the user. The user has no need to know how the content is stored.
If you want to write your own UI the content repository documentation explains how the datamodel works and explains the APIs to access content in the CR.
The way to get content out of the CR is to query the database using the CR APIs and to display it you need to use the templating system that is built in to OpenACS.