Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
3760bc8
Apply the Vortex design system's skin to bench
lwwmanning Oct 28, 2026
0d137d6
Merge main into the bench skin branch
lwwmanning Oct 28, 2026
6178413
Give bench's Dark fills blue-bright and its muted text grey-450
lwwmanning Oct 28, 2026
fa6c375
Replace the info glyph in group titles with the Material info icon
lwwmanning Oct 28, 2026
9ddc3b8
Merge main into the design system branch
lwwmanning Oct 28, 2026
7a4c372
Load the Vortex design system's tokens, components and faces on vorte…
lwwmanning Oct 28, 2026
0d9fde2
Keep Playwright to browser specs
lwwmanning Oct 28, 2026
edc5cac
Rebuild the site header and footer on the design system
lwwmanning Oct 28, 2026
8171a90
Draw the star count with the Material star icon, and sync the header …
lwwmanning Oct 28, 2026
6b81d0d
Count an internal redirect as a live link in verify
lwwmanning Oct 28, 2026
37914f5
Rebuild the homepage hero on the design system
lwwmanning Oct 28, 2026
700c978
Ship the GitHub mark under its MIT notice, and credit Google's icons
lwwmanning Oct 28, 2026
703c93d
Copy the design system's styles with its own site-styles tool
lwwmanning Oct 28, 2026
4bf0d39
Follow the OS while a blog page set to system stays open
lwwmanning Oct 28, 2026
b1d020b
Leave out the Spark tab when the build has no Spark version
lwwmanning Oct 28, 2026
87d7340
Record the ASCII mark's mode, and show the symbol if mounting throws
lwwmanning Oct 28, 2026
485b68f
Add the benchmark card and the logo banner to the homepage
lwwmanning Oct 28, 2026
bc39556
Pick up the design system's InstallTabs, AsciiMark and type fixes
lwwmanning Oct 28, 2026
551da07
Record why the ASCII mark failed to mount
lwwmanning Oct 28, 2026
8f99364
Add the ThemeSwitch to blog pages
lwwmanning Oct 28, 2026
b22522c
Rebuild the blog on the design system
lwwmanning Oct 28, 2026
3185b43
Draw the ASCII mark even when its font fails to download
lwwmanning Oct 28, 2026
7957965
Fall back to Dark when reading localStorage itself throws
lwwmanning Oct 28, 2026
82374bd
Rebuild the 404 and error pages on the design system
lwwmanning Oct 28, 2026
ea63214
Drop Tailwind now that no page uses it
lwwmanning Oct 29, 2026
6bd1e2b
Keep the reader's theme for the page when storage is blocked
lwwmanning Oct 29, 2026
53f69e6
Keep the GitHub button beside the wordmark on the narrowest phones
lwwmanning Oct 29, 2026
b9c060d
Set the route's theme before a client navigation paints
lwwmanning Oct 29, 2026
82f35d8
Prefer the reader's choice on this page over the stored one
lwwmanning Oct 29, 2026
803ff72
Show every logo, still, when motion is reduced
lwwmanning Oct 29, 2026
3fab908
Merge main into the design system branch
lwwmanning Oct 29, 2026
fd6e8b2
Print bench's figures as bench does, and fit the card on phones
lwwmanning Oct 29, 2026
51d5514
Merge the main merge into the design system branch
lwwmanning Oct 29, 2026
2822e01
Take the blog's header, field, prose and theme rules from the design …
lwwmanning Oct 29, 2026
1f092b1
Draw the benchmark card's bars from bench's scores
lwwmanning Oct 29, 2026
7fc2f2f
Take the 404, error page, reset and card columns from the design system
lwwmanning Oct 29, 2026
aa4dbbb
Use each adopter's own logo file in the logo banner
lwwmanning Oct 29, 2026
6c72f7c
Merge main into the design system branch
lwwmanning Oct 29, 2026
e94b933
Show equal benchmark scores as a tie
lwwmanning Oct 29, 2026
a75c57e
Merge main into the design system branch
lwwmanning Oct 29, 2026
0e6c806
Merge main into the design system branch
lwwmanning Oct 29, 2026
a55e453
Add a pause control to the logo banner
lwwmanning Oct 29, 2026
1e4a4c6
Read the ASCII mark's pixels back without stalling the GPU
lwwmanning Oct 29, 2026
77dc399
Merge the pushed PR branch into the logo pause and readback work
lwwmanning Oct 29, 2026
4839e9d
Merge main into the design system branch
lwwmanning Oct 29, 2026
639b7e8
Make the homepage calmer and fit one laptop screen
lwwmanning Oct 29, 2026
48751ae
Merge the pushed PR branch into the quieter card work
lwwmanning Oct 29, 2026
faf6a90
Show times in ms and small leads as percentages on the benchmark card
lwwmanning Oct 29, 2026
ad641e5
Merge main into the design system branch
lwwmanning Oct 29, 2026
9ccdfab
Link the adopters' logos, add Spiral and Dash0, and install Python wi…
lwwmanning Oct 29, 2026
f9da9b3
Merge the pushed PR branch into the card and banner work
lwwmanning Oct 29, 2026
3a3d205
Put the donor credit right after the LF Projects line
lwwmanning Oct 29, 2026
c888802
Give the homepage mark its full size back
lwwmanning Oct 29, 2026
e6e26b4
Give each post a kind and a dek in its header
lwwmanning Oct 30, 2026
0c9dc71
Draw a cover for each post from its slug
lwwmanning Oct 30, 2026
5556497
Lead the blog index with the newest deep dive
lwwmanning Oct 30, 2026
4c98e97
Draw the posts' numbers as figures, chains, quotes, and references
lwwmanning Oct 30, 2026
e1b6923
End each post on its neighbours, and fix four small faults
lwwmanning Oct 30, 2026
c078ae4
Merge main into the design system branch
lwwmanning Oct 30, 2026
d95187f
Give each heading in a post an id and a link to itself
lwwmanning Oct 30, 2026
7909b14
Merge the pushed PR branch into the blog work
lwwmanning Oct 30, 2026
6c7b601
Keep the benchmark card when a benchmark has not run lately
lwwmanning Oct 30, 2026
d0e8b23
Use bench's scores when a time panel's window is partial
lwwmanning Oct 30, 2026
f05ba81
Make the blog one list of posts here and elsewhere, with no kinds
lwwmanning Oct 30, 2026
ac8755d
Merge the pushed PR branch into the blog list
lwwmanning Oct 30, 2026
e8b5a61
List SmithDB and Loon among the posts elsewhere
lwwmanning Oct 30, 2026
1c53b34
Merge main into the design system branch
lwwmanning Oct 30, 2026
9fe675c
Merge the pushed PR branch into the blog links
lwwmanning Oct 30, 2026
575dec3
List seven more posts elsewhere that use Vortex
lwwmanning Oct 30, 2026
aa6cfdc
List Andy Pavlo's 2025 database review among the posts elsewhere
lwwmanning Oct 30, 2026
f403a4d
List Polar Signals' "Loading Lakes" among the posts elsewhere
lwwmanning Oct 30, 2026
be984f0
Match the external-link name as text, not as a regular expression
lwwmanning Oct 30, 2026
986f511
Check each benchmark bucket against bench's chart list
lwwmanning Oct 30, 2026
844eb03
Merge main into the design system branch
lwwmanning Oct 30, 2026
ca54ed1
Take Polar Signals' "Loading Lakes" off the blog's list
lwwmanning Oct 30, 2026
b1cd3b8
Draw Vortex in Blue on bench's charts
lwwmanning Oct 30, 2026
b5a5d1f
Say what Vortex is under the homepage headline
lwwmanning Oct 30, 2026
e2292a4
Send bench's landing groups as visible HTML
lwwmanning Oct 29, 2026
9002af0
Hide bench's dead controls without JavaScript and link each group
lwwmanning Oct 29, 2026
a223361
Label each bench chart canvas with its latest values
lwwmanning Oct 29, 2026
f52c07e
Make bench's no-JavaScript landing page read plainly
lwwmanning Oct 29, 2026
d064f87
Show bench's loading view only when the landing data is slow
lwwmanning Oct 29, 2026
e208392
Make the vortex.dev homepage work without scripts or WebGL
lwwmanning Oct 29, 2026
0603023
Keep the homepage mark's load-time look with scripts on
lwwmanning Oct 29, 2026
37420d7
Drop the copy link's dead middle-click check
lwwmanning Oct 29, 2026
a1a27c2
Note that an ingest causes no miss, and where bench's threshold was set
lwwmanning Oct 29, 2026
88e8c82
Shorten the benchmark card's caption
lwwmanning Oct 30, 2026
3702698
Merge the no-JavaScript work into the design system branch
lwwmanning Oct 30, 2026
5c80083
Keep the no-script homepage hero to its content's height
lwwmanning Oct 30, 2026
b182be6
Keep a long source host inside the blog index's meta column
lwwmanning Oct 30, 2026
7c51427
Group the blog index by year
lwwmanning Oct 30, 2026
8903a42
Keep the page's filters in a group link's href
lwwmanning Oct 30, 2026
bb6b2e7
Merge the pushed PR branch into the review fixes
lwwmanning Oct 30, 2026
b804f2f
Merge main into the design system branch
lwwmanning Oct 30, 2026
e912b86
Keep bench's own chart colours
lwwmanning Oct 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ jobs:
- name: Type check
run: bun run typecheck

