# Magic documentation > Magic brings Laravel's facades, Eloquent-style models, service providers and routing to Flutter, so Laravel developers feel at home. ## Getting Started - [Installation](https://anilcancakir.com/magic/docs/getting-started/installation.md): Add the magic package, scaffold the app with dart run magic:dowel magic:install, and call Magic.init() to get the IoC container, facades, Eloquent-style… - [Configuration](https://anilcancakir.com/magic/docs/getting-started/configuration.md): Magic's configuration system lets you load, read, write, and inspect application settings at runtime using the Config facade with dot-notation keys. - [Directory Structure](https://anilcancakir.com/magic/docs/getting-started/directory-structure.md): The default Magic project layout organises your app into folders for controllers, models, routes, config, and resources, so each is easy to locate at a glance… - [Service Providers](https://anilcancakir.com/magic/docs/getting-started/service-providers.md): Service providers are the central bootstrapping point for Magic applications: each provider's register method binds services into the IoC container, and boot… ## Architecture - [Application Structure](https://anilcancakir.com/magic/docs/architecture/application-structure.md): Six primitives divide a magic app's write-heavy screens the way Laravel divides a controller-heavy one: each owns exactly one kind of state, and none of them… - [Request Lifecycle](https://anilcancakir.com/magic/docs/architecture/request-lifecycle.md): Understanding the Magic request lifecycle helps you know exactly where your service providers, middleware, and controllers run relative to each bootstrap step. - [Service Container](https://anilcancakir.com/magic/docs/architecture/service-container.md): The Magic service container is a string-keyed IoC container for registering factory closures and resolving singletons across your application without relying… - [Facades](https://anilcancakir.com/magic/docs/architecture/facades.md): Facades provide a clean, static interface to the services bound in Magic's IoC container, giving you expressive one-liners without sacrificing testability or… ## The Basics - [Routing](https://anilcancakir.com/magic/docs/basics/routing.md): Magic's routing wraps go_router with a Laravel-style fluent API: define routes with MagicRoute.page(), group them with middleware and layouts, and navigate… - [Middleware](https://anilcancakir.com/magic/docs/basics/middleware.md): Middleware lets you inspect and filter navigation requests before they reach a route, making it the right place for authentication guards, permission checks… - [Controllers](https://anilcancakir.com/magic/docs/basics/controllers.md): Controllers extend MagicController (a ChangeNotifier) to hold reactive state, run validation, and dispatch navigation, keeping business logic out of the widget… - [Views](https://anilcancakir.com/magic/docs/basics/views.md): Views extend MagicView or MagicStatefulView to give each screen a typed controller reference, async-state rendering helpers, and a clean MVC separation between… - [Forms](https://anilcancakir.com/magic/docs/basics/forms.md): Magic provides a complete form handling system: MagicFormData for centralised form state, wind_kit form widgets for UI, FormRequest classes for structured… - [Actions](https://anilcancakir.com/magic/docs/basics/actions.md): MagicAction is a stateless, single-purpose write unit, Fortify's Actions\* ported: a subclass takes one input, does one write, and throws on failure… - [HTTP Client](https://anilcancakir.com/magic/docs/basics/http-client.md): The Http facade is Magic's HTTP client, built on top of Dio, with one API for making requests and handling responses. - [UI Helpers](https://anilcancakir.com/magic/docs/basics/ui-helpers.md): The UI helpers are context-free UI feedback utilities, reactive widget builders, declarative page-title management, responsive layouts, form-processing… ## Eloquent ORM - [Eloquent: Getting Started](https://anilcancakir.com/magic/docs/eloquent/getting-started.md): Eloquent is Magic's active-record ORM: define models as Dart classes and persist them to a remote REST backend, or to local storage with the… - [Eloquent: Mutators](https://anilcancakir.com/magic/docs/eloquent/mutators.md): Accessors, mutators, and attribute casts let you transform Eloquent model values automatically as they are read from or written to the database, without… - [Repositories](https://anilcancakir.com/magic/docs/eloquent/repositories.md): Repository is an id-keyed cache of one remote resource's rows, Eloquent's identity map for a client with no query builder; RepositoryQuery is one… - [Eloquent: Serialization](https://anilcancakir.com/magic/docs/eloquent/serialization.md): Eloquent models can be serialised to maps and JSON strings with a single call, with support for hiding sensitive attributes and appending computed values to… ## Security - [Authentication](https://anilcancakir.com/magic/docs/security/authentication.md): Magic provides a frontend-focused authentication system with secure token storage, user caching, automatic token refresh, and support for multiple configurable… - [Authorization](https://anilcancakir.com/magic/docs/security/authorization.md): Magic's authorisation system lets you define and check user abilities via the Gate facade, with support for policies, super-admin bypasses, and declarative UI… - [Security: Vault](https://anilcancakir.com/magic/docs/security/vault.md): The Vault facade provides a simple interface for reading and writing sensitive data to the platform's native secure storage, with a fake implementation for… ## Digging Deeper - [Helpers](https://anilcancakir.com/magic/docs/digging-deeper/helpers.md): Static helpers for locale-aware strings and numbers, dot-path map access, defensive type reading, and small async utilities such as polling, debouncing and… - [Validation](https://anilcancakir.com/magic/docs/digging-deeper/validation.md): Magic provides a client-side validation system that integrates with Flutter forms, resolves error messages through the Lang facade, and extends to async rules… - [Localization](https://anilcancakir.com/magic/docs/digging-deeper/localization.md): Magic provides a Laravel-style localisation system that lets you retrieve and switch translation strings at runtime without needing BuildContext. - [Logging](https://anilcancakir.com/magic/docs/digging-deeper/logging.md): The Log facade provides a Laravel-style logging API with configurable channels, minimum log levels, and a stack channel for fanning output to multiple drivers… - [Cache](https://anilcancakir.com/magic/docs/digging-deeper/cache.md): Magic provides an expressive, unified API for various caching backends, with built-in event dispatching so you can react to cache reads, writes, and removals. - [Session & Flash Data](https://anilcancakir.com/magic/docs/digging-deeper/session.md): The Session facade provides flash data that survives exactly one navigation hop, letting you pass form input and validation errors across a back-navigation… - [Session Scope](https://anilcancakir.com/magic/docs/digging-deeper/session-scope.md): SessionScope keeps every cached controller and repository pointed at the identity that is authenticated right now, so a login after a logout, or a team switch… - [Events](https://anilcancakir.com/magic/docs/digging-deeper/events.md): Magic's event system provides a simple observer implementation, letting you decouple side effects from application actions by dispatching named events and… - [File Storage](https://anilcancakir.com/magic/docs/digging-deeper/file-storage.md): The Storage facade provides a unified API for reading, writing, and deleting files across multiple named disks, with built-in support for remote downloads and… - [Carbon (Date/Time)](https://anilcancakir.com/magic/docs/digging-deeper/carbon.md): Carbon is Magic's date and time utility, inspired by PHP's Carbon library, offering a fluent API for creating, formatting, manipulating, and comparing date… - [Launch](https://anilcancakir.com/magic/docs/digging-deeper/launch.md): The Launch facade provides a context-free static API for opening URLs, composing emails, initiating phone calls, and sending SMS messages, returning false on… - [Perf Hooks](https://anilcancakir.com/magic/docs/digging-deeper/perf-hooks.md): MagicPerfHooks.sink is the one seam a diagnostic reads magic's runtime activity through: which controller repainted and why, what a repository merged, how long… ## Testing - [Testing: Getting Started](https://anilcancakir.com/magic/docs/testing/getting-started.md): MagicTest and the fakes in package:magic/testing.dart reset the IoC container between tests, fake facades and HTTP, and keep controller and model behaviour… - [HTTP Tests](https://anilcancakir.com/magic/docs/testing/http-tests.md): Http.fake() lets you stub HTTP responses by URL or callback so controller and service tests run without a live server, with assertions to verify which requests… - [Facade Testing](https://anilcancakir.com/magic/docs/testing/facades.md): The Auth, Cache, Vault, Log and Http facades each ship an in-memory fake so tests never touch real storage, network, or platform channels. ## Packages - [Magic CLI](https://anilcancakir.com/magic/docs/packages/magic-cli.md): The Magic CLI is a dowel plugin that ships as part of the magic package, providing magic:install, the make:* generators and the preview and design commands… - [Magic DevTools](https://anilcancakir.com/magic/docs/packages/magic-devtools.md): Magic DevTools wires a magic app into the tapir and crumbs dev tools, and is loaded only under !kReleaseMode so release builds tree-shake it away entirely. ## Contributing - [Contribution Guide](https://anilcancakir.com/magic/docs/contributing/contribution-guide.md): This guide covers everything you need to contribute to the Magic framework: local setup, coding style, testing requirements, and the pull-request process. - [Documentation Authoring Guide](https://anilcancakir.com/magic/docs/contributing/documentation.md): This guide explains how to write, update, and maintain documentation pages in Magic's doc/ directory so they stay accurate, consistently formatted, and… ## Optional - [Magic](https://anilcancakir.com/magic): the package landing page - [Full documentation](https://anilcancakir.com/magic/docs/llms-full.txt): every page in one file