# Purpose of the `styles` Directory in Open SEO: Why It Doesn’t Exist

> Discover why the styles directory is absent in Open SEO. Understand its backend-only nature and where frontend code resides for this powerful SEO tool.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: internals
- Published: 2026-08-16

---

**The `styles` directory does not exist in the Open SEO repository because the project is a back-end-only service with front-end code maintained in a separate repository.**

Open SEO (located at `github.com/every-app/open-seo`) is a server-side SEO crawling and analysis tool. Its architecture deliberately separates the data pipeline from any user interface, leaving no need for CSS, SCSS, or other styling assets in this codebase. Any style definitions would belong to the external front-end repository that consumes the APIs provided by this back end.

## What You’ll Find Instead of a `styles` Directory

### The Empty `web` Folder

The repository contains a `web` directory that serves as a placeholder but holds no actual front-end code. Inside, only a `.gitkeep` file exists to preserve the folder in version control:

```bash
web/
└── .gitkeep   # Empty placeholder file

```

This structure signals that the front-end implementation—including any `styles` directory with CSS modules, theme files, or design tokens—resides elsewhere. The back-end project focuses exclusively on data ingestion, processing, and API delivery.

## Where Styles Would Live in a Related Front-End Repository

In a typical monorepo or linked front-end project, you would expect to find styling organized under paths such as:

- **`src/styles/`** – Global CSS, reset files, and design variables
- **`src/components/*/styles/`** – Component-scoped CSS modules or styled-components
- **`src/theme/`** – Token definitions for colors, typography, and spacing

Since Open SEO’s back end has no rendering layer, these directories are absent. The Vite configuration ([`vite.config.ts`](https://github.com/every-app/open-seo/blob/main/vite.config.ts)) reinforces this focus:

```typescript
import { defineConfig } from "vite"
import react from "@vitejs/plugin-react"
import { resolve } from "path"

export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      "~": resolve(__dirname, "src"),
    },
  },
})

```

**No style-related plugins or loaders appear** in this configuration—no `css()` imports, no `scss` preprocessing, and no `postcss` pipeline. The `resolve.alias` points solely to TypeScript source code under `src/`.

## How to Verify the Absence of Styles Programmatically

You can confirm that no styling infrastructure exists by searching the repository:

```bash

# Search for any CSS or SCSS files

find . -type f \( -name "*.css" -o -name "*.scss" -o -name "*.sass" -o -name "*.less" \)

# Expected output: no results

```

Similarly, a content search yields no style-related imports:

```bash
grep -r "import.*\.css" . --include="*.ts" --include="*.tsx"

# Expected output: no matches

```

## Repository Structure Summary

The actual file tree supports this architectural decision:

```

open-seo/
├── src/              # Core back-end logic (TypeScript)

│   └── ...           # Crawlers, API routes, data transformers

├── web/              # Intentionally empty front-end placeholder

│   └── .gitkeep      # Preserves directory in git

├── vite.config.ts    # Build config (no style processing)

└── README.md         # Project documentation

```

## Summary

- **No `styles` directory exists** in `every-app/open-seo` because the project is strictly back-end infrastructure.
- **Front-end styling lives in a separate repository**, as indicated by the empty `web/.gitkeep` placeholder.
- The **Vite configuration** includes no CSS processing, confirming the absence of any styling pipeline.
- Developers seeking to customize UI appearance should locate or create the corresponding front-end repository where `styles/` or `src/styles/` would be appropriate.

## Frequently Asked Questions

### What if I need to add styles to the Open SEO project?

Styles should not be added to this repository. Instead, create or modify the separate front-end application that consumes Open SEO's API endpoints. This preserves clean separation between data services and presentation layers.

### Does the `web` folder ever get populated?

Based on the `.gitkeep` placeholder and project comments, the `web` folder remains intentionally empty in this repository. Any deployment artifacts or built front-end bundles would typically be generated in CI/CD pipelines or managed through the linked front-end repo.

### Are there any CSS-in-JS libraries used in the back end?

No. The back-end code contains no React components, no styled-components, and no Emotion imports. All styling concerns are delegated to the external front-end codebase.

### How do I find the front-end repository that contains the styles?

The Open SEO README or project documentation in the organization's GitHub account should reference the paired front-end repository. Look for repositories named `open-seo-web`, `open-seo-ui`, or similar within the `every-app` organization.