15% off individual templatesCUTER15
Apply it at checkout
Kiri Studio template — Home view

What is inside

Kiri Studio gives creative teams two complete visual modes without duplicating components. The visitor’s theme choice persists, work and articles come from typed collections, and the animated menu and custom cursor add character while preserving keyboard access and reduced-motion support.

Feature by feature

Light and dark, remembered

The theme is resolved by an inline script before the first paint, so there is no flash. It persists in localStorage and follows the OS until the visitor picks.

An animated fullscreen menu

A desktop hover carousel with a blur effect and the current route highlighted, closing on Escape with focus put back where it was.

Works and a blog, both in files

Case studies with cover, grid and hover images, and a paginated blog with its own RSS feed. Related content is resolved for you.

Reveals you add with an attribute

Scroll animations and the hero intro come from data attributes read by one library, with a programmatic escape hatch when you need it.

Smooth scrolling, synced to the ticker

One Lenis instance wired to GSAP ScrollTrigger in the layout, so pinned sections and reveals never drift against the scroll.

Responsive images, no round-trips

Every image is a local asset and sharp builds a srcset per image at build time. There is no remote path, by design.

A contact form behind a provider interface

Zod validation, honeypot, Upstash rate limiting and Resend delivery, with the provider swappable in one file.

A custom cursor

SVG cursors for the default and interactive states, driven from pointer position so they stay correct while the page is scrolling.

Pages included
/Home
/Studio
/Works
/Work detail
/Blog
/Blog post
/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.

Works
src/content/works/*.mdxCase studies with cover, optional grid and hover images, tags, client and date. Featured entries appear on the home page.
Blog
src/content/blogs/*.mdPosts with topics, date and reading time. They join the paginated listing, the RSS feed and the sitemap.
Legal
src/content/legals/*.mdTitle and description. The filename becomes the route.
Site data
src/config/*.data.tsNavigation, social links and the structured data the sections render, all typed.
A new work is this file:
---
title: 'Olmo Studio'
description: 'Brand identity and product site for a design studio.'
coverImage: '../../assets/img-projects/09.webp'
tags: ['Branding', 'Web Development']
date: 2026-02-10
client: 'Olmo'
featured: true
---
Making it yours

The copy

src/config/labels.ts

Every string and every SEO field, read through a typed helper. An unknown key fails the build rather than rendering nothing.

The typefaces

astro.config.mjs

A local display face and a Google body face, each declared with explicit weights and subsets so you ship two files and not nine.

The two palettes

src/styles/global.css

Light and dark are two sets of custom properties on the same token names, exposed to Tailwind through one theme block.

Stack
Astro 7Tailwind CSS 4TypeScriptGSAPLenisMDXAstro 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
Quick start
Project structure
Pages & routing
Architecture notes
Theming, light and dark
Animations
Components architecture
Configuration files
Content & SEO text
Assets & images
Icons
Fonts
Contact form
Deployment
Environment variables
SEO management
Design system
Content collections
Troubleshooting
Release history
v1.0Jun 17, 2026Initial commercial release with dual themes, portfolio, blog and multi-step contact form.

Try any demo before you decide

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