// PROJECT NOTE

Strapi
Vercel
PostgreSQL
Cloudinary

Moving Arvand’s content from frontend files into Strapi

How I separated article content and images from static frontend files using Strapi, Vercel, Neon and Cloudinary—and checked 50 language variants before frontend integration.

Arsam SarkhoshAdded to this blog 2 min read
Read article
PROJECT NOTE
Original Arvand Termo Tec post illustration showing a Strapi content panel connected to Vercel, Neon and Cloudinary.
English translation of my original Persian LinkedIn post. Read the original LinkedIn post ↗(opens in a new tab)

Editing content should not require editing frontend files

In Arvand Termo Tec, I was separating content and images from static frontend files. The goal was simple: change an article, title or image through an admin panel instead of changing the application's source files.

This was a content-management change, not just a different place to store the same JSON. The CMS needed to expose the information the frontend would actually use.

Four services with different responsibilities

  • Strapi manages the content and APIs.
  • Vercel runs the backend deployment used in this project.
  • Neon stores the PostgreSQL data.
  • Cloudinary stores and serves images instead of tying them to local backend files.
Separating content, data and media
  1. StrapiContent editing and API responses
  2. VercelBackend deployment
  3. NeonPostgreSQL data storage
  4. CloudinaryImage storage and delivery
The responsibilities in this project's setup. This is a description of the deployment I built, not a general hosting guide for every Strapi application.

25 articles, two languages, 50 variants

At the point covered by the post, 25 articles had been imported and published in English and Italian. The listing API and slug-based article API were ready, including images, authors, categories and full article text.

I compared the imported data with the project's original content and tested the addresses of all 50 language variants against the live API. That count represents 25 articles in two languages—not 50 distinct articles.

An online CMS was one milestone, not the whole migration

When I published the original update, the CMS was online and serving its data. Connecting the frontend to those APIs and replacing the static JSON files was the next step.

Keeping that boundary clear mattered: deploying a backend successfully does not, by itself, mean the frontend has stopped depending on its old content files.