# \[ANN\] DocumenterLandingPage.jl, a VitePress-style landing page for Documenter.jl

**URL:** https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819
**Category:** Package Announcements
**Tags:** package, announcement, documenter
**Created:** [August 14, 2026, 7:47pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819 "2026-08-14T19:47:40Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)
#### Post date: [August 14, 2026, 7:47pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/1 "2026-08-14T19:47:40Z")

</div>

I am happy to share [DocumenterLandingPage.jl](https://github.com/csvance/DocumenterLandingPage.jl), a small Documenter.jl plugin that renders a VitePress-style landing page (hero plus emoji feature tiles) straight from the YAML frontmatter block a page carries in a `@raw html` directive.

## Motivation

[DocumenterCodeBlocks.jl](https://github.com/fredrikekre/DocumenterCodeBlocks.jl) has greatly improved the usability of Julia’s documentation, but it does not work together with DocumenterVitepress.jl. This package takes the parts of VitePress I care about (the home layout and its landing page) and makes them work with base Documenter.jl, where they compose cleanly with DocumenterCodeBlocks.jl.

## What it does

The exact VitePress home layout, with hero, actions, and emoji feature tiles, all from one YAML frontmatter block.

## Project Showcase

- **ReactantServer.jl** : [Home · ReactantServer.jl](https://enzymead.github.io/ReactantServer.jl/dev/)
- **DocumenterLandingPage.jl** : [Home · DocumenterLandingPage.jl](https://csvance.github.io/DocumenterLandingPage.jl/dev/)

## Why you might like it

- **CodeBlocks-ready** : pair it with DocumenterCodeBlocks and use both in the same project.
- **Drop-in** : your frontmatter block stays byte-for-byte as written; only its rendering is replaced by the hero and tiles.
- **Theme-adaptive** : mirrors Documenter’s own theme palette, so the landing follows light, dark, and every catppuccin flavor. An optional `image.dark` swaps in a second hero image for dark themes.
- **Documenter.jl plugin** : add it to your plugins list and the stylesheet is injected automatically, no `assets=` to configure.
- **No toolchain** : no VitePress, no Node, no custom theme, just base Documenter.jl and a YAML block.

## The whole integration

```julia
using Documenter
using DocumenterLandingPage
using DocumenterCodeBlocks # optional

makedocs(
    sitename = "MyPackage.jl",
    format = Documenter.HTML(),
    plugins = [LandingPage(), CodeBlocks()],
)

```

Docs, a tutorial, and the full frontmatter schema reference live on the [landing page](https://csvance.github.io/DocumenterLandingPage.jl/dev/).

## Status

- I put this together on a whim with heavy usage of AI. Expect some initial rough edges, but also expect them to be ironed out over time.
- Layout should be working on both desktop and mobile now with a smooth transition between the two; thanks to @fredrikekre for the bug report.
- Automerge approved so it should make it to general in a few days.

---

<div class="post-metadata">

### Author: ![dcelisgarza](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dcelisgarza/32/215951_2.png) [@dcelisgarza](https://discourse.julialang.org/u/dcelisgarza)
#### Post date: [August 15, 2026, 8:47am UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/2 "2026-08-15T08:47:27Z")

</div>

Now i gotta figure out how to do the title gradient so i can move back.

---

<div class="post-metadata">

### Author: ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)
#### Post date: [August 15, 2026, 10:14am UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/3 "2026-08-15T10:14:26Z")

</div>

This looks cool! It works well and adds interest to the front page of manuals.

One feature that I couldn’t find is the use of graphics in the tiles. VitePress lets you add meaningful graphics, whereas this looks limited to emojis only?

 ![Screenshot 2026-08-15 at 11.06.39](https://global.discourse-cdn.com/julialang/original/3X/7/f/7f25b98767c4d5f61de9b03729638ac98dd1990e.png)

Is it possible to link to PNG or SVG?

So I’m struggling to find emojis that represent the features in a package that justify the space occupied by them… I suppose I could use random ❤ and 😱, but I’m not as big a 🪭 as other people…

---

<div class="post-metadata">

### Author: ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)
#### Post date: [August 15, 2026, 3:30pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/4 "2026-08-15T15:30:00Z")

</div>

> [@cormullion](#):
>
> One feature that I couldn’t find is the use of graphics in the tiles. VitePress lets you add meaningful graphics, whereas this looks limited to emojis only?

Just pushed support for this:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/e/c/ec5a3920cdff37796c88de8ced7d01ed51562b7e.png)

> [@dcelisgarza](#):
>
> Now i gotta figure out how to do the title gradient so i can move back.

Working on this now, and also improving the logo gradient / flow between desktop and mobile views. There is a bunch of duct tape holding that together right now, will do a proper solution.

---

<div class="post-metadata">

### Author: ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)
#### Post date: [August 15, 2026, 8:09pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/5 "2026-08-15T20:09:18Z")

</div>

> [@dcelisgarza](#):
>
> Now i gotta figure out how to do the title gradient so i can move back.

Iterated on this and completely reworked how the gradient was handled for both the glow and added it for the title. There are defaults for every standard Documenter.jl theme as well as a documented way to customize it however you would like it to look. Both of the examples in the project showcase should be updated now.

I’m always open to PRs improving these as well. I’m not a professional web/graphic designer by any stretch of the imagination 😅

---

<div class="post-metadata">

### Author: ![dcelisgarza](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dcelisgarza/32/215951_2.png) [@dcelisgarza](https://discourse.julialang.org/u/dcelisgarza)
#### Post date: [August 15, 2026, 8:22pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/6 "2026-08-15T20:22:52Z")

</div>

My body might be ready.

---

<div class="post-metadata">

### Author: ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)
#### Post date: [August 18, 2026, 11:29am UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/7 "2026-08-18T11:29:44Z")

</div>

I gave it a try, and my main problem was, that my own CSS of “I just add an icon to certain external links” interfered a bit with it, but I like the current WIP (texts still could probably be improved), but it will be part of my next PR – and removes one of the few reasons I consider for a while to move to Vitepress.  
(No bad feelings, the Vitepress docs usually look great! Just switching to them still feels like a larger rework)

Great that already logos can be used in the tiles 🙂

 ![Screenshot 2026-08-18 at 13.17.13](https://global.discourse-cdn.com/julialang/original/3X/b/e/be240d5730143cacbed7d121f2e6ad82fea00017.jpeg)

---

<div class="post-metadata">

### Author: ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)
#### Post date: [August 19, 2026, 11:44am UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/8 "2026-08-19T11:44:42Z")

</div>

> [@csvance](#):
>
> Iterated on this

Your changes work well, and the results look good!

> **[Introduction to Luxor · Luxor](https://juliagraphics.github.io/LuxorManual/dev/#)**
>
> Documentation for Luxor.

Thanks!

---

<div class="post-metadata">

### Author: ![BambOoxX](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bambooxx/32/22179_2.png) [@BambOoxX](https://discourse.julialang.org/u/BambOoxX)
#### Post date: [August 19, 2026, 12:22pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/9 "2026-08-19T12:22:28Z")

</div>

Is it expected that the hero section hyperlinks return a 404 error ?

---

<div class="post-metadata">

### Author: ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)
#### Post date: [August 19, 2026, 12:24pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/10 "2026-08-19T12:24:39Z")

</div>

The package has been available in general for a few days now. v0.2.0 refined the default look / layout quite a bit and added support for title gradients + icons + custom themes.

> [@kellertuer](#):
>
> (No bad feelings, the Vitepress docs usually look great! Just switching to them still feels like a larger rework)

Yes, agreed. Vitepress is always going to win in terms of bringing a modern, consistent web aesthetic across your entire docs site. The goal of this package was to try and bring my favorite parts of that back into the core Documenter.jl workflow for interoperability purposes.

> [@cormullion](#):
>
> Your changes work well, and the results look good!

Glad you are enjoying the package!

---

<div class="post-metadata">

### Author: ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)
#### Post date: [August 19, 2026, 12:30pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/11 "2026-08-19T12:30:33Z")

</div>

> [@BambOoxX](#):
>
> Is it expected that the hero section hyperlinks return a 404 error ?

They shouldn’t provided the links are pointed to the right place. Looks like the Luxor links have an .html on the end of them which is causing the 404.

---

<div class="post-metadata">

### Author: ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)
#### Post date: [August 19, 2026, 1:09pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/12 "2026-08-19T13:09:33Z")

</div>

oops i should have tested them 😱

---

<div class="post-metadata">

### Author: ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)
#### Post date: [August 19, 2026, 1:50pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/13 "2026-08-19T13:50:30Z")

</div>

> [@csvance](#):
>
> Vitepress is always going to win in terms of bringing a modern, consistent web aesthetic across your entire docs site.

Sure. Though for now, the “oldschool” docs with a nice landing page are a good alternative as well, since I do not have to rework all docs – and especially I still have the CodeBlocks 🙂

---

<div class="post-metadata">

### Author: ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)
#### Post date: [August 30, 2026, 9:15pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/14 "2026-08-30T21:15:33Z")

</div>

I didn’t find a way to [use Markdown nor HTML syntax in the features details](https://github.com/csvance/DocumenterLandingPage.jl/issues/5)

---

<div class="post-metadata">

### Author: ![csvance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/csvance/32/218927_2.png) [@csvance](https://discourse.julialang.org/u/csvance)
#### Post date: [September 22, 2026, 6:57pm UTC](https://discourse.julialang.org/t/ann-documenterlandingpage-jl-a-vitepress-style-landing-page-for-documenter-jl/138819/15 "2026-09-22T18:57:56Z")

</div>

I forgot to post it here, but we support Markdown in frontmatter since v0.2.1 released several weeks ago.

v0.2.2 just released with an extension for MaterialDocs.jl making the integration between the two seamless. One caveat with that is that MaterialDocs.jl and DocumenterCodeBlocks.jl don’t yet work together.
