CASE STUDIES

ICV Training Case Study: Astro + Sanity for 4,905 Training Documents

Willya Randika |
ICVTraining.com homepage

This project stands out not just because of the design, but because the data scope was already large from day one.

The client is PT Indonesia Core Values (ICV), a company founded in 1926 that provides training and consulting services to help organizations improve team capability and overall effectiveness. So this was not a case of inventing a new business identity from scratch. It was about modernizing their digital presence with a foundation that could support current needs much more seriously.

There was also a personal layer to this project: I got this client through a referral. The founder of ICV is Dr. Jeff, Founder & CEO, with 30 years of experience as a management consultant, trainer, lecturer, and researcher. That background made one thing clear very quickly: this website could not feel improvised. The credibility of the business was already there, so the website had to feel equally credible.

At that point, the real challenge was no longer “how do we build a good-looking website?” but how to build a website system that makes sense for a large content volume, stays lightweight, and avoids unnecessary technical overhead.

The live result can be seen directly at ICVTraining.com, so this case study points to a real production website, not an internal concept build.

Short Summary & Key Takeaways

Subfields

16 training subfields

Topics

441 training topics

Scheduled Batches

4,430 batches

Documents

4,905 documents

Mobile PageSpeed

93 Strong

Desktop PageSpeed

100 Excellent

Stack

Astro 6 + Sanity + Cloudflare Workers

Platform Cost

$0 hosting + CMS

Timeline

Delivered in 17 working days

If your business has a large catalog, structured data relationships, or high content volume from the start, let’s discuss it first through a free consultation so the stack does not become a burden a few months later.

The Starting Point: A New Website for a Very Large Content Scope

ICV did not need a simple website with a few static pages. From the beginning, the content scope was already substantial:

  • around 441 training topics,
  • around 4,430 scheduled batches,
  • and 16 subfields that formed the structure of the training catalog.

Once you combine the relationships between topics, schedules, and supporting data, the total becomes 4,905 documents that needed to be modeled and published through the CMS.

At that point, I felt a manual approach was clearly unrealistic. Uploading thousands of items one by one and hoping everything would remain consistent would create operational drag from day one.

The raw material sent by the client also showed that complexity very early. This was not one neat spreadsheet. It was a collection of documents and topic structures spread across multiple subfields.

Raw training topic and syllabus data from the client

There were also a few practical constraints:

  • the client had no internal IT team,
  • the client planned to hand over website development, maintenance, and technical management to Harun Studio,
  • and the website needed to become a real marketing and operational asset quickly, not a long-running setup project.

That is why I did not want to build something that only looked “done” on the surface while remaining fragile behind the scenes.

Why I Did Not Choose WordPress for This Case

I am still very familiar with WordPress, and for many projects it remains a reasonable choice. But for ICV, I did not think it was the best fit.

That is not because WordPress is bad. On the contrary, WordPress is still highly relevant for many business websites. But in this case, there were several issues that made it less ideal:

  1. The content volume was too large for a typical manual workflow
    Once you are dealing with hundreds of topics, thousands of batches, and a growing relational structure, the classic “create a post and fill in fields one by one” model becomes inefficient.

  2. The maintenance burden would rise with the stack
    If we chose WordPress, routine maintenance would still be required. At minimum that usually means core, plugin, and theme updates, backups, and compatibility checks several times per month.

  3. The client did not need plugin ecosystem complexity
    What ICV needed was not access to thousands of plugins. It needed a clean system for training topics, batches, speakers, schedules, and category relationships.

  4. I wanted the data ingestion process to work naturally with AI
    In this project, AI was not an accessory. It was a real accelerator. That meant choosing a stack that works naturally with AI-assisted schema modeling, data mapping, normalization, and bulk publishing.

If we had chosen WordPress, monthly maintenance by Harun Studio would still have been a viable option. But for this case, I preferred a stack that is structurally low-maintenance from the start, rather than one that would demand more routine maintenance by default.

On the WordPress side of the discussion, several Harun Studio articles are still relevant here:

The point is not that WordPress is automatically wrong. The point is that a project like this becomes much more comfortable when the maintenance burden is reduced at the structural level from the beginning.

Why Astro + Sanity + Cloudflare Workers Was the Best Fit

For this project, I needed a stack that was:

  • fast to develop,
  • lightweight to run,
  • easy to integrate with AI workflows,
  • comfortable for relational data,
  • and not unnecessarily heavy to maintain.

That is why I chose Astro 6, Sanity CMS, and Cloudflare Workers.

Operating Cost: Close to Zero

One of the most compelling parts of this stack is how low the operating cost can stay.

With the setup used for ICV:

  • frontend hosting on Cloudflare Workers: $0
  • Sanity CMS: $0
  • no premium theme subscription
  • no premium plugin subscription in the way many WordPress projects eventually require

That means there is no monthly or yearly platform cost just to keep the website alive. The only recurring cost that really remains is the domain itself, at roughly IDR 175,000 per year.

