# Project Showcases
Fezcodex supports different project detail page styles to best present each project. Currently, there are two distinct styles available: "Stylish" and "Techno".
## 1. Activation
To assign a style to a project, set the `(style)` field in `public/projects/projects.piml`:
```piml
> (project)
(slug) my-cool-project
(style) stylish ; or 'techno'
...
```
If no style is specified, the default layout will be used.
---
## 2. Stylish Layout
This layout is designed for high-production, landing-page style showcases. It features a rich, component-driven design ideal for web apps and major projects.
### Directory Structure
Content resides in `public/projects/[slug]/` as `.txt` files (previously `.mdx`).
```text
public/projects/my-project/
├── hero.txt # Hero section
├── partners.txt # Tech stack/Partners
├── terminal.txt # Interactive terminal tabs
├── integrations.txt # Feature showcase grid
├── features.txt # Icon cards grid
├── technical.txt # Technical specs
├── details.txt # Long-form content
└── cta.txt # Call to action
```
### File Specifications
(Same block parsing rules as before apply, e.g., `:::feature`, `:::tech`)
---
## 3. Editorial Layout
The **Editorial** style (formerly Techno) is a raw, brutalist, developer-focused aesthetic. It uses monospaced fonts, high-contrast dark modes, and terminal-inspired elements. It is perfect for CLIs, system tools, and low-level libraries.
### Directory Structure
Content resides in `public/projects/[slug]/` as `.txt` files.
```text
public/projects/my-cli-tool/
├── hero.txt # Hero title and description
├── features.txt # (Not currently used in Editorial layout, but reserved)
├── terminal.txt # Terminal session preview (supports colors)
├── install.txt # Installation command(s)
├── social.txt # Horizontal scrollable "social proof" or "explore" cards
├── description.txt # Main project description (Overview, Features)
└── footer.txt # (Reserved for footer links)
```
### File Specifications
#### `hero.txt`
* **Lines starting with `#`**: Title lines (rendered in large serif font).
* **image:** tag: (Ignored in Editorial layout as it uses a global background grid, but good to keep for metadata).
* **Body**: Description text below the title.
```txt
# Engineered
# For The Shell
Dush is the custom terminal shell...
```
#### `terminal.txt`
Raw text that is rendered inside a terminal window component.
* Supports standard Markdown code blocks.
* Use `rehype-raw` compatible HTML spans for colors if needed (e.g., `warn`).
```txt
➜ ~ dush
dush> echo "hello"
```
#### `install.txt`
Contains the raw installation command string.
```txt
go install github.com/fezcode/dush@latest
```
#### `social.txt`
Defines the "Explore With Us" cards. Entries are separated by `---`.
* **Line 1**: Title (optionally starts with `#`).
* **Line 2**: Author / Subtitle.
* **Line 3**: Stats string (e.g., `+10 -2 ~1`).
* **link:**: URL for the card.
* **image:**: (Optional) Background image URL.
```txt
# Why I built Dush
fezcode
+10 -2 ~1
link: https://github.com/fezcode/dush
---
# Architecture
...
```
#### `description.txt`
The main content area ("About the Project").
* Standard Markdown.
* Supports lists, bolding, and headers.
* `## Headings` separate the content into different grid rows in the layout.
```txt
## Overview
Dush is a minimalist shell...
## Key Features
- Feature 1
- Feature 2
```
## 4. Assets
* **Images**: Place images in `public/images/projects/` or `public/images/bg/`.
* **Icons**: Use Phosphor icons where applicable in code, or SVG assets.
## 5. Adding a New Project Checklist
1. Create the folder `public/projects/[your-slug]`.
2. Choose your style: `stylish` or `editorial`.
3. Create the corresponding `.txt` files based on the chosen style's structure.
4. Add the project to `public/projects/projects.piml` with the correct `(style)` field.
5. Run `npm run lint` to ensure code quality.