francescovallone/serinus/serinus-minimal-application

Claude Code and agent skill by francescovallone/serinus

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when the user is building a Serinus app with serinus.createMinimalApplication() and wants functional route registration, direct provider/module imports, or middleware configuration without defining full controller classes.

Install

npx vskill@latest install francescovallone/serinus/serinus-minimal-application

SKILL.md

Serinus Minimal Application

Guidelines

  • Use serinus.createMinimalApplication() only when the app is intentionally functional and lightweight.
  • Register HTTP routes with get, post, put, patch, delete, and all on SerinusMinimalApplication.
  • Import feature modules with app.import(...) and register providers with app.provide(...).
  • Use configureMiddlewares(...) for advanced middleware configuration and useMiddleware(...) for simple global application with optional exclusions.
  • Route handlers still receive RequestContext<TBody>, so typed body access, DI, params, and query helpers work the same way as in controller-based apps.
  • all(...) maps to HttpMethod.all, so it must not be used with path parameters.
  • Prefer the normal module/controller architecture if the feature set is growing beyond a small app or prototype.

Prefer This Pattern

dart
import 'package:serinus/serinus.dart';
class AuthMiddleware extends Middleware {
@override
Future<void> use(ExecutionContext context, NextFunction next) async {
if (context.switchToHttp().request.headers['authorization'] == null) {
return next('Unauthorized');
}
return next();
}
}
Future<void> main() async {
final app = await serinus.createMinimalApplication(
host: '0.0.0.0',
port: 3000,
);
app.provide(Provider.forValue<String>('1.0.0', name: 'APP_VERSION'));
app.get<String, dynamic>('/', (context) async {
final version = context.use<String>('APP_VERSION');
return 'Serinus $version';
});
app.post<Map<String, dynamic>, Map<String, dynamic>>('/echo', (context) async {
return context.body;
});
app.useMiddleware(
AuthMiddleware(),
exclude: [RouteInfo('/', method: HttpMethod.get)],
);
await app.serve();
}

Avoid

  • Do not convert an established modular app to the minimal API unless the user explicitly wants that rewrite.
  • Do not bypass import(...) and provide(...) by mutating internal module state.
  • Do not use the minimal API when controllers, SSE routes, or feature modules already express the design more clearly.

References

  • references/minimal-application.md for the documented minimal application recipe and migration path back to a structured app.

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

Popularity

Repository stars
108
Repository forks
11
7-day trend score
23

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/francescovallone/serinus/serinus-minimal-application/badge)](https://verified-skill.com/skills/francescovallone/serinus/serinus-minimal-application)

Something wrong with this skill or its page? Tell us.