Skip to content

Manual Hello World Deployment

Build and deploy a simple β€œHello World” Raindrop service using direct CLI commands. This approach gives you complete control over each step of the deployment process.

Prerequisites

  • Raindrop CLI installed and authenticated
  • Node.js 18+ installed
  • Basic TypeScript knowledge
  • Text editor of your choice

Create Your Project

Initialize a new Raindrop application:

Terminal window
raindrop build init hello-world
cd hello-world

This command creates a new directory with your application name and sets up the basic project structure with a raindrop.manifest file.

Review Your Manifest

The raindrop build init command creates a basic manifest file with your service already configured:

raindrop.manifest
application "hello-world" {
service "hello-service" {
visibility = "public"
}
}

The service is automatically configured with a public domain that will be generated during deployment.

Generate Project Files

Run the generate command to create the necessary project structure:

Terminal window
raindrop build generate

This command creates the TypeScript service implementation and updates the project structure:

  • Directoryhello-world/
    • raindrop.manifest
    • package.json
    • tsconfig.json
    • Directorysrc/
      • Directoryhello-service/
        • index.ts
        • index.test.ts
        • raindrop.gen.ts

Implement Your Service

Open src/hello-service/index.ts and replace the generated code with this implementation:

src/hello-service/index.ts
import { Service } from '@liquidmetal-ai/raindrop-framework';
import { Env } from './raindrop.gen';
export default class extends Service<Env> {
async fetch(request: Request): Promise<Response> {
return new Response('Hello World!');
}
}

Install Dependencies

Install the required Node.js dependencies:

Terminal window
npm install

Deploy Your Service

Deploy your service to the Raindrop cloud:

Terminal window
raindrop build deploy --start

After deployment completes, you’ll see output similar to this:

Terminal window
Building to /Users/yourname/hello-world/dist
Building entry points:
/Users/yourname/hello-world/src/hello-service/index.ts
Build successful
Uploaded bundle "hello-service"
πŸ”” You deployed a full version, updates will require a full versioned deployment to work
πŸ“Š Watching deployment status...
hello-world @01k0xyz...
Status: running
Modules (1)
└─ hello-service - running - https://svc-01k0xyz123abc.01jtgsh456xyz789.lmapp.run
──────────────────────────────────────────────────
Total: 1 modules (1 running)

Your service URL will be shown in the deployment output. Copy this URL to test your service.

Test Your Deployed Service

Test your service using curl with the URL from your deployment output:

Terminal window
curl https://svc-01k0xyz123abc.01jtgsh456xyz789.lmapp.run

Expected response:

Hello World!

Make Changes and Redeploy

To update your service:

  1. Edit src/hello-service/index.ts
  2. Run raindrop build deploy --start again
  3. Test your changes

The deployment process typically takes 30-60 seconds.

Understanding the Workflow

You just completed the core Raindrop deployment workflow:

  1. Manifest - Declare your application architecture
  2. Generate - Create TypeScript files and project structure
  3. Implement - Write your service logic
  4. Deploy - Push to live infrastructure

This pattern scales from simple services to complex applications with databases, queues, and multiple interconnected services.