- Next.js - React framework for server-rendered applications
- Tailwind CSS - Utility-first CSS framework
- TypeScript - Typed superset of JavaScript
- pnpm - Fast, disk space efficient package manager
- Prettier - Code formatter
- shadcn/ui - UI components built with Radix UI and Tailwind CSS
This repo contains a .nvmrc file that declares the canonical Node.js version for this project. If you use nvm, you can run nvm use to automatically switch to the correct version.
Use current node version (recommended)
nvm useCorepack is a tool that allows you to use package managers like pnpm without needing to install them globally. It ensures that the correct version of the package manager is used for your project.
Enable corepack (recommended):
corepack enableThis repo uses pnpm as a package manager. If you don't have it installed, see Installing pnpm.
Then, run the following command to install the dependencies:
pnpm installNext, you can run the development server:
pnpm devOpen http://localhost:3000 with your browser to see the result.
File: app/library/data.ts
Additions to the library can be made within this list:
const externalLibraryItems: LibraryItem[] = [
...
]Required fields:
| Field | Value |
|---|---|
title |
title to be displayed for the item |
href |
URL link for the entry |
date |
Displayed date for the item |
imgSrc |
Card banner image to be used |
- Date is also used to automatically sort the library items
- Must be a valid date format (match pattern of existing items to avoid parsing issues)
Can be either an image internal to the repo (imported at the top and references with it's declared variable name) or a full URL to an external image
- Internal images preferred for performance reasons (automatically optimized)
- Save file to
/public/images/library/directory, e.g.,some-image.png - Add import statement at top of
data.tsfile, e.g.,import someImage from "@/public/images/library/some-image.png" - Add to
imgSrcusing variable name, e.g.,imgSrc: someImage,(no quotes)
- Save file to
- External images can also be used by simply adding the full URL as a string, e.g.,
imgSrc: "https://ethereum.org/images/eth.png",(with quotes)
import a16zCrypto from "@/public/images/library/a16z-crypto-1.png" {
title: "a16zcrypto - State of Crypto ",
href: "https://stateofcrypto.a16zcrypto.com/",
date: "October 22, 2025",
imgSrc: a16zCrypto,
},All posts are added as individual markdown files, each containing metadata in the front matter of the file.
Content should be placed in the following directories: /public/posts/
Name your file using a kebab-case slug that describes the content, for example:
enterprise-team-update.mdethereum-leading-the-way.md
The filename (without extension) will be used in the URL path for the post when published. Lowercase is not required, but encouraged for consistency. Avoid special characters and spaces in the filename.
Both title and datePublished fields are required. Ensure proper date formatting, e.g., YYYY-MM-DD
---
title: Your Post Title
datePublished: 2025-10-25
---After the front matter, write your content using standard Markdown syntax.
Beneath front matter data, leave a space and begin article.
Lorem ipsum dolor sit amet consectetur adipisicing elit.
## Lorem ipsum
...You can include:
- Headings (
## Heading 2,### Header 3etc.) * - Text formatting (
**bold**,_italic_) - Links
[label](url) - Images
 - Code blocks, e.g.,
JSON uses a `key` and a `value`
- Ordered or unordered lists
- Block quotes
*Note: Do not use Heading 1 (H1, #) as it is reserved for the main title of the page, automatically handled by the title front matter property. Pages should never have more than one H1—use H2 for section titles and H3 for subsections, etc.
Internal images used in content should be stored in the /public/images/ directory with appropriate subdirectories for organization, referenced by the relative path (excluding domain). External images should use the full URL, including https:// and domain prefix.