davila7/claude-code-templates/new
- community
Checking that the SKILL.md file is still in the repository.
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
npx vskill@latest install davila7/claude-code-templates/newSKILL.md
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:
If not installed:
Install Railway CLI:```npm install -g @railway/cli```or```brew install railway```
Check authenticated:
If not authenticated:
Runrailway loginto authenticate.
Decision Flow
Check Current State
- 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.
Parent Directory Linking
Railway CLI walks up the directory tree to find a linked project. If you're in a subdirectory:
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
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
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:
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:
Link Existing 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:
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> - 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 anindex.htmlfile in the root directory.
Vite React:
Astro:
Python FastAPI:
Createmain.pywith FastAPI app andrequirements.txtwith dependencies.
Go:
Createmain.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
Not Authenticated
No Workspaces
Project Name Taken
Service Name Taken
Examples
Create HTML Static Site
Create Vite React Service
Add Python API to Project
Link and Add Service
Deploy to Railway (Ambiguous)
Add Service to Isolated Monorepo
Add Service to TypeScript Monorepo
Deploy Existing pnpm Workspace Package
Deploy Subdirectory of Linked Project
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcli-tool/components/skills/railway/new/SKILL.md
Popularity
- Repository stars
- 23,295
- Repository forks
- 2,229
- Repository npm downloads, 7 days
- 4,461
- 7-day trend score
- 70
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 21 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/davila7/claude-code-templates/new)