| title | Frontend Development Guide |
|---|---|
| description | Complete guide to developing and contributing to the DeployStack frontend application built with Vue 3, TypeScript, and Vite. |
| sidebar | Getting Started |
The DeployStack frontend is a modern web application built with Vue 3, TypeScript, and Vite, specifically designed for managing MCP (Model Context Protocol) server configurations. This guide covers everything you need to know to develop and contribute to the frontend.
- Framework: Vue 3 with Composition API
- Language: TypeScript for type safety
- Build Tool: Vite for fast development and building
- Styling: TailwindCSS with shadcn-vue components
- Icons: Lucide Icons
- Internationalization: Vue I18n
- State Management: Pinia (when needed)
- Routing: Vue Router
- Node.js 18 or higher
- npm 8 or higher
-
Navigate to frontend directory:
cd services/frontend -
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Build for production:
npm run build
The development server will start at http://localhost:5173 with hot module replacement enabled.
The frontend follows a feature-based modular architecture with clear separation of concerns. For a comprehensive understanding of the application architecture, directory organization, and design patterns, see the Frontend Architecture Guide.
- Use TypeScript for all new code
- Follow Vue 3 Composition API patterns
- Use
<script setup>syntax for components - Maintain consistent naming conventions
- Add proper TypeScript types for all functions and variables
For comprehensive component development guidelines, including Vue SFC best practices, component structure patterns, and implementation standards, see the Frontend Architecture - Component Implementation Standards section.
For table-specific implementations, refer to the Table Design System guide.
The frontend uses TailwindCSS for styling with shadcn-vue component library for consistent UI elements. For comprehensive styling guidelines, component patterns, and design standards, see the UI Design System documentation.
All structured information displays must follow the Structured Data Display Pattern. This includes:
- User profiles and settings
- Form layouts
- Configuration displays
- Installation details
- Any information presented in label-value pairs
This pattern ensures visual consistency across the entire application.
The frontend uses a sophisticated environment variable system that works seamlessly across development and production environments. For complete details on configuring and using environment variables, see the dedicated Environment Variables Guide.
Create environment files in the services/frontend directory:
# .env (base configuration)
VITE_DEPLOYSTACK_BACKEND_URL=http://localhost:3000
VITE_APP_TITLE=DeployStack
# .env.local (local overrides, gitignored)
VITE_DEPLOYSTACK_BACKEND_URL=http://localhost:3000
VITE_APP_TITLE=DeployStack (Development)import { getEnv, getAllEnv } from '@/utils/env'
// Get specific variables
const backendUrl = getEnv('VITE_DEPLOYSTACK_BACKEND_URL')
const appTitle = getEnv('VITE_APP_TITLE')
// Get all variables (useful for debugging)
const allEnvVars = getAllEnv()The frontend uses a service layer pattern with direct fetch() calls for API communication. For complete API integration details including service patterns, implementation examples, and guidelines, see the Frontend Architecture - API Integration Architecture section.
Continue reading the detailed guides:
- Frontend Architecture - Application architecture, patterns, and development principles
- UI Design System - Component patterns, styling guidelines, and design standards
- Structured Data Display Pattern - Mandatory pattern for consistent information display
- Environment Variables - Complete environment configuration guide
- Global Event Bus - Cross-component communication system
- Internationalization (i18n) - Multi-language support
- Plugin System - Extending functionality
# Build the Docker image
docker build -t deploystack/frontend:dev .
# Run with development configuration
docker run -it -p 8080:80 \
-e VITE_API_URL="http://localhost:3000" \
-e VITE_APP_TITLE="DeployStack (Docker Dev)" \
deploystack/frontend:devThe frontend is designed to work seamlessly with the backend service:
# Production deployment
docker run -d -p 8080:80 \
-e VITE_API_URL="https://api.your-domain.com" \
-e VITE_APP_TITLE="DeployStack" \
deploystack/frontend:latest