15% off individual templatesCUTER15
Apply it at checkout
Cipres Agency template — Home view

What is inside

Cipres Agency is a focused, high-contrast site for digital studios that sell through their work. All interface copy is centralized and type-checked, project entries generate their own detail pages, and every animation respects reduced-motion preferences.

Feature by feature

No UI framework at all

Every component is an Astro file. The only client JavaScript is GSAP and the scripts that drive it, so there is no hydration to pay for.

A dark system with no loose colours

Nine colour tokens in the theme block, and not one arbitrary colour value in the source. Changing the brand red is one line.

Project case studies with a table of contents

Each project is a Markdown file with category, year, timeline and tags. The headings in the body build the index on the page.

Reveals you add with an attribute

Add data-anim to the markup and one shared library wires the animation. No per-component GSAP boilerplate to maintain.

One image pipeline

Every image is a local asset processed by sharp at build time, through a single component. Remote URLs are rejected before they ship.

A hardened contact form

Zod validation, honeypot, and rate limiting both per IP and globally through Upstash, so one visitor cannot drain your email quota.

Accessible interactions, not scripted ones

Real links instead of buttons that navigate, a focus trap in the menu, inert when it is hidden, and every animation honours reduced motion.

Copy that lives in one file

Every string, including alt text and aria-labels, is a typed key. An unknown one fails the build rather than rendering blank.

Pages included
/Home
/About
/Projects
/Project detail
/Contact
/Legal + 404
What you publish without touching code

Typed content collections. You write a file, and the listing, the detail page, the feed and the sitemap pick it up on the next build.

Projects
src/content/projects/*.mdCase studies with category, finished year, timeline and tags. The h2 headings of the body become the page's table of contents.
Legal
src/content/legals/*.mdTitle and description. The filename is the route, so terms.md is served at /terms.
Site data
src/config/*.data.tsNavigation, social links, services, team, testimonials, FAQ, process steps and expertise cards.
A new project is this file:
---
title: 'New Project'
description: 'What it was and what it achieved'
category: 'Branding'
image: '../../assets/images/projects/new-project.webp'
yearFinished: 2026
timeline: '6 weeks'
tags: ['Branding', 'Web Design']
link: 'https://client.com'
---
Making it yours

The copy

src/config/labels.ts

Every user-facing string and all the SEO text, typed. Alt text and aria-labels count as copy here, because both get read out loud.

The typefaces

astro.config.mjs

Three Google families self-hosted at build time — display, interface and body — each declared with the weights it actually uses.

The palette

src/styles/global.css

Nine tokens cover background, raised sections, the brand red, text and form controls. Adding a colour means adding a token.

Stack
Astro 7Tailwind CSS 4TypeScriptGSAPLenisContent CollectionsAstro ActionsZodResendUpstash Redis
What you need to run it
RuntimeNode 22.12 or newer
Package managerpnpm 10 or newer
DeployVercel out of the box; any static or Node host with a one-line adapter swap
Accounts you need
Resend— delivers the contact form email
Upstash Redis— rate-limits the contact form

Both have a free tier, and the contact form needs them: the ZIP ships an .env.template with the variables to fill in.

Documentation included

A README written for this template, not copied between them, inside the ZIP. It covers:

Features
Tech stack
Project structure
Getting started
Pages & routing
Component architecture
Icons
Configuration files
Assets & images
Animations
Scrolling
Design system
Contact form
Environment variables
SEO management
Content collections
Deployment
Release history
v1.0Dec 14, 2025Initial commercial release with agency portfolio and hardened contact workflow.

Try any demo before you decide

The demos are the real templates, deployed. No signup, no email in the way.