---
title: Project Setup
description: Set up your first Viaduct application
weight: 2
alwaysopen: true
layout: single
---

## Requirements

- Java 21 must be on the path or available via JAVA_HOME
- Basic familiarity with GraphQL (see [GraphQL Foundation learning materials](https://graphql.org/learn/))

## Compatibility

Viaduct is compatible with the following versions:

- **Gradle**: 8.10+ (Gradle 9.1.0+ supported with Kotlin 2.0+)
- **Kotlin**: Use a Kotlin version compatible with your Gradle version
  - Gradle 8.x: Kotlin 1.9.x or 2.x
  - Gradle 9.x: Kotlin 2.0+
- **Java**: 21+

> **Note**: When setting up a new project, choose Gradle and Kotlin versions that are compatible with each other. Refer to the [Gradle-Kotlin compatibility matrix](https://docs.gradle.org/current/userguide/compatibility.html#kotlin) for guidance.

## Choose Your Approach

There are two ways to set up your first Viaduct application based on your preference:

### [Quick Start - Clone Approach](clone)

Perfect if you want to get up and running quickly. Clone one of our starter applications and start building immediately.

**Best for:** Getting familiar with Viaduct quickly, exploring examples

### [Build From Scratch](from_scratch)

Build a Viaduct application from the ground up to understand how all the pieces fit together.

**Best for:** Understanding the complete structure, setting up custom projects

---

Both approaches will result in the same working application. After completing either setup path, continue to [Touring the Application](../tour) to understand the structure.
