The Val Town Blog is now hosted directly on Val Town! The blog combines new posts written directly in this project with proxied content from our legacy blog.
/posts
directoryval-town-blog.pages.dev
)/posts
directory/index.ts
: Main entry point that sets up Hono routing and middleware/components/
: React components for rendering the blog
Layout.tsx
: Shared layout with header, footer, and stylingHomePage.tsx
: Renders the blog homepage with featured and recent postsBlogPost.tsx
: Renders individual blog postsHead.tsx
: Manages metadata, styles, and SEO/routes/
: Hono route handlers for different parts of the blog
home.ts
: Homepage routeblog.ts
: Individual blog post routesproxy.ts
: Proxy to the old blog for legacy contentrss.ts
: RSS feed generationfavicon.ts
& og-image.ts
: Asset routes/utils/
: Utility functions for post processing, caching, etc./posts/
: Markdown files for blog posts/styles/
: CSS stylingTo add a new blog post to the Val Town Blog:
/posts
directory with YAML frontmatter:---
title: My New Blog Post
description: A brief description of the post
pubDate: 2025-04-01T00:00:00.000Z
author: Your Name
---
Content of your blog post in markdown format...
/blog/[slug]
The blog supports GitHub Flavored Markdown (GFM) with:
The blog includes a live reload feature that automatically refreshes the page when changes are made to the project. This works when viewing the blog on a .val.run
domain during development.
The blog implements efficient caching:
.val.run
are excluded from cachingThe blog is deployed directly on Val Town, with the production version available at blog.val.town.