Skip to content
HN On Hacker News ↗

Introducing Geist Serif

▲ 79 points • 24 comments • by Zm44 • 6d ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this text is a mix of AI and human-written content.

30 %

AI likelihood · overall

Mixed
70% human-written 30% AI-generated
SEGMENTS · HUMAN 11 of 17
SEGMENTS · AI 5 of 17
WORD COUNT 1,196
PEAK AI % 100% · §11
Analyzed
Oct 30
backend: pangram/v3.3
Segments scanned
17 windows
avg 70 words each
Distribution
70 / 30%
human / AI fraction
Verdict
Mixed
Pangram v3.3

Article text · 1,196 words · 17 segments analyzed

Human AI-generated
§1 Human · 0%

Geist started as a monospace typeface for developers, built for the editors and terminals where they spend their day doing their work. From there it grew into Geist Sans for product interfaces, and then into Geist Pixel, which was inspired by the grids of early computer screens.Today, we're adding a new member to the family: Geist Serif.Geist Serif postersGeist Serif is a high-contrast display serif built on the same foundations as Geist Sans, Geist Mono, and Geist Pixel. It has fine, saw-toothed serifs and sharp hairlines, and it was drawn to communicate messages powerfully both in the physical world and on the high-density screens on modern devices.Copy link to headingSame system, new voiceAt Vercel, Geist Sans runs the product.

§2 Human · 3%

For headlines, though, we wanted a second voice, one that belongs to the same system, instead of a stranger picked from a drop-down menu.A lot of tech brands have moved away from clean sans-serifs to get some personality back, and many of them borrow from vintage computer ads.

§3 Human · 0%

Geist Serif takes a different path: toward fashion, editorial design, and magazine headlines.

§4 Human · 0%

It's our homage to the artists behind Rolling Stone and Harper's Bazaar.From the beginning, each Geist family has read from a chapter of type history: the Swiss design movement, early terminal and DOS computing, and now editorial print.Copy link to headingDisplay firstGeist Serif began as a set of sketches by Evil Rabbit, which Andrés Briganti then expanded. The first letters already showed an expressive serif, in the spirit of typefaces like Victor Serif and Stanley.Original Geist Serif drawingsWhen Mark Davis took over the drawings, we made the first release a display face for headlines, posters, and other large sizes, while work on the full family continued.

§5 Human · 0%

Print has always struggled to hold fine hairlines and sharp serifs, but today's displays can handle a high level of detail.

§6 Human · 0%

We wanted the new face to take full advantage of modern screens, so we thinned every downstroke by 50% and tightened the sidebearings to push the contrast as far as it would go.Each serif has a wedge on one side and a curve on the other, so the proportions are classical and look beautiful in print, but the construction is new and optimized for digital devices.We created something that could only be made for today. Not overly blocky for screens from a decade ago, not filled with mechanical compromises for physical ink.

§7 Human · 0%

Just serifs at perfect points.

§8 Human · 0%

Mark Davis founder & font designer at WORDMARKCopy link to headingFrom the first prototype to todayThe first prototype of Geist Serif was shared on April 1, 2026. Here's the same word, Geist, in that prototype, compared with the display drawing shipping today.Original prototype shown as dotted linesCopy link to headingGeist grew teethThe goal was to honor our original intent and keep the serif closely tied to the sans, even when the letters sit on top of each other. Geist Serif’s stems match Geist Sans, and the two share widths and postures.The saw-toothed serifs and high contrast give Geist an editorial voice. One phrase kept coming up as each character was drawn: “Geist grew teeth.”Copy link to headingFour families, one x-heightGeist Serif uses the same cap height and x-height as Geist Sans, so you can drop it into any Geist layout without moving a line. Mix Sans, Mono, Pixel, and Serif in the same sentence and every word looks the same size.MetricGeist SansGeist SerifUPM10001000Cap height710710x-height530530Ascender710750Descender-150-200Copy link to headingFour variants, one axisLike Geist Pixel, Geist Serif has a variable axis that swaps the shape of every dot in the font, including those on i and j and in punctuation.

§9 Human · 0%

The axis is called Element Shape (ELSH), and it gives you four variants: Regular with round dots (the default), Square, Triangle (a nod to the Vercel logo), and Heart.Each variant also ships as its own static file.

§10 Human · 0%

If you use the variable font, pick a variant with font-variation-settings:Copy link to headingCrafted by handIn July the font had 227 glyphs.

§11 AI · 100%

It now has 894 and covers 352 Latin-script languages, and we worked through more than 52,000 kerning pairs to get the spacing right. Some of the details are tiny.

§12 Human · 0%

The eye of the g, for example, is tilted exactly 7°.Copy link to headingSpecs at a glanceGeist Serif ships with:1 weight (Regular)4 variants (Regular, Square, Triangle, Heart)894 glyphs5 stylistic sets (ss01 to ss05)352 supported languagesCopy link to headingGetting startedGeist Serif ships in the same package as the rest of the family:terminalnpm i geistExports and CSS variables:GeistSerif (variable, all shapes): --font-geist-serifGeistSerifRegular: --font-geist-serif-regularGeistSerifSquare: --font-geist-serif-squareGeistSerifTriangle: --font-geist-serif-triangleGeistSerifHeart: --font-geist-serif-heartEach one has its own entry point, so you only ship the font file you use. For example, in layout.tsx with GeistSerifRegular:import { GeistSerifRegular } from 'geist/font/serif/regular'; export default function RootLayout({ children }) { return ( <html lang="en" className={GeistSerifRegular.variable}> <body>{children}</body> </html> ); }You can also download the font files, test every stylistic set, and inspect each glyph at vercel.com/font.Copy link to headingWhat’s nextRegular is the first style we’re releasing, and the rest of the family is already in progress.

§13 AI · 100%

We’re testing future versions while building this one, so this release is just the start.Copy link to headingWeights from Thin to BlackThe variable font will range from Thin (100) to Black (900). In this week’s proofs, the g in Black is the letter we can’t stop looking at.Copy link to headingToward a text faceTo explore a text version, we built a foundry tool that measures strokes, including where they meet, and thickens the display outlines. It edits the outlines directly, so we can set real words and see which strokes need more weight.Copy link to headingItalics, built rule by ruleWe’re also developing an italic generated entirely in Python.

§14 AI · 100%

We slanted existing italics back upright and compared them with their romans.

§15 AI · 100%

With the angle removed, the remaining differences show up clearly, and we turned them into rules we can test and revise. This italic won’t be the final version, but breaking glyphs in code helps us find the limits faster.Copy link to headingMore scripts and Google FontsCyrillic support is planned to match Geist Sans and Geist Mono, and Geist Serif will come to Google Fonts after launch.Copy link to headingOne familyWith Geist Sans, Geist Mono, Geist Pixel, and now Geist Serif, the family runs from UI text and code to expressive display type, and all four feel at home together.Download Geist Serif and start building.Thank you to everyone who made Geist Serif possible.None of this would have been possible without an incredible group of people behind the scenes.Huge thanks to Andrés Briganti for starting this journey with me and drawing the first version that everything else grew from, and to Mark Davis for carrying it across the finish line with obsessive craft, from the expanded glyph set and variable axis to every last kerning pair.

§16 Mixed · 66%

Thanks also to Patrick McDonald and Marijana Pavlinić for the poster designs, to Luis Gutierrez Rico for the motion and incredible magic, to Christopher Kindl for shipping the package and rebuilding the landing page down to the smallest details, and to Zahra Jabini for the coordination and technical support that brought it all together.

§17 AI · 100%

This was a true team effort, and I’m grateful to have built it with all of you.