When I launched Antilogicalism in 2016, I wanted to create a place where people could explore philosophy, literature, religion, psychology, and the history of ideas. Over the years, the website grew into a collection of articles, essays, links, and hundreds of books and primary-source documents. Eventually, I allowed my WordPress hosting plan to expire. The website was no longer being actively maintained, and continuing to pay for hosting didn't make much sense. But I still had a backup of the original site, and I wasn't willing to let the archive disappear.
What began as a relatively straightforward attempt to preserve the website turned into something much more ambitious. Over the course of several days in October 2026, with extensive assistance from ChatGPT, I recovered the original WordPress installation, converted it into a static website, migrated its PDF collection to Google Drive, repaired thousands of broken links, restored its search and RSS functionality, and built a new full-text search engine for its digital library. The result is a website that no longer requires WordPress hosting and a searchable collection containing 644 books and 280,699 indexed pages. Here's how we did it.
1. Bringing the Original Website Back to Life
The first challenge was recovering the original WordPress installation. I had a backup of Antilogicalism, but a WordPress backup isn't itself a functioning website. It contains database records, application files, themes, plugins, and uploaded content that ordinarily depend on a web server running PHP and MySQL. To reconstruct the site, we used Laragon, a local development environment for Windows. We restored the WordPress database from its SQL backups, configured Apache and MySQL, and established a local development address: antilogicalism.test
There were several complications along the way, including database import problems, character encoding issues, and URLs still pointing to the original public domain. Using WordPress command-line tools, we repaired the database references and eventually got the original Book Lite theme working locally. For the first time since the hosting plan expired, I could browse the old website again. But it was still running WordPress, and the goal was to eliminate the need for ongoing server-side hosting.
2. Turning WordPress into a Static Website
The next step was converting the recovered website into ordinary HTML, CSS, JavaScript, and image files. We used a WordPress plugin called Simply Static to crawl the local installation and export its pages. The initial export was enormous: approximately 9 GB. Most of that size came from the site's collection of PDF books and documents. After extracting the archive, we removed the PDFs from the website files, reducing the static website to approximately 700 MB. That made it practical to publish the site through GitHub Pages, a free hosting service for static websites.
However, the initial publication didn't work correctly. Stylesheets, images, navigation links, and other resources were broken because the exported pages still contained references to the local WordPress installation. We wrote a Python script to repair these paths throughout the exported files, accounting for GitHub Pages hosting the website under a repository subdirectory.
After several rounds of testing and corrections, the original website was working again. The Book Lite theme, navigation, articles, and much of the original structure had survived the migration. Antilogicalism was now publicly accessible without requiring a WordPress server.
3. Reconnecting Thousands of PDF Links
There was still one major problem. The original website contained thousands of links to PDF documents that had been stored in WordPress's uploads directory. Since we'd removed the PDFs from the GitHub repository, those links no longer worked. Rather than abandon the library, we migrated the documents to Google Drive.
We preserved the original year-and-month directory structure of the WordPress uploads. This turned out to be an important decision because it allowed us to associate the original document paths with their new Google Drive locations. Using Google Apps Script, we generated an inventory of 703 PDF files, recording their original paths, filenames, Google Drive identifiers, and sharing URLs. We then developed a PowerShell script to examine the static website and identify PDF links that could be matched against that inventory. The initial dry run examined 1,529 HTML files and identified:
- 6,016 PDF links that matched documents in Google Drive.
- 358 unmatched links, representing 15 distinct PDF paths.
We deliberately left the unmatched links alone rather than guessing where they should point. Some may have referenced documents removed from the original collection. After reviewing the results, we applied the replacements. The script modified 161 HTML files and successfully redirected all 6,016 matched links to their corresponding Google Drive documents. This was one of the most satisfying parts of the entire project. Thousands of references that would otherwise have required manual repair were restored through a combination of file inventories, path matching, and automated replacement. The website and its digital library were connected again.
4. Restoring Search and RSS Feeds
Converting WordPress into a static website introduced another set of problems. WordPress search depends on server-side functionality, and many of the site's RSS widgets relied on plugins that were no longer running. The pages looked like the original website, but some of their functionality was missing. We replaced the WordPress search system with a client-side search index generated from the static pages. We also rebuilt the RSS feed functionality.
Instead of asking WordPress to retrieve and display feed content whenever someone visited the website, we developed Python scripts that periodically fetch the feeds and insert the latest articles into static HTML. GitHub Actions now handles these updates automatically. We preserved the existing layout of the pages and converted their feed sections to a template-driven system. This allowed us to restore sources such as Arts & Letters Daily, Quanta, and other publications without rebuilding the website around a new platform. We also repaired the footer widgets and removed obsolete elements that no longer served a purpose. By this point, Antilogicalism wasn't merely a preserved copy of the original website. It had become a maintainable static publication with working search and automatically refreshed content.
But there was still something I'd wanted to do with the book collection itself.
5. Building a Searchable Philosophical Library
Having hundreds of PDF documents available for download is useful, but it's not the same as being able to search their contents. I wanted visitors to be able to search the entire collection for a word, phrase, philosopher, or concept and discover where that material appeared. That required a completely different kind of search engine. Instead of indexing website articles, we needed to extract and organize the text inside hundreds of PDF documents, some of which were scanned books with imperfect optical character recognition.
We began by building a catalog of the collection. Of the 652 books in the source catalog, 644 became eligible for the searchable index. We then processed their text at the individual-page level. The resulting collection contained 280,699 searchable pages. This was a much larger undertaking than the website's original search functionality. The index ultimately contained:
| Metric | Total |
|---|---|
| Searchable books | 644 |
| Indexed pages | 280,699 |
| Unique search terms | 819,383 |
| Search index partitions | 1,332 |
| Indexed term occurrences in posting lists | 57,424,663 |
Rather than treating each PDF as a single document, the system records searchable information for individual pages. That distinction is important. A search engine that merely tells you a 900-page book contains a word isn't nearly as useful as one that identifies the relevant pages.
6. Cleaning Up the Collection
Indexing the text was only part of the challenge. The PDFs came from different sources, with inconsistent filenames, scanned pages, OCR artifacts, and occasional problems in their underlying text. Some filenames didn't accurately identify the books they contained. We identified 394 books that needed proper bibliographic titles rather than titles derived from their filenames. These were reviewed in batches using excerpts from the documents themselves.
We also discovered cases where a PDF's contents didn't match its expected identity, along with text extraction problems that could interfere with searching. Several rounds of repair focused on improving text layout, separating words and lines correctly, and addressing extraction problems. In one of the later repair passes, we validated 2,130 page records across eight books and updated 2,010 indexed pages while preserving the existing page identifiers.
This kind of work isn't particularly glamorous, but it matters. A searchable library is only as useful as the quality of its underlying text and metadata. A sophisticated search interface can't compensate for missing words, misleading titles, or badly extracted pages. We also excluded Google Books copyright notices from the searchable index so that repetitive scanning notices wouldn't contaminate the results. The objective wasn't simply to produce a large index. It was to make the collection genuinely useful for reading and research.
7. Bringing the Search Engine to the Website
The final challenge was making the search engine available through the public website. Antilogicalism runs on GitHub Pages, which means there is no traditional server-side application handling search requests. We therefore designed the library search around precomputed index data that could be accessed by JavaScript in the visitor's browser. The collection was organized into partitions, allowing the search interface to retrieve relevant index data without treating the entire library as one enormous file.
We also wanted the library search to feel like part of Antilogicalism, not an unrelated application. The interface was integrated with the site's existing Book Lite design, preserving the familiar navigation, typography, and layout. Search results connect readers with relevant books and pages, while the original PDF collection remains hosted separately on Google Drive. The first public version of Antilogicalism Library Search is now live. It represents a substantial improvement over the original website's document collection. Instead of browsing filenames or opening books individually, visitors can search across hundreds of works from one interface.
8. What I Learned from the Project
One of the most interesting aspects of this experience was the role of AI-assisted development. I have some background in programming and web development, but I didn't personally write thousands of lines of Python, JavaScript, and PowerShell from scratch. Instead, I worked iteratively with ChatGPT to design the system, diagnose problems, develop scripts, inspect output, and test the results. My role involved defining what I wanted, running the tools locally, examining what they produced, identifying problems, and deciding which changes to accept.
There were plenty of failed attempts, unexpected results, and revisions. Some scripts worked immediately. Others needed several rounds of correction. Large indexing jobs required patience, and we learned to preserve backups, stage changes, and validate results before replacing working files. The experience reinforced something I've come to appreciate about programming: understanding the problem and knowing how to test a solution are just as important as writing the code. AI assistance made it possible for me to undertake a project that would otherwise have required substantially more time and technical expertise. But it didn't eliminate the need for judgment, experimentation, or careful verification.
9. Where Antilogicalism Goes from Here
The library search is still in its first public version. There is room to improve the search experience, refine the book metadata, address remaining OCR problems, and make it easier to navigate between search results and their source documents. I'd also like to continue improving the website's publishing tools and eventually explore ways of making the archive more interactive.
For now, though, I'm pleased that the collection has a new life. What began as an attempt to rescue a website from an old backup has become a much more ambitious preservation and research project. The original WordPress installation is no longer required to serve the site. Thousands of document links have been restored. The RSS feeds update automatically. The site's articles are searchable. And hundreds of books can now be searched at the individual-page level.
Antilogicalism began in 2016 as an effort to collect and share ideas. Ten years later, the technology behind it has changed considerably, but the underlying purpose remains the same: to make philosophy, literature, and the history of ideas easier to explore.
Explore Antilogicalism: https://jsynon.github.io/antilogicalism/
October 2026