In my search for ongoing work, I've stumbled into a WordPress gig. Or gigs. Depends on how it goes.
So I hadn't actually written anything yet - still trying to grasp the platform, and then it occurred to me: in WordPress, everything is a post. Literally. And every post gets a page.
If you're creating a site about dogs and cats, and you needed to create relationships between the cats and dogs, then you create a post_type for Dog and for Cat. Each dog and cat has their own page. Any extra information about them gets dumped into a postmeta table. In that table is a field called "value" where you can dump anything you like - but here's the thing: for every value you need to store, you're not only forcing a read/write each time, but you're dumping a ton of data for every entity/object/post.
I have a way to deal with that, fine, but everything is a post?
In other words, I've always known that programming and the database schema should represent reality as closely as possible. And hey, guess what: a fundraising campaign is not similar to a basketball drill is not similar to a blog post. The post metaphor is brilliant for organizing and displaying pages about content, but it falls far short of being true to life for everything.
For example, creating an accounting system in WordPress seems ludicrous because it's the wrong tool for the job. But I think it depends on how you do it, and I think I have a way to achieve something like that.
Why does this matter? My work on 247Toolset, as it turns out, bears resemblance to WordPress in its approach to themes and functionality. Nothing special about that - many other custom sites do this very thing. But some of the special features of 247Toolset might be easily adapted to WordPress plugins.
So, I have a few ideas about what might grab the WordPress community. I'll be testing them out later. In the meantime hopefully, I hope to have enough development accomplished by Monday to impress a new client.