diff --git a/web/package.json b/web/package.json
index c344a90..46c6b51 100644
--- a/web/package.json
+++ b/web/package.json
@@ -6,7 +6,8 @@
"description": "Documentation site for Funcio, with runnable examples, deployed to GitHub Pages.",
"scripts": {
"dev": "vite",
- "prebuild": "npm --prefix .. run build",
+ "predev": "tsx scripts/generate-version.ts",
+ "prebuild": "tsx scripts/generate-version.ts && npm --prefix .. run build",
"pretypecheck": "npm --prefix .. run build",
"build": "npm run verify && tsc --noEmit -p tsconfig.json && npm run lint && vite build",
"postbuild": "tsx scripts/generate-sitemap.ts && tsx scripts/update-version.ts",
diff --git a/web/scripts/generate-version.ts b/web/scripts/generate-version.ts
new file mode 100644
index 0000000..c43f1ac
--- /dev/null
+++ b/web/scripts/generate-version.ts
@@ -0,0 +1,6 @@
+import { readFileSync, writeFileSync } from 'fs'
+import { resolve } from 'path'
+
+const pkg = JSON.parse(readFileSync(resolve('../package.json'), 'utf-8'))
+writeFileSync(resolve('src/version.ts'), `export const VERSION = "${pkg.version}"`)
+console.log(`Generated version.ts with ${pkg.version}`)
\ No newline at end of file
diff --git a/web/src/components/Header/index.tsx b/web/src/components/Header/index.tsx
index e2d820d..76a71e8 100644
--- a/web/src/components/Header/index.tsx
+++ b/web/src/components/Header/index.tsx
@@ -1,5 +1,6 @@
import { useEffect, useState } from 'react'
import { useTheme } from '../../hooks/useTheme'
+import { VERSION } from '@/version'
import { Button } from '../Button'
import { Logo } from '../Logo'
@@ -29,7 +30,7 @@ export const Header = () => {
Funcio
- 0.0.32
+ {VERSION}