Just Write: A Client-Side React App for Writing and Editing WordPress Posts

WordPress developer Jason Bobich has created an open source client-side React app called Just Write that provides a decoupled editing experience for WordPress. Bobich said he built the app in 10 days to explore the possibilities of React and the WP REST API.

Although it’s still a work in progress, the app has a demo where curious testers can manage posts from any WordPress website that’s secured with HTTPS and has the JWT Authentication plugin installed. Alternatively, testers can click on the “play in the sandbox” to bypass authentication.

Once logged in, the user sees a dashboard with the most recent posts, a deliberate design decision that Bobich made to “motivate the user to do one thing – to just write.”

The editor includes support for Markdown and a simple preview with a sticky toolbar at the top. Just Write also allows the user to edit their profile and personal information in a dropdown at the top of the screen.

Bobich said he created to the app to improve his JavaScript skills and doesn’t have a plan to use it for business.

“Ever since we were all told a couple of years ago, ‘Learn JavaScript deeply,’ I’ve seen just how many holes I had in my own JavaScript knowledge,” Bobich said. “I’ve been working hard the last couple of years to become more than just a jQuery monkey. And so this project is just another step towards my personal growth surrounding the technologies involved here. It’s so exciting to think about the potential things that we can build in the community with React and the WordPress API.”

WP REST API Currently Poses Complicated Hurdles for App Developers

After the REST API was merged into core, the time seemed ripe for developers to build a proliferation of different writing experiences for users. However, working with the API still has many hurdles for application developers, limitations that Bobich said he became acquainted with while developing Just Write.

“For anyone wanting to build a practical application like this, the first glaring issue is around authentication,” Bobich said. “WordPress has no way to securely authenticate from outside of the WordPress admin. So expecting any average user to set up oAuth or JWT with a third-party plugin is a bit of a reach.”

Bobich also encountered issues working with media and saving content the WordPress way (which allows shortcodes to get parsed before wpautop()). The application is not yet ready for real, practical use but would require even more API calls to do things like get ahold of categories and tags or add the ability to create new ones.

“Think about all the work WordPress has put into the way we embed media in different ways,” Bobich said. “Just having basic things we take for granted — pasting a YouTube link, a tweet, uploading an image and having it cropped 100 ways ’til Sunday — for all work properly would all take custom JavaScript coding.”

Bobich said he thinks these limitations are the reason why there aren’t yet more applications built with decoupled editing experiences. Yet, in the new era of Gutenberg, Just Write’s alternative writing interface offers a simplicity that some users may prefer.

“As the WordPress admin continues to grow and become more complex, some people get excited and others moan and grown,” Bobich said. “But building something like Just Write shows us that there’s more to WordPress than just what we see. There’s more than a menu full of plugins and a new editor built in React that we may or may not like. WordPress can be what we want. It can fit our own needs or any client’s. And this all comes from the potential ability to decouple the editing experience.”

As WordPress has evolved to accommodate different user types from blogging, websites, and niche applications, Bobich said he thinks the next logical step is for developers to begin creating admin interfaces catered specifically to users’ individual needs.

“Gutenberg marks an important turn in the evolution,” Bobich said. “For those that were clinging to the simplicity of WordPress and blocking out some of the other noise, this might not be something they end up liking… or maybe it will?

“But the bigger point is that what we see there in the admin doesn’t have to be it. I hope people will be braver than me and really set out to build these different alternatives. If I can polish my React skills and build that myself in 10 days, I can only imagine what others can do.”