- name: Unit tests
run: bun run test

- name: Start server
run: |
bun run start > /tmp/server.log 2>&1 &
Expand Down
29 changes: 14 additions & 15 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,39 +26,38 @@ They share one Bun workspace and the CI policy, and deploy separately:

## Architecture Overview

This is a Next.js 16 marketing website for Vortex, a columnar file format. The site features:
This is a Next.js 16 marketing website for Vortex, a columnar file format, drawn with the Vortex design system. The site features:

### Core Technologies

- **Next.js 16** with App Router and Turbopack for development
- **Next.js 16** with App Router and Turbopack
- **React 19** with TypeScript
- **TailwindCSS 4** for styling
- **OGL** (WebGL library) for 3D graphics and ASCII art effect
- **The design system's CSS** (`src/styles/`), `globals.css` and CSS modules for styling, with no CSS framework
- **three.js** (WebGL) for the design system's ASCII mark, loaded once the page is idle
- **Plausible Analytics** for privacy-focused tracking
- **Vercel Analytics** for performance monitoring

### Visual System

- **3D Logo Animation**: WebGL-rendered GLTF model (`/public/logo.glb`) with ASCII art shader effect
- **Interactive Mouse/Touch Controls**: Model rotates based on user interaction
- **Responsive Design**: Different camera positions and sizing for mobile/desktop
- **Custom Fonts**: Geist Sans, Geist Mono, and Funnel Display
- **Design system**: `src/styles/vortex-tokens.css` and `src/styles/vortex.css` are copies of the Vortex design system's styles (change the system, not the copies), and the markup uses its `vx-` classes
- **ASCII mark**: `src/components/ascii-mark` mounts the system's renderer (`src/vendor/vortex-design/`) on the homepage and the 404, with the static symbol as its fallback
- **Themes**: Dark only, except the blog, which carries the ThemeSwitch (`src/lib/theme.ts`)
- **Custom Fonts**: Geist, Geist Mono and Funnel Display, self-hosted through `next/font`

