• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
nbbaier

nbbaier

vt-ssg

Lightweight SSG: markdown + JSX layout → HTML string
Public
Like
1
vt-ssg
Home
Code
9
examples
3
README.md
defaults.tsx
frontmatter.ts
fs.ts
main.tsx
markdown.ts
test.tsx
types.ts
Connections
Environment variables
1
Branches
2
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
examples
/
markdown-files
/
content
/
blog
/
first-post.md
Code
/
examples
/
markdown-files
/
content
/
blog
/
first-post.md
Search
…
Viewing readonly version of main branch: v160
View latest version
first-post.md
title:
First Post
date:
2026-04-04T00:00:00.000Z
author:
nbbaier

First Post

This blog post is loaded from content/blog/first-post.md.

Why use files?

When your site has more than a handful of pages, keeping markdown in separate files is much cleaner than embedding it in your build script:

  • Version history — each page has its own edit trail
  • Readability — markdown files render nicely in the Val Town editor
  • Separation of concerns — content authors don't need to touch code

Code example

import { readFile } from "https://esm.town/v/std/utils/index.ts"; const md = await readFile("./content/blog/first-post.md", import.meta.url);

That's it — readFile returns the file contents as a UTF-8 string.

FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
AboutAlternativesPricingBlogNewsletterCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.