I liked a lot about nextjs, but its fundamental page building & publishing model seemed awkward to me.
Specifically, the publishing workflow for non-developers just didn’t seem to be a good fit. That’s an important use case for me as I was hoping to use nextjs for some CMS-based sites for “normal” people (not developers).
I loved the great performance I got from a nextjs static site, but that depended on static builds. I knew it wouldn’t fly if I told normal users to wait for new builds after publishing. As leaky abstractions go, that’s a significant one.
I thought incremental static rendering (ISR) might be a good solution after that, but next's ISR caching model just wasn’t right for me, either. I want options like invalidating the whole cache at once when pages are published. Instead, ISR’s happy path is to use time-based invalidation. Not a good fit. I could write lower-level code to invalidate individual pages, but that’s also not quite what I need.
That left me with just a plain SSR solution and no built-in caching. That could have been ok, but it didn’t excite me that much -- and it meant accepting some of the awkwardness of next's page model without really getting more than its most basic benefits.
That awkwardness of not really fitting my needs was one of the weak spots I found in nextjs. It left me open to finding another solution that was a better fit.
I've switched the framework for this site to remix. I was using nextjs before, but I was frustrated by a couple of things and I think remix offers a better solution for my use case. I'll write more about those issues soon. So far I'm really liking remix, though.
I'm moving the backend of this site to the sanity.io headless CMS. The old backend used markdown files in a git repository, and I wanted something I could easily use on my phone. (This site's frontend is still using next.js, which has been great.)
More importantly, I wanted to explore using sanity as the backend for some other sites I've been building and hosting for other people. I've been looking at a few candidates for replacing Perch, and so far sanity seems to be a great alternative. I also (mostly) love the idea of using a SaaS so I don't have to host it myself.
So far I've been really impressed with sanity. It's definitely a developer-focused CMS, so it requires coding to get up & running, but it's been incredibly easy to get started with. And querying for data from my nextjs frontend has been refreshingly straightforward.
I put a simple webhook server in place to auto-rebuild the static version of site when I push changes to github. :-)
I've moved this site from the Perch CMS to Next.js. This is partly because of Perch's uncertain future and partly because I wanted something more modern to work with. I quickly tired of dealing with Perch's PHP stack (which I don't know well at all, since I don't use it professionally), so I've been looking for node.js alternatives on & off for years.
Next.js was intriguing first of all because it's React based, but also because it offers a really nice range of options from static to dynamic pages. It seemed worth trying out, and I really liked it after some early experiments.
Right now I've started with a fully static Next.js site. I'll see how this goes. I'm considering migrating to a headless CMS for content management if I get tired of the static generation loop again; directus.io is my leading candidate (except for a bug that broke its SQLite support for now).
Perch's future looks uncertain, unfortunately.
As things stand there is not active development happening with Perch....
The product doesn't make enough money to justify two people working on it.
They promise at least maintenance-mode updates, but given that situation I can't use it for any new projects. Very sad. It sounds like the their business model just wasn't working out for them.
I finally added the ability to create picture posts. (I added that during the conversion back to Perch.) The intent is to enable me to post pictures quickly & easily, akin to instagram or twitter. It's just a first draft now. I'll refine it as I go.
I've given up on using Hugo for this site & finally moved back to Perch. The awkwardness of updating a static site just got to be too much, so I stopped posting. Now I can post quickly if I need to, and even update via mobile if I want to.
I'm using Perch Runway now instead of plain Perch. Runway's "collections" map perfectly to how I want to organize my content, and their developer pricing for a non-commercial site means there isn't a price penalty for using Runway. Thanks, Rachel & Drew!
The biggest downside I've found of using Hugo for this site is that it's awkward to create a new post. I have to be at my computer to create a new file (can't use mobile), and then I have to generate & upload to the server. The friction is minor, but it's still a small annoyance.
I'm considering using a headless CMS like strapi.io to remove this friction, but at the cost of more complexity. Mulling it over....
I tried forestry.io and investigated netlify. Interesting, but the experience is far from frictionless. They still force a good deal of developer-level complexity on you. Short story: neither seems to be the magic bullet I was hoping for.
Minor nit: I save frequently while editing, which creates a stream of work-in-progress commits when using those tools. Annoying.