### Component Structure

- `HeroASCII` - Main 3D logo component with WebGL rendering and ASCII conversion
- `Overlay` - Text overlay on top of the 3D scene
- Layout components (`Header`, `Footer`) wrap all pages
- 404 page has its own hero variant (`hero-404`, `overlay-404`)
- The homepage composes the hero (`InstallTabs`, `AsciiMark`), `BenchmarkCard` and `LogoBanner`
- The 404 and error pages (`not-found.tsx`, `error.tsx`) share the hero's layout in `src/app/status.module.css`

### Key Files

- `src/app/page.tsx` - Homepage with metadata for SEO
- `src/components/hero/index.tsx` - Complex WebGL rendering with custom shaders
- `src/app/layout.tsx` - Root layout with analytics providers and font loading
- `src/app/globals.css` - The page frame, and the site's rules on top of the design system
- `next.config.mjs` - Plausible proxy configuration, security headers (CSP, HSTS, Permissions-Policy, COOP, CORP)

The site is optimized for performance with font optimization, analytics integration, and responsive WebGL rendering.
The site is optimized for performance with font optimization, analytics integration, and an ASCII mark that loads only once the page is idle.

## Licensing

Expand Down Expand Up @@ -124,10 +123,10 @@ Keep them in lockstep when bumping, and move to a new major only after Vercel of

