

# Manual Quickstart

Learn how to create a Vapor project without the Toolbox using just Swift 3.1 and the Swift Package Manager (SPM).

This document assumes that you have Swift 3.1 installed, if not please refer to Swift.org before you can continue.

Tip

If you'd prefer to use the Toolbox, follow the toolbox guide here.

## Make new project using SwiftPM

Open your terminal

Note

For our example, we'll be using the Desktop folder.

    cd ~/Desktop
    mkdir Hello
    cd Hello
    swift package init --type executable

Your folder structure should look like this:

    ├── Package.swift
    ├── Sources
    │   └── main.swift
    └── Tests

### Edit `Package.swift`

Open your `Package.swift` file:

    open Package.swift

And add Vapor as a dependency. Here's how your `Package.swift` should look like.

    // swift-tools-version:3.1

    import PackageDescription

    let package = Package(
        name: "Hello",
        dependencies: [
            .Package(url: "https://github.com/vapor/vapor.git", majorVersion: 2)
        ]
    )

Warning

We try to keep this document up to date, however, you can view latest releases here.

### Edit `main.swift`

A simple hello world:

    import Vapor

    let drop = try Droplet()

    drop.get("hello") { req in
      return "Hello Vapor"
    }

    try drop.run()

### Compile & Run (Development)

The first `build` command can take a while to fetch dependencies.

    swift build
    .build/debug/Hello serve

Warning

If different, replace `Hello` above with the name of your executable (as defined in `Package.swift`).

### Production

Compiling in Swift's release mode and setting Vapor's environment to production will make your app more secure and performant.

    swift build --configuration release
    .build/release/Hello serve --env=production

### View

Go to your favorite browser and visit `http://localhost:8080/hello`