<div align="center">
  <h1 style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0">Fortura Data Solutions</h1>
  <p align="center">
    A high-performance, cost-effective, and privacy-first alternative to cloud hosting for enterprises.
</p>

<a href="https://github.com/fortura-data/landing-page/stargazers"><img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/fortura-data/landing-page?style=for-the-badge"></a>
<a href="https://twitter.com/forturadatasol"><img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/forturadatasol?style=for-the-badge&logo=x"></a>
<a href="https://github.com/fortura-data/landing-page/blob/main/LICENSE.md"><img alt="License" src="https://img.shields.io/badge/License-Proprietary-blue.svg?style=for-the-badge"></a>

</div>

![hero](https://fortura-data.com/og-image.png)

## About Fortura Data Solutions

Fortura Data Solutions provides a modern, enterprise-grade infrastructure stack that allows organizations to **own their hardware, slash their cloud bills, and maintain full control over their data**.

We built our platform for high-demand environments like VFX studios, where petabytes of data move in real-time on tight budgets. Now, we're bringing that same performance and cost-efficiency to every business serious about their bottom line and data sovereignty.

### Why Fortura?

*   **Cost Reduction:** Stop paying rent. Own the hardware and see your operational costs drop significantly, often achieving break-even within 12 months.
*   **Performance:** Get cloud-level performance with sub-10ms latencies on colocated hardware, tailored to your workloads.
*   **Data Ownership & Privacy:** Your data stays on your hardware, governed by your rules. AI-native workflows keep your data private, with zero leakage to third parties.
*   **Integrated Stack:** We help you build on the tools you already use, wiring them together and automating the boring parts.
*   **Minimal Retraining:** Our "desire paths" approach means we embed with your team, shape the system to how you *actually* work, then automate.

## Getting Started

This repository contains the code for the Fortura Data Solutions marketing website. It's built with Next.js, TypeScript, and Tailwind CSS.

### Prerequisites

- Node.js >= 20
- pnpm >= 8
- Docker (optional, for containerized deployment)

### Environment Variables

To run this project, you'll need to set up the following environment variables:

```bash
# Create a .env.local file in the root directory
cp .env.local.example .env.local
```

Then edit the `.env.local` file to include your configuration:

```env
# Next.js environment
NODE_ENV=development

# API endpoints (if applicable)
# NEXT_PUBLIC_API_URL=http://localhost:3001/api

# Analytics (if self-hosted)
# NEXT_PUBLIC_PLAUSIBLE_DOMAIN=your-domain.com
# NEXT_PUBLIC_PLAUSIBLE_API_HOST=https://plausible.your-domain.com

# Contact form submission endpoint
# CONTACT_FORM_ENDPOINT=https://n8n.your-domain.com/webhook/contact-form

# Calendly integration (if applicable)
# CALENDLY_URL=https://calendly.com/your-calendly-url
```

### Development

To run the development server:

```bash
# Install dependencies
pnpm install

# Run the development server
pnpm dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

### Docker Deployment

To build and run the application using Docker:

1. Build the Docker image:
   ```bash
   docker build -t fortura-website -f apps/www/Dockerfile .
   ```

2. Run the container:
   ```bash
   docker run -p 3000:3000 --env-file .env.local fortura-website
   ```

Alternatively, use docker-compose:
```bash
docker-compose up --build
```

The application will be available at [http://localhost:3000](http://localhost:3000).

### Production Build

To create a production build:

```bash
# Build the application
pnpm build

# Start the production server
pnpm start
```

## Troubleshooting

### TS2742 from Fumadocs generated files (Next.js 15 type-check)

TypeScript can flag the generated Fumadocs output in `apps/www/.source/index.ts` because the inferred type of `docs` references private internals from `fumadocs-mdx/dist/...`. Next 15 enforces strict type portability and fails with TS2742.

Fast unblock (recommended and safe): exclude generated files from type-check.

1) Ensure `apps/www/tsconfig.json` excludes the generated folder and relaxes lib checks:

```json
{
  "compilerOptions": {
    "skipLibCheck": true
  },
  "exclude": [
    ".source",
    ".source/**/*"
  ]
}
```

2) Clean and rebuild the app:

```bash
rm -rf apps/www/.source
pnpm -C apps/www build
```

Proper fix (long-term): align Fumadocs + Zod and regenerate.

1) Upgrade deps (workspace-wide):

```bash
pnpm -w up fumadocs-mdx@latest fumadocs-core@latest fumadocs-ui@latest @types/mdx@latest
pnpm -w up zod@^4
```

2) Regenerate the `.source` output:

```bash
rm -rf apps/www/.source
pnpm -C apps/www build
```

3) If the generator still emits a generic that triggers TS2742, enforce a portable annotation in `apps/www/.source/index.ts` (temporary):

```ts
import { _runtime } from 'fumadocs-mdx';
type DocsData = ReturnType<typeof _runtime.docs>;
export const docs: DocsData = _runtime.docs(/* generated arrays */);
// or fallback: export const docs: unknown = _runtime.docs(/* generated arrays */);
```

Note: Keeping `.source` excluded from type-checks is fine even after upgrades; it also speeds up CI.

## Documentation

Detailed documentation for Fortura's services, migration guides, and operational procedures is available to clients on our internal portal.

## License

This website's code is licensed under a proprietary license. See [LICENSE.md](LICENSE.md) for details.