To me, that is not just a cost story. It is also an operational story. The client does not need to think about renewing theme licenses, plugin subscriptions, or ongoing hosting costs just to keep the site online.

Why Astro?

I have already written several times about why Astro has become a preferred choice at Harun Studio. For ICV, the reasons became even stronger:

  1. Astro fits content-heavy websites extremely well
    ICV is not a dashboard product where every page is highly interactive. Most of the job here is to present training topics, schedules, and registration information as efficiently as possible.

  2. The frontend output stays lean and fast
    For a large training catalog, speed matters. Topic pages, training pages, and annual schedules all need to remain responsive even with a lot of structured data behind them.

  3. The architecture is naturally strong for SEO
    Topic pages and training pages benefit from clean HTML output, strong page performance, and easy crawlability.

  4. AI-assisted development feels much more natural
    With a modern stack like Astro, development becomes faster, cheaper, and more manageable for a solo operator working with strong AI assistance.

  5. Astro and Sanity already fit together well
    The integration path is mature enough that connecting CMS and frontend feels straightforward instead of fragile.

  6. There is no traditional PHP runtime burden
    I do not need to keep thinking about plugin conflicts, theme updates, or routine PHP-era maintenance just to keep the site healthy.

  7. Astro keeps the routing structure predictable
    For a website with hundreds of training pages and many content relationships, I wanted a modular frontend structure that stays easy to iterate on.

  8. The long-term cost profile makes sense
    For a small team without an internal IT department, savings are not just about hosting cost. They are also about time and reduced technical overhead.

Why Sanity?

Sanity was the most important CMS decision in this project.

What I needed was not just a system for writing articles. I needed a content operating system that felt comfortable with large-scale structured data.

The main reasons I chose Sanity:

  1. The relational data model is a much better fit
    Subfields, topics, batches, speakers, schedules, and registration flows make much more sense as connected documents than as ordinary post entries.

  2. Bulk import and AI-assisted ingestion are far more realistic
    The client only needed to provide the source documents. On my side, the mapping, normalization, and publishing pipeline could be built systematically with AI support.

  3. Sanity Studio is hosted for free by Sanity
    That removed a lot of unnecessary infrastructure complexity for the admin side.

  4. The free plan was already more than enough for the early stage
    For this project, the free tier was already highly workable:

    • free 10k documents,
    • free 100GB storage,
    • free 100GB bandwidth per month,
    • free 250k API requests per month,
    • free 2 datasets,
    • and free support for up to 20 user seats with different roles.
  5. The editor experience can still be clean for non-technical workflows
    Even though the data model is complex behind the scenes, the Sanity Studio interface can remain manageable for everyday content operations.

I also liked the operational cost profile here. The CMS could remain active without extra recurring fees at the early stage, so the client did not need to pay annual CMS licensing costs just to keep the website running.

ICV Sanity Studio dashboard

Why Cloudflare Workers?

Cloudflare Workers completed the stack from the delivery, runtime, and long-term flexibility side.

If this had been a very simple static website, Cloudflare Pages could also have been a reasonable option. But for ICV, I intentionally chose Workers because I wanted frontend deployment, runtime logic, and room for future integrations to live under one deployment model from the start.

In practical terms, that gave me several advantages:

  1. The frontend stays lightweight, but the runtime foundation remains flexible
    The website is mostly content-driven today. But if it later needs lightweight endpoints, request transforms, special routing behavior, or extra bindings, the foundation is already there.

  2. The delivery layer stays modern without a traditional server
    I do not need a VPS, a hosting panel, or another server layer that needs ongoing attention just to keep the site online and extensible.

  3. Operations stay cleaner under a single deployment path
    That matters for a vendor-managed project like ICV. Fewer moving parts means easier long-term management.

  4. It aligns with the overall philosophy of the project
    The client focuses on marketing and training operations. I focus on keeping the technical foundation stable, fast, and low-friction.

Just as important, hosting the frontend on Cloudflare Workers still costs $0, so this flexibility does not come with extra platform overhead.

ICV Training on Cloudflare Workers

The AI Workflow: Cursor, Codex, Google Drive MCP, and Sanity Upserts

This was the real acceleration layer of the project.

One of the most important principles in this project was that nothing was hardcoded. The client sent around 441 syllabuses from 16 subfields, and I built the structure as a connected system. That meant training topics, batches, speakers, annual schedules, and training pages could all be managed dynamically instead of being created one by one in code.

The workflow was not based on copying documents manually into the CMS. I used Cursor AI and Codex in alternating roles, integrated with Google Drive MCP where the source documents were stored. That allowed AI to read the source files directly, generate structured JSON, and then upsert those records into Sanity according to the schema I had already designed.

The flow looked roughly like this:

  1. The client uploaded source documents to Google Drive.
  2. AI read those documents directly from there.
  3. The content was normalized into consistent JSON structures.
  4. That JSON was upserted into Sanity according to the schema.
  5. The Astro frontend automatically consumed the clean data structure.

