# Magic Starter

**Stop rebuilding the same screens in every app.**

Pre-built Auth, Profile, Teams and Notifications screens for apps on the Magic framework. The UI is Wind-based, with an `MS` design system such as `MSButton` and `MSDataTable`.

## Ready screens. Replaceable views.

After the installer, your app calls `MagicStarter.bootstrap` and its route provider calls `registerMagicStarterAuthRoutes()`. The screens come ready and every view stays yours to swap.

### Auth screens

Login, register, forgot and reset password and remember me through `MagicStarterAuthController`, plus a two-factor challenge page and phone OTP login through `MagicStarterOtpController`.

[Learn more about Auth screens](https://anilcancakir.com/magic/docs/starter/basics/authentication.md)

### Profile screens

Profile pages with photo upload, email and password change and a sessions view, handled by `MagicStarterProfileController`.

[Learn more about Profile screens](https://anilcancakir.com/magic/docs/starter/basics/profile.md)

### Teams

Create a team, switch teams with `MagicStarter.switchTeam` and invite members, through `MagicStarterTeamController`.

[Learn more about Teams](https://anilcancakir.com/magic/docs/starter/basics/teams.md)

### Notifications

Notification screens resolve through `Notify.view` from magic_notifications, and the routes are included.

[Learn more about Notifications](https://anilcancakir.com/magic/docs/starter/basics/notifications.md)

### Replaceable views

Every view and layout, such as `layout.app`, `layout.guest` and the auth views, can be swapped through the view registry, `MagicStarter.view`.

[Learn more about Replaceable views](https://anilcancakir.com/magic/docs/starter/architecture/view-registry.md)

### Config-driven features

Switch features on and off from the `magic_starter` config, read through `MagicStarterConfig`. The installer writes the file.

[Learn more about Config-driven features](https://anilcancakir.com/magic/docs/starter/getting-started/configuration.md)

## Add it in seconds

```bash
flutter pub add magic_starter
```

Or add to `pubspec.yaml`:

```yaml
dependencies:
  magic_starter: ^1.0.0
```

Or give your AI agent this prompt:

```text
Read https://anilcancakir.com/magic/docs/starter/llms.txt and install the Magic Starter package in this project.
```
