A Progressive Web App (PWA) client for managing devil API services, built with SvelteKit, TypeScript, and Tailwind CSS v4.
- Node.js 20+
- pnpm (recommended) or npm
- A devil API v0.3.0 service available and accessible
- Clone the repository:
git clone https://github.com/devil-imps/devil-web.git
cd devil-web- Install dependencies:
pnpm install- Start the development server:
pnpm dev- Open your browser and navigate to
http://localhost:5173
pnpm buildThe built application will be in the build directory, ready for deployment as a static site.
BASE_PATH: Base path for GitHub Pages deployment (e.g.,/devil-web)
The PWA manifest is located at static/manifest.json. You can customize:
- TypeScript: Full type safety throughout the application
- ESLint: Code linting with TypeScript support
- Prettier: Code formatting
# Development
pnpm dev # Start development server
pnpm check # TypeScript checking
pnpm check:watch # TypeScript checking in watch mode
# Quality checks
pnpm lint # ESLint checking
pnpm format # Prettier formatting
# Production
pnpm build # Build for production
pnpm preview # Preview production build locally- Components: Add new Svelte components in
src/lib/components/ - Services: Add business logic in
src/lib/services/ - Stores: Manage state in
src/lib/stores/ - Routes: Create new routes in
src/routes/using SvelteKit conventions - Styling: Use Tailwind CSS v4 classes with PostCSS configuration
- State Management: Svelte stores for global state (
appState,theme) - API Integration: Custom utility functions (
apiGet,apiPost, etc.) - Component Communication: Event dispatcher pattern for parent-child communication
- Modal System: Reusable modal components with confirmation patterns
- Navigation: Custom
navigateTo()utility for base path-aware routing
- Framework: SvelteKit with static adapter for PWA deployment
- Language: TypeScript with strict type checking
- Styling: Tailwind CSS v4 (via PostCSS plugin)
- Package Manager: pnpm (recommended)
- Deployment: Static site generation for GitHub Pages compatibility
- State Management: Svelte stores with reactive patterns
- API Integration: Custom utility functions with Bearer token authentication
- Chrome/Edge 88+
- Firefox 78+
- Safari 14+
- Mobile browsers with PWA support
Contributions, issues, and feature requests are welcome! Feel free to check the issues page or submit a pull request.
This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE. See the LICENSE file for details.