railway-new
Create Railway projects, services, and databases with proper configuration. Use when user says "setup", "deploy to railway", "initialize", "create project", "create service", or wants to deploy from GitHub. Handles initial setup AND adding services to existing projects. For databases, use railway-railway-database skill instead.
Install
mkdir -p .claude/skills/railway-new && curl -L -o skill.zip "https://mcp.directory/api/skills/download/7056" && unzip -o skill.zip -d .claude/skills/railway-new && rm skill.zipInstalls to .claude/skills/railway-new
About this skill
New Project / Service / Database
Create Railway projects, services, and databases with proper configuration.
When to Use
- User says "deploy to railway" (add service if linked, init if not)
- User says "create a railway project", "init", "new project" (explicit new project)
- User says "link to railway", "connect to railway"
- User says "create a service", "add a backend", "new api service"
- User says "create a vite app", "create a react website", "make a python api"
- User says "deploy from github.com/user/repo", "create service from this repo"
- User says "add postgres", "add a database", "add redis", "add mysql", "add mongo"
- User says "connect to postgres", "wire up the database", "connect my api to redis"
- User says "add postgres and connect to the server"
- Setting up code + Railway service together
Prerequisites
Check CLI installed:
command -v railway
If not installed:
Install Railway CLI:
npm install -g @railway/clior
brew install railway
Check authenticated:
railway whoami --json
If not authenticated:
Run
railway loginto authenticate.
Decision Flow
railway status --json (in current dir)
│
┌────┴────┐
Linked Not Linked
│ │
│ Check parent: cd .. && railway status --json
│ │
│ ┌────┴────┐
│ Parent Not linked
│ Linked anywhere
│ │ │
│ Add service railway list
│ Set rootDir │
│ Deploy ┌───┴───┐
│ │ Match? No match
│ │ │ │
│ │ Link Init new
└───────┴────────┴────────┘
│
User wants service?
│
┌─────┴─────┐
Yes No
│ │
Scaffold code Done
│
railway add --service
│
Configure if needed
│
Ready to deploy
Check Current State
railway status --json
- If linked: Add a service to the existing project (see below)
- If not linked: Check if a PARENT directory is linked (see below)
When Already Linked
Default behavior: "deploy to railway" = add a service to the linked project.
Do NOT create a new project unless user EXPLICITLY says:
- "new project", "create a project", "init a project"
- "separate project", "different project"
App names like "flappy-bird" or "my-api" are SERVICE names, not project names.
User: "create a vite app called foo and deploy to railway"
Project: Already linked to "my-project"
WRONG: railway init -n foo
RIGHT: railway add --service foo
Parent Directory Linking
Railway CLI walks up the directory tree to find a linked project. If you're in a subdirectory:
cd .. && railway status --json
If parent is linked, you don't need to init/link the subdirectory. Instead:
- Create service:
railway add --service <name> - Set
rootDirectoryto subdirectory path via environment skill - Deploy from root:
railway up
If no parent is linked, proceed with init or link flow.
Init vs Link Decision
Skip this section if already linked - just add a service instead.
Only use this section when NO project is linked (directly or via parent).
Check User's Projects
The output can be large. Run in a subagent and extract only:
- Project
idandname - Workspace
idandname
railway list --json
Decision Logic
- User explicitly says "new project" → Use
railway init - User names an existing project → Use
railway link - Directory name matches existing project → Ask: link existing or create new?
- No matching projects → Use
railway init - Ambiguous → Ask user
Create New Project
railway init -n <name>
Options:
-n, --name- Project name (auto-generated if omitted in non-interactive mode)-w, --workspace- Workspace name or ID (required if multiple workspaces exist)
Multiple Workspaces
If the user has multiple workspaces, railway init requires the --workspace flag.
Get workspace IDs from:
railway whoami --json
The workspaces array contains { id, name } for each workspace.
Inferring workspace from user input: If user says "deploy into xxx workspace" or "create project in my-team", match the name against the workspaces array and use the corresponding ID:
# User says: "create a project in my personal workspace"
railway whoami --json | jq '.workspaces[] | select(.name | test("personal"; "i"))'
# Use the matched ID: railway init -n myapp --workspace <matched-id>
Link Existing Project
railway link -p <project>
Options:
-p, --project- Project name or ID-e, --environment- Environment (default: production)-s, --service- Service to link-t, --team- Team/workspace
Create Service
After project is linked, create a service:
railway add --service <name>
For GitHub repo sources: Create an empty service, then invoke the railway-environment skill to configure the source via staged changes API. Do NOT use railway add --repo - it requires GitHub app integration which often fails.
Flow:
railway add --service my-api- Invoke railway-environment skill to set
source.repoandsource.branch - Apply changes to trigger deployment
Configure Based on Project Type
Reference railpack.md for build configuration. Reference monorepo.md for monorepo patterns.
Static site (Vite, CRA, Astro static):
- Railpack auto-detects common output dirs (dist, build)
- If non-standard output dir: invoke railway-environment skill to set
RAILPACK_STATIC_FILE_ROOT - Do NOT use
railway variablesCLI - always use the environment skill
Node.js SSR (Next.js, Nuxt, Express):
- Verify
startscript exists in package.json - If custom start needed: invoke railway-environment skill to set
startCommand
Python (FastAPI, Django, Flask):
- Verify
requirements.txtorpyproject.tomlexists - Auto-detected by Railpack, usually no config needed
Go:
- Verify
go.modexists - Auto-detected, no config needed
Monorepo Configuration
Critical decision: Root directory vs custom commands.
Isolated monorepo (apps don't share code):
- Set Root Directory to the app's subdirectory (e.g.,
/frontend) - Only that directory's code is available during build
Shared monorepo (TypeScript workspaces, shared packages):
- Do NOT set root directory
- Set custom build/start commands to filter the package:
- pnpm:
pnpm --filter <package> build - npm:
npm run build --workspace=packages/<package> - yarn:
yarn workspace <package> build - Turborepo:
turbo run build --filter=<package>
- pnpm:
- Set watch paths to prevent unnecessary rebuilds
See monorepo.md for detailed patterns.
Project Setup Guidance
Analyze the codebase to ensure Railway compatibility.
Analyze Codebase
Check for existing project files:
package.json→ Node.js projectrequirements.txt,pyproject.toml→ Python projectgo.mod→ Go projectCargo.toml→ Rust projectindex.html→ Static site- None → Guide scaffolding
Monorepo detection:
pnpm-workspace.yaml→ pnpm workspace (shared monorepo)package.jsonwithworkspacesfield → npm/yarn workspace (shared monorepo)turbo.json→ Turborepo (shared monorepo)- Multiple subdirs with separate
package.jsonbut no workspace config → isolated monorepo
Scaffolding Hints
If no code exists, suggest minimal patterns from railpack.md:
Static site:
Create an
index.htmlfile in the root directory.
Vite React:
npm create vite@latest . -- --template react
Astro:
npm create astro@latest
Python FastAPI:
Create
main.pywith FastAPI app andrequirements.txtwith dependencies.
Go:
Create
main.gowith HTTP server listening onPORTenv var.
Databases
For adding databases (Postgres, Redis, MySQL, MongoDB), use the railway-railway-database skill.
The railway-railway-database skill handles:
- Creating database services
- Connection variable references
- Wiring services to databases
Composability
- After service created: Use railway-deploy skill to push code
- For advanced config: Use railway-environment skill (buildCommand, startCommand)
- For domains: Use railway-domain skill
- For status checks: Use railway-status skill
- For service operations (rename, delete, status): Use railway-service skill
Error Handling
CLI Not Installed
Railway CLI not installed. Install with:
npm install -g @railway/cli
or
brew install railway
Not Authenticated
Not logged in to Railway. Run: railway login
No Workspaces
No workspaces found. Create one at railway.com or verify authentication.
Project Name Taken
Project name already exists. Either:
- Link to existing: railway link -p <name>
- Use different name: railway init -n <other-name>
Service Name Taken
Service name already exists in this project. Use a different name:
railway add --service <other-name>
Examples
Create HTML Static Site
User: "create a simple html site and deploy to railway"
1. Check status → not linked
2. railway init -n my-site
3. Guide: create index.html
4. railway add --service my-site
5. No config needed (index.html in root auto-detected)
6. Use deploy skill: railway up
7. Use domain skill for public URL
Create Vite React Service
User: "create a vite react service"
1. Check status → linked (or init/link first)
2. Scaffold: npm create vite@latest frontend -- --template react
3. railway add --service frontend
4. No config needed (Vite dist output auto-detected)
5. Use deploy skill: railway up
Add Python API to Project
User: "add a python api to my project"
1. Check status → linked
2. Guide: c
---
*Content truncated.*
More by davila7
View all skills by davila7 →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversConnect Supabase projects to AI with Supabase MCP Server. Standardize LLM communication for secure, efficient developmen
Unlock powerful text to speech and AI voice generator tools with ElevenLabs. Create, clone, and customize speech easily.
Supercharge AI platforms with Azure MCP Server for seamless Azure API Management and resource automation. Public Preview
Deploy, monitor, and manage cloud based DBMS and cloud database management tasks on Tencent CloudBase with AI-powered to
Deploy, monitor, and manage full-stack apps on Tencent CloudBase—tools for cloud environments, databases, functions, hos
Deploy and manage MCP-compatible AI apps on Google Cloud Run — automate Cloud Run deployments, list services, and manage
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.