Structurally, the model covered things like subfields, training topics, training batches, speakers, and registration-related content. So AI was not just helping to “fill a CMS.” It was helping map relationships between documents so the resulting system could actually be operated cleanly.

The time-consuming part was normalization and validation, for example:

  • aligning titles, slugs, and naming conventions from source documents that were not always consistent,
  • mapping subfields to topics, then topics to batches,
  • cleaning up date formats, training methods, and other important fields,
  • and making sure required fields were complete before the upsert step.

The most realistic errors in this kind of workflow are not dramatic “AI failed completely” moments. They are operational issues like duplicate slugs, references between documents not linking correctly, or batch data that arrives in inconsistent formats. That is why I treated AI as an accelerator, not as autopilot.

This still took real time. It was not instant magic. There were 441 training topics that still had to be published and checked for consistency. But the difference was substantial. If everything had been uploaded manually, the publishing work alone could easily have taken more than 1 to 2 weeks. With the AI-assisted workflow, that part could be compressed to less than 1 week.

Dynamic Topic, Training, and Schedule Pages

On the frontend side, I built the structure to support the core needs of ICV.

Topic Pages

Topic pages serve as a key entry point into the full training catalog.

ICV Training topic page

Training Pages

Each training topic has a dedicated landing page that is structured for both SEO and conversion.

ICV training page

Annual Schedule

With this many batches, the annual schedule becomes a critical layer for helping users understand availability without jumping through too many pages.

ICV annual schedule

Search and Registration Were Also Built Into the System

Because the catalog is large, search is not a nice-to-have. It is a core requirement.

I also built a registration flow so users can move clearly from topic discovery to action.

Search feature on desktop

Training Registration Form

Training registration form

The Most Important Outcome: The Client Does Not Carry Unnecessary Technical Burden

For me, the best outcome of this project is not just that the website went live.

The most important outcomes are:

  1. ICV now has a foundation that is ready to grow
    This is not just a new website. It is a content system built to handle meaningful scale.

  2. The core structure can be managed through Sanity Studio
    Topics, batches, speakers, and supporting content do not need to be hardcoded.

  3. The client does not need to worry about routine WordPress-style maintenance
    That matters even more when there is no internal IT team.

  4. The ICV team can focus on marketing and training operations
    Their time is better spent selling, scheduling, and improving training programs, while Harun Studio can keep handling development and maintenance with a lighter technical burden.

  5. The project was delivered quickly for a scope this large
    Given the amount of data involved, finishing this in 17 working days was fast.

Performance Results

I also verified performance to ensure this website was not only data-rich, but technically healthy.

Desktop PageSpeed Insights

ICV desktop PageSpeed Insights

Desktop scores:

  • Performance: 100
  • Accessibility: 94
  • Best Practices: 100
  • SEO: 100

Mobile PageSpeed Insights

ICV mobile PageSpeed Insights

Mobile scores:

  • Performance: 93
  • Accessibility: 93
  • Best Practices: 100
  • SEO: 100

For a website carrying a large training catalog, relational data, and many dynamic pages, those results are already very healthy. My goal was never to chase empty Lighthouse numbers. The goal was to keep the site fast, light, and dependable for both users and ongoing operations.

Testimonial from Dr. Jeff, Founder & CEO of ICV Training

27 Maret 2026 saya, Dr. Jeff dari SCBD Bursa Efek Indonesia Tower, Jakarta Selatan, meeting dengan Randi sbg owner dari HARUN STUDIO, untuk mendiskusikan materi terkait pembuatan web ICVTRAINING.COM dan oficially 20 April 2026 web sudah selesai.

Ulasan saya tentang performance HARUN STUDIO sbb:

Responsif dan Mobile-Friendly
Navigasi yang Intuitif dan Jelas
Kecepatan Loading Tinggi
Visual Menarik dan Konsisten
Konten Terorganisir
Keamanan dan Kepercayaan terjaga.

— Dr. Jeff
Founder & CEO ICV Training

Technical Notes That Do Not Immediately Show on the Surface

There are a few things worth calling out from this project precisely because they are not obvious from the finished UI alone.

  1. Source data is almost never publish-ready as-is
    A large portion of the time goes into normalizing structure and validating relationships, not just building the frontend.

  2. AI speeds up ingestion, but human quality control still matters
    AI was very useful for parsing, mapping, and drafting structured records. But consistency checking still required deliberate review.

  3. Early stack decisions shape long-term operational burden
    For a data-heavy project like this, choosing a low-maintenance stack from the beginning is often more valuable than choosing the quickest familiar setup and paying for that decision later.

Want to Build a Website with a Similar Approach?

If your business has a product catalog, training catalog, relational data, or a very large content scope, we can start with a needs audit first and decide whether the right answer is a standard website, a headless CMS architecture, or a more hybrid system.

You can also see the live result directly at ICVTraining.com.

You can start with a free consultation, or explore our website development service and web app development service depending on your scope.

Willya Randika

Willya Randika

Founder of Harun Studio, web developer, blogger, and hosting reviewer. He helps business owners build healthier websites through design, development, and long-term maintenance.