
Template details
Tomoshibi
A dark, zero-JavaScript Astro portfolio template with Japanese typography, project pages, and an optional RSS feed.
About this template
Tomoshibi (灯) is a dark-only, zero-JavaScript Astro portfolio template for a personal site, built by Seu (c12o.net) and released under the MIT license. It generates a static site containing a hero section with name and facts, project cards with individual detail pages, a short bio, and contact links.
What is Tomoshibi?
Tomoshibi is a static portfolio template built on Astro 7 that takes a single site config file, a projects data file, and a few images as input and outputs a fully static site in dist/. It runs on any static host and ships with Japanese-first typography designed for personal developer or designer showcases.
What makes Tomoshibi stand out?
- Astro 7, static output — no framework and no client-side JavaScript; the only
<script>on the site is JSON-LD for search engines. - Strict CSP by default —
public/_headersshipsdefault-src 'self'with no inline styles or scripts to whitelist. - Dark-only design tokens — one file (
src/styles/tokens.css) defines every color, font, spacing, and radius. - Subset, self-hosted Japanese web fonts —
scripts/build-fonts.mjscopies only the woff2 slices of Zen Kaku Gothic New and Shippori Mincho B1 intopublic/fonts/at build time. - Project pages — each entry in
src/data/projects.tsbecomes a home-page card and a page at/projects/<slug>/, linked with a cross-document view transition. - Optional latest posts — point
feedUrlat an RSS 2.0 feed and the home page lists the newest entries at build time; leave itnulland the section disappears. - Generated metadata — sitemap,
robots.txt,security.txt, canonical URLs, Open Graph tags, and JSON-LD all derive from one config file. - Biome + GitHub Actions — lint, format, typecheck, and build run in CI.
Who should use Tomoshibi?
- Developers and designers who want a minimal personal site listing projects, a short bio, and contact details without any runtime JavaScript.
- Japanese-language creators who need proper Japanese web typography with self-hosted subset fonts.
- Static-host users deploying to Cloudflare Workers, Cloudflare Pages, Netlify, Vercel, or GitHub Pages.
What can you do with Tomoshibi?
- Showcase projects: add entries to
src/data/projects.tsand one 1600×900 WebP screenshot per slug to get cards plus detail pages with view transitions. - Aggregate a blog: set
feedUrlto an RSS 2.0 feed and the home page lists the newest posts at build time, refreshed daily via a deploy hook secret. - Localize the site: set
langandogLocaleinsite.tsand translate theuiobject; components contain no text of their own.
How does Tomoshibi work?
Start with pnpm create astro@latest -- --template c12o-dev/tomoshibi my-site, install, and run pnpm dev. Edit src/data/site.ts (setting url first, since the build fails without it) and src/data/projects.ts, replace screenshots and favicons, then run pnpm build to write dist/. The SITE_URL environment variable overrides site.url for a single build.
FAQ
Is Tomoshibi free?
Yes. Tomoshibi is released under the MIT license, © 2026 Seu, so you can use and modify it freely.
Does Tomoshibi require JavaScript?
No. It uses Astro 7 static output with zero client-side JavaScript; the only <script> element on the site is JSON-LD metadata for search engines.
Which feed formats does the RSS section support?
RSS 2.0 only, with <item> elements containing title, link, and pubDate. Atom is not supported, and the feed is read once at build time with a 10-second timeout.
Can I deploy Tomoshibi to GitHub Pages?
Yes, but GitHub Pages cannot set custom headers, so the site works without the bundled CSP. Cloudflare Workers, Cloudflare Pages, and Netlify read public/_headers directly; Vercel requires copying rules into vercel.json.
What are the system requirements?
Node 22.12 or newer is required, and pnpm is pinned through the packageManager field in the repository.















