---
title: "Fullswing — Nuxt Content Site & CDN Images — Tran Manh Tuan"
description: "Fullswing, an article-based content site on a modern Nuxt stack in a Turborepo monorepo — Contentful images served through Akamai CDN with automatic cache purging on every publish."
canonical: "https://tmtuan.dev/en/projects/fullswing"
language: "en"
image: "https://tmtuan.dev/_img/projects/fullswing/fullswing.122580d8-og.jpg"
tokens: 554
---

# Fullswing

**Fullswing** is an article-based content site built on a modern stack: **Nuxt 3 + TypeScript** in a **Turborepo** monorepo, with content managed in **Contentful** and a dedicated article-search API.

The most notable part of the project is a cost-optimisation problem around image delivery: instead of serving images straight from Contentful — where bandwidth is capped by plan — all images are delivered through **Akamai CDN**. Every time an editor publishes, a webhook automatically purges the Akamai cache, so the site always shows fresh content without waiting for caches to expire. The service handling this purge flow runs on **Express** with helmet and rate limiting in front.

The system's infrastructure is managed with **Terraform**, going through the same review process as application code.

## Details

- **Role:** Technical Lead
- **Website:** [fullswing.dena.com/](https://fullswing.dena.com/)

## Technology

- Nuxt
- TypeScript
- Turborepo
- Contentful
- Node.js
- Express
- Akamai CDN
- Terraform

## Services this project shows

- [Corporate & Content Web Platforms](https://tmtuan.dev/en/services/web-platforms)

## Related articles

- [Docs-as-code Knowledge Base + Context Graph for a 15-project portfolio](https://tmtuan.dev/en/articles/knowledge-base-docs-as-code-context-graph)

## Structured data (JSON-LD)

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://tmtuan.dev/en/projects/fullswing#webpage","url":"https://tmtuan.dev/en/projects/fullswing","name":"Fullswing — Nuxt Content Site & CDN Images","description":"Fullswing, an article-based content site on a modern Nuxt stack in a Turborepo monorepo — Contentful images served through Akamai CDN with automatic cache purging on every publish.","inLanguage":"en","isPartOf":{"@id":"https://tmtuan.dev/#website"},"about":{"@id":"https://tmtuan.dev/#person"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://tmtuan.dev/en"},{"@type":"ListItem","position":2,"name":"Projects","item":"https://tmtuan.dev/en/projects"},{"@type":"ListItem","position":3,"name":"Fullswing","item":"https://tmtuan.dev/en/projects/fullswing"}]}]}
```