- **zod `<4.6.6`** (GHSA-mrhx-c7xc-m3w5, high memory exhaustion on oversized constrained collections). Path: bench's `@vercel/functions > @vercel/oidc > @vercel/cli-config` pins `[email protected]` exactly. `overrides.zod = "^4.6.7"` puts it on 4.6.7. bench only imports `attachDatabasePool`, which does not load the OIDC code that uses zod. The snapshot scopes bench's zod `runtime`, because `@vercel/functions` is in bench's `dependencies`, so dependency review would block a PR that drops the override without `allow-ghsas: GHSA-mrhx-c7xc-m3w5` on the Dependency Review step in `ci.yml`. Drop the override once `@vercel/cli-config` accepts zod 4.6.6 or later.

- **postcss-selector-parser `<6.1.5`** (GHSA-rj75-hqrm-r3gf, moderate quadratic-time parsing). `@tailwindcss/[email protected]`, the latest release, pins `[email protected]` exactly, so lockfile maintenance cannot reach the fix. `overrides["postcss-selector-parser"] = "^6.1.5"` stays on the same major. `renovate.json` keeps it on 6.x (`allowedVersions: "<7"`), so Renovate doesn't move the override to a major typography hasn't adopted. The built CSS does not change: with the font URLs normalized, the site's stylesheet is byte-identical with and without the override. Drop the override once `@tailwindcss/typography` ships a release that declares `postcss-selector-parser@^6.1.5` or later.

**Removed: `@lhci/cli`.** It brought eight advisories into `bun.lock`: extract-zip (two, with no fixed release), basic-ftp, body-parser, qs, tmp (two) and uuid. CI never used it, because the Lighthouse workflow runs `treosh/lighthouse-ci-action`, which ships its own copy. `bun run lighthouse` now fetches a pinned `@lhci/[email protected]` with `bunx` when you run it. Do not add it back as a dependency.

**Cleared, for the record:** postcss-selector-parser `<6.1.5` (GHSA-rj75-hqrm-r3gf) went with `@tailwindcss/typography`, its only parent, when the blog moved to the design system's prose styles and dropped the plugin.

**Held back on purpose:** `@types/node` stays on `^26` in both apps to match the runtime (see "Node version"); `renovate.json` caps it with `allowedVersions: "<27"` so Renovate does not open 27.x / 28.x PRs ahead of the runtime.

