Kentucky Digital Newspaper Program

preserving today's news for tomorrow's history

Learn More

Welcome to KDNP

The Kentucky Digital Newspaper Program (KDNP) at the University of Kentucky Libraries provides preservation and access to historic and contemporary digitized newspapers from the Commonwealth of Kentucky. Through cooperative endeavors with the Kentucky Press Association and the Internet Archive, the University of Kentucy Libraries provides online access to nearly one million pages of Kentucky's first draft of history. That historical content is growing daily. It's also freely available to anyone with an internet connection anywhere around the globe.

Learn more about the Kentucky Digital Newspaper Program, the KDNP Collections, how to contribute to the KDNP collection, and a host of newspaper and newspaper digitization resources, including the University of Kentucky Libraries' meta|morphosis: film-to-digital tutorials.

Browse & Search Kentucky's Newspapers

Try KDNP on your iPad & iPhone

You may come across language in UK Libraries Special Collections Research Center (SCRC) collections and online resources that you find harmful or offensive. SCRC collects materials from different cultures and time periods to preserve and make available the historical record. These materials document the time period when they were created and the view of their creator. As a result, some may demonstrate racist and offensive views that do not reflect the values of UK Libraries.

If you find description with problematic language that you think SCRC should review, please contact us at


KDNP's contemporary newspaper collections are available in the Internet Archive. Further processing of the contemporary content is powered by PaperVault; a born-digital newspaper gateway developed at the University of Kentucky Libraries. Visit PaperVault for more information.

function openCity(evt, cityName) { // Declare all variables var i, tabcontent, tablinks; // Get all elements with class="tabcontent" and hide them tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } // Get all elements with class="tablinks" and remove the class "active" tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } // Show the current tab, and add an "active" class to the button that opened the tab document.getElementById(cityName).style.display = "block"; evt.currentTarget.className += " active"; }