Moving from WordPress to FileMaker | Blog | CampSoftware

Moving from WordPress to FileMaker

Pasted Graphic

Time to Move

Yep. We moved from WordPress to FileMaker. It sounds insane, but it's working great all due to FMWebFrame by Tim Dietrich. Of course we didn't do this overnight and without reason. Our site was running on Wordpress and while it was working, we noticed that it was sluggish and we had added several plugins for things we really didn't need. It was time to simplify.

Looking back, we'd do it all over again. Our site is now wicked fast. If you need your website updated let us know! We can help get the info in a database and available on the web too!

Looking for a Deal

Once we found out about FMWebFrame, we needed to learn how it worked. So we started an experimental site that we've been using to test FMWebFrame called Overseerr.com where we list nice deals on things we like.

We created a new database file, added the products table, and then implemented FMWebFrame, which was a breeze. Not only did FMWebFrame add the ability to search FileMaker data by using the same Select statements like ExecuteSQL uses, it also added caching. Those are my two favorite features, but it does more than that.

Export / Import

To make the move, we exported all of our Pages and Posts from WordPress to XML and then imported them into a FileMaker Database. This took a bit of work, but not too much. We just had to extract the Titles, Page Content, Dates, and a few other fields into FileMaker fields. The data was ready to be published. Once that was done, we were able to use FMWebFrame show the content. All we really needed was a few webpages written in php that search the database and display the information on the page.

Total Recall

The majority of the content on our site are either pages or posts which are shown in very similar manner, but are cached. FMWebFrame's method of caching is crazy fast. Really. Without the caching, we'd still be using Wordpress. FMWebFrame can takes any text and save it to a file. So, when you perform a search on the FileMaker database, you just save the result to a text file. Once it's saved, you can then choose to pull the data from the text file or perform the search again. The flow is something like this:

Do we have a cache file for the query and is it fresh enough to use?
If so, use it and display the page.
If not, search the database, save the cache file, and display the page.
The result is that you only need to query the database when the page needs to be refreshed. We currently only refresh the cache after 24 hours. It sounds simple, but that means that if there is no cache, the next person that loads the page will have to wait a second or two to search the database, save the cache, and load the page. Every person afterwards for 24 hours can skip the searching of the database. It's really amazing.

Try It, You'll Like It!

View our list of posts on our blog and scroll to the bottom of the page where you can see either the query or cache load time. Even with about 80 posts on the site, you'll see how fast the cache is. If you happen to see the query time, reload the page to see how much faster the cache is and how old the cache is. Of course we have a way to force the cache to load. Happy

Plug It In

The one thing we loved and hated about Wordpress are all the plugins. We had to find ways to add similar functionality, but found there are many great ways to replicate the functionality.

  • Pictures: We add images to our posts as FileMaker Containers converted to text using the new Base64 functions. By having the images as base64 text, the images become part of the page and are cached together!
  • PayPal: We use standard PayPal buttons.
  • Videos: We use YouTube's embedded html5 video player. On YouTube, go to a video, click share, and then embed. You can do the same for YouTube playlists!
  • Q & A: We use a Google Docs Sheet Form. When someone fills in a form, they are actually adding a row to a Google Sheet and then we receive an email.
  • Comments: Moved to Disqus for page comments.