Upgrading My Wife's Portfolio to TinaCMS with the GitHub Copilot CLI
On this page3 sections ▾
I wanted my wife, Tiani Beeming, to update her portfolio without asking me to edit files and redeploy it. The site was already live, but adding portfolio pieces and changing text still required code changes. TinaCMS, a Git-based headless CMS, looked like a good fit for moving that content into an editor.
I used GitHub Copilot CLI to do the integration. It installed the packages, defined the schema from the existing JSON files and connected the React components to visual editing. The session took under an hour, though I still needed to complete the final checks before deploying the updated site.
#Asking Copilot to integrate TinaCMS
I'd spoken with Jack Pettit from the TinaCMS team about the manual work involved. He estimated a few hours, perhaps five, to install, configure and connect everything. That gave me a rough expectation, rather than a measured comparison with the CLI run.
I gave Copilot the intended result in a single prompt:
I'd like to completely convert this project to use tina.io cms...
please do the complete conversion for me...
any json files in the data folder should be able to be managed using the
tina interfaces as normal content
#Reviewing the commands
The CLI proposed shell commands as it worked through the integration. I reviewed them and chose whether to approve or skip each one.

In that session, read-only commands such as grep offered an approval for the session, while destructive operations required a separate decision. I still had to consider what each command would affect, even though the CLI was doing the typing.
#Content, components and documentation
Copilot converted the JSON content into a TinaCMS schema and wrapped the React components for visual editing. It also generated a TINA_CMS_GUIDE.md and placed supporting documentation in the project's /docs and /tasks folders.
Those folder conventions came from the repository's Copilot instructions. In an earlier session, I'd asked an agent to record them there, and the CLI followed them during this work. Keeping the conventions in the repo saved me including them in the conversion prompt.
I didn't need to guide the integration during that session beyond reviewing its commands. The generated schema, component changes and documentation were ready for the content-editing and page checks before deployment.