The `audit` job in `.github/workflows/ci.yml` runs a bare `bun audit` and never fails CI; any advisory it finds shows in its job summary, and is recorded here with how it is handled. Merge blocking on advisories is `dependency-review`'s job.
Expand Down
18 changes: 18 additions & 0 deletions LICENSES/MIT.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.
85 changes: 85 additions & 0 deletions LICENSES/OFL-1.1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
84 changes: 78 additions & 6 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ path = [
"src/**.ts",
"src/**.tsx",
"src/**.css",
# The design system's modules, vendored unchanged (src/vendor/vortex-design/README.md).
"src/vendor/**.js",
"scripts/**",
"tests/**",
".github/**",
Expand Down Expand Up @@ -45,10 +47,9 @@ SPDX-License-Identifier = "CC-BY-4.0"
[[annotations]]
path = [
"src/app/favicon.ico",
"src/assets/logo.svg",
"src/assets/logo-mobile.svg",
"public/logo.glb",
"public/404.glb",
"src/assets/vortex_symbol_dark_theme.svg",
"src/assets/vortex_wordmark.svg",
"src/assets/vortex_wordmark_dark_theme.svg",
"bench/public/Vortex_Black_NoBG.svg",
"bench/public/Vortex_White_NoBG.svg",
"bench/web/public/Vortex_Black_NoBG.svg",
Expand All @@ -71,7 +72,78 @@ path = "src/assets/lf_white.svg"
SPDX-FileCopyrightText = "The Linux Foundation"
SPDX-License-Identifier = "LicenseRef-Third-Party"

# Adopters' logos for the homepage's logo banner, used only to show who builds on Vortex. Each
# belongs to its owner and is not relicensed. Each file comes from its owner's own site,
# brand page or official repository, and each owner is named as it names itself.
[[annotations]]
path = "src/assets/spiral.svg"
SPDX-FileCopyrightText = "Spiral"
path = "src/assets/logos/spiral.svg"
SPDX-FileCopyrightText = "Fulcrum Technologies, Inc. dba Spiral, Inc"
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/microsoft.png"
SPDX-FileCopyrightText = "Microsoft Corporation"
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/palantir.svg"
SPDX-FileCopyrightText = "Palantir Technologies Inc."
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/firebolt.svg"
SPDX-FileCopyrightText = "Firebolt Analytics Inc"
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/langchain.svg"
SPDX-FileCopyrightText = "LangChain Inc."
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/dash0.svg"
SPDX-FileCopyrightText = "Dash0 Inc."
SPDX-License-Identifier = "LicenseRef-Third-Party"

# Milvus is an LF AI & Data Foundation project, which holds the project's trademark.
[[annotations]]
path = "src/assets/logos/milvus.svg"
SPDX-FileCopyrightText = "The Linux Foundation (LF AI & Data Foundation)"
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/duckdb.svg"
SPDX-FileCopyrightText = "DuckDB Foundation"
SPDX-License-Identifier = "LicenseRef-Third-Party"

[[annotations]]
path = "src/assets/logos/clickhouse.svg"
SPDX-FileCopyrightText = "ClickHouse, Inc."
SPDX-License-Identifier = "LicenseRef-Third-Party"

# Apache DataFusion, Apache Spark, Apache Hudi and Apache Paimon, and their logos, are trademarks
# of The Apache Software Foundation.
[[annotations]]
path = [
"src/assets/logos/datafusion.svg",
"src/assets/logos/spark.svg",
"src/assets/logos/hudi.png",
"src/assets/logos/paimon.png",
]
SPDX-FileCopyrightText = "The Apache Software Foundation"
SPDX-License-Identifier = "LicenseRef-Third-Party"

# The fonts the post Open Graph images set their text in (src/lib/og.tsx). They are the design
# system's Funnel Display and Geist Mono, as Google Fonts distributes them, under the SIL Open
# Font License. next/og cannot read the woff2 files next/font serves. The Geist Mono file has its
# GSUB table removed, because next/og's font parser cannot read its contextual alternates. The
# licence allows a modified version, and the font names no Reserved Font Name.
[[annotations]]
path = "src/lib/og-assets/FunnelDisplay-Medium.ttf"
SPDX-FileCopyrightText = "2024 The Funnel Project Authors (https://github.com/Dicotype/Funnel)"
SPDX-License-Identifier = "OFL-1.1"

[[annotations]]
path = "src/lib/og-assets/GeistMono-Regular.ttf"
SPDX-FileCopyrightText = "2024 The Geist Project Authors (https://github.com/vercel/geist-font.git)"
SPDX-License-Identifier = "OFL-1.1"
Loading
Loading