**
-
-::: details System Requirements
-Make sure your system meets these requirements before getting started:
-
-| Component | Version |
-| ---------- | ------- |
-| PHP | 8.2 - 8.5 |
-| Database | MySQL 5.7+, PostgreSQL 9.6+, SQLite 3, SQL Server 2012+ |
-| Extensions | `mbstring`, `intl`, `pdo`, `simplexml` |
-| Composer | Latest |
-
-:::
-
-## Your First Application
-
-Let's build a simple blog in 10 minutes! Follow along with this hands-on tutorial.
-
-> [!NOTE]
-> This tutorial assumes you already have a database created. Use your database management tool to create a database named `blog` before proceeding.
-
-### Step 1: Configure Database Connection
+
-Update your database credentials in **config/app_local.php**:
+
-```php{7-11} [config/app_local.php]
-New to CakePHP?
-return [
- 'Datasources' => [
- 'default' => [
- 'host' => 'localhost',
- 'username' => 'my_user',
- 'password' => 'secret',
- 'database' => 'blog',
- 'encoding' => 'utf8mb4',
- ],
- ],
-];
-```
-
-::: tip Configuration Files
-
-- **config/app.php** - Default configuration (committed to git)
-- **config/app_local.php** - Local overrides (gitignored)
-:::
-
-### Step 2: Create Database Tables
-
-Choose your preferred approach for creating the database schema:
-
-> [!NOTE]
-> **Migrations** are recommended for team projects and production - they're version-controlled and database-agnostic.
-> **Raw SQL** is fine for quick prototyping or if you prefer direct database control.
-
-#### Option A: Using Migrations
-
-::: code-group
-
-```bash [Commands]
-# Step 1: Generate a migration file
-bin/cake bake migration CreateArticles
-# This creates: config/Migrations/YYYYMMDDHHMMSS_CreateArticles.php
-
-# Step 2: Edit the generated file to define your table structure
-# See the "Migration File" tab for the complete example
-# Open: config/Migrations/YYYYMMDDHHMMSS_CreateArticles.php
-
-# Step 3: Run the migration to create the table
-bin/cake migrations migrate
-
-# Step 4: (Optional) Generate and run seed data
-bin/cake bake seed Articles
-bin/cake seeds run Articles
-```
+Get to know the framework, its conventions, and how the pieces fit together.
-```php [Migration File]
-table('articles');
- $table->addColumn('title', 'string', ['limit' => 255])
- ->addColumn('slug', 'string', ['limit' => 191])
- ->addColumn('body', 'text', ['null' => true])
- ->addColumn('published', 'boolean', ['default' => false])
- ->addColumn('created', 'datetime')
- ->addColumn('modified', 'datetime')
- ->addIndex(['slug'], ['unique' => true])
- ->create();
- }
-}
-```
-
-```php [Seed File]
- 'First Post',
- 'slug' => 'first-post',
- 'body' => 'This is my first blog post!',
- 'published' => true,
- 'created' => date('Y-m-d H:i:s'),
- 'modified' => date('Y-m-d H:i:s'),
- ],
- [
- 'title' => 'Second Post',
- 'slug' => 'second-post',
- 'body' => 'Another great article.',
- 'published' => true,
- 'created' => date('Y-m-d H:i:s'),
- 'modified' => date('Y-m-d H:i:s'),
- ],
- ];
-
- $table = $this->table('articles');
- $table->insert($data)->save();
- }
-}
-```
+
-:::
+
-#### Option B: Using Raw SQL
+Build an application
-::: code-group
+Learn by doing with a step-by-step content management system tutorial.
-```sql [MySQL]
-USE blog;
+
-CREATE TABLE articles (
- id INT AUTO_INCREMENT PRIMARY KEY,
- title VARCHAR(255) NOT NULL,
- slug VARCHAR(191) UNIQUE,
- body TEXT,
- published BOOLEAN DEFAULT FALSE,
- created DATETIME,
- modified DATETIME
-) ENGINE=InnoDB;
+
-INSERT INTO articles (title, slug, body, published, created, modified)
-VALUES ('First Post', 'first-post', 'This is my first blog post!', TRUE, NOW(), NOW());
-```
+Upgrade your application
-```sql [PostgreSQL]
-\c blog
-
-CREATE TABLE articles (
- id SERIAL PRIMARY KEY,
- title VARCHAR(255) NOT NULL,
- slug VARCHAR(191) UNIQUE,
- body TEXT,
- published BOOLEAN DEFAULT FALSE,
- created TIMESTAMP,
- modified TIMESTAMP
-);
-
-INSERT INTO articles (title, slug, body, published, created, modified)
-VALUES ('First Post', 'first-post', 'This is my first blog post!', TRUE, NOW(), NOW());
-```
-
-```sql [SQLite]
-CREATE TABLE articles (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- title VARCHAR(255) NOT NULL,
- slug VARCHAR(191) UNIQUE,
- body TEXT,
- published BOOLEAN DEFAULT 0,
- created DATETIME,
- modified DATETIME
-);
-
-INSERT INTO articles (title, slug, body, published, created, modified)
-VALUES ('First Post', 'first-post', 'This is my first blog post!', 1, datetime('now'), datetime('now'));
-```
-
-:::
-
-### Step 3: Generate Your First Model
-
-Use CakePHP's code generation tool:
-
-```bash
-# Generate model classes
-bin/cake bake model Articles
-
-# Output:
-# ✓ Created: src/Model/Table/ArticlesTable.php
-# ✓ Created: src/Model/Entity/Article.php
-# ✓ Created: tests/TestCase/Model/Table/ArticlesTableTest.php
-```
+Prepare your existing application for CakePHP 6.
-This creates:
+
-::: code-group
-
-```php [ArticlesTable.php]
-setTable('articles');
- $this->setDisplayField('title');
- $this->setPrimaryKey('id');
-
- $this->addBehavior('Timestamp');
- }
-}
-```
-
-```php [Article.php]
- true,
- 'slug' => true,
- 'body' => true,
- 'published' => true,
- 'created' => true,
- 'modified' => true,
- ];
-}
-```
+
-:::
+
+
-### Step 4: Create Your Controller
+## Quick start
-Generate a controller with views:
+Have PHP |minphpversion|+ and Composer installed? Create an application and start the development server.
-```bash
-bin/cake bake controller Articles
-```
+[Installation guide →](installation)
-```php [src/Controller/ArticlesController.php]
-Articles->find('all')
- ->where(['published' => true])
- ->orderBy(['created' => 'DESC']);
-
- $this->set(compact('articles'));
- }
-
- public function view(?string $slug = null): void
- {
- $article = $this->Articles
- ->findBySlug($slug)
- ->firstOrFail();
-
- $this->set(compact('article'));
- }
-
- public function add(): void
- {
- $article = $this->Articles->newEmptyEntity();
-
- if ($this->request->is('post')) {
- $article = $this->Articles->patchEntity(
- $article,
- $this->request->getData()
- );
-
- if ($this->Articles->save($article)) {
- $this->Flash->success('Article saved!');
- return $this->redirect(['action' => 'index']);
- }
-
- $this->Flash->error('Unable to save article.');
- }
-
- $this->set(compact('article'));
- }
-}
-```
+
+
-### Step 5: Create Your Views
-
-Create a simple list view in **templates/Articles/index.php**:
-
-```php [templates/Articles/index.php]
-
Blog Articles
-
-
-
-
- = $this->Html->link(
- h($article->title),
- ['action' => 'view', $article->slug]
- ) ?>
-
-
- Published: = $article->created->format('F d, Y') ?>
-
- = h($article->body) ?>
-
-
-
-= $this->Html->link('New Article', ['action' => 'add'], ['class' => 'button']) ?>
+```bash:no-line-numbers
+composer create-project --prefer-dist cakephp/app:~|cakeversion| my_app
+cd my_app
+bin/cake server
```
-> [!TIP]
-> Visit **
** to see your blog in action!
-
-## Next Steps
-
-Now that you've built your first CakePHP application, here are some great places to continue your journey:
-
-**Learn the Fundamentals:**
-
-- [CakePHP Conventions](intro/conventions) - Understanding the naming conventions that power CakePHP
-- [MVC Pattern](intro) - How CakePHP structures applications
-- [Configuration](development/configuration) - Customizing your application
-
-**Build Real Applications:**
-
-- [Tutorials & Examples](tutorials-and-examples) - Step-by-step guides
-- [CMS Tutorial](tutorials-and-examples/cms/installation) - Build a complete content management system
-
-**Master Core Features:**
-
-- [Database & ORM](orm) - Advanced queries, associations, and data modeling
-- [Controllers](controllers) - Request handling, components, and middleware
-- [Views](views) - Templates, helpers, and rendering
-- [Security](security) - Best practices for secure applications
-
-## Get Help
+Then open [localhost:8765](http://localhost:8765).
-Join our community and get the support you need:
-
-
-
-**Additional Resources:**
-
-- [API Documentation](https://api.cakephp.org/5.0/) - Complete API reference
-- [Stack Overflow](https://stackoverflow.com/questions/tagged/cakephp) - Find answers to common questions
-
-## How CakePHP Works
-
-Understanding the request flow helps you build better applications. Here's what happens when a user visits your CakePHP application:
-
-
-
-**A typical request follows these steps:**
+## Explore the guides
-1. 🌐 **Request arrives** → Webserver routes to `webroot/index.php`
-2. ⚙️ **Application boots** → Your app is loaded and middleware initializes
-3. 🛣️ **Routing** → Request is matched to a controller and action
-4. 🎮 **Controller** → Action is called, interacts with Models
-5. 📊 **Model Layer** → Fetches and processes data from the database
-6. 🎨 **View Layer** → Renders the response (HTML, JSON, XML, etc.)
-7. 📤 **Response sent** → Back through middleware to the client
+Jump straight to the part of your application you're working on.
-::: tip Understanding MVC
-The **Model** handles your data and business logic, the **Controller** coordinates the request, and the **View** presents the data. This separation keeps your code organized and testable.
+
-[Learn more about MVC in CakePHP →](intro)
-:::
+
-## Everything You Need, Out of the Box
+HTTP
-CakePHP comes with powerful features that save you time and help you build better applications:
+Handle requests and responses with controllers and components.
-::: details 🚀 Code Generation (Bake)
-Generate complete CRUD applications in seconds:
+
-```bash
-bin/cake bake all Articles
-# Creates: Model, Controller, Views, Tests
-```
+
-Bake can scaffold entire features, saving hours of repetitive coding. Perfect for prototyping or generating boilerplate.
+Database
-[Learn more about Bake →](https://book.cakephp.org/bake/2/en/)
-:::
+Work with tables, queries, associations, and application data.
-::: details 💾 Caching Framework
-Integrated caching with multiple backends:
+
-```php
-// Cache expensive operations
-$results = Cache::remember('expensive_query', function () {
- return $this->Articles->find('complex')->toArray();
-});
-```
+
-**Supported backends:** Redis, Memcached, APCu, File, Database
+Views
-[Learn more about Caching →](core-libraries/caching)
-:::
+Create templates, layouts, and reusable helpers.
-::: details 🧪 Built-in Testing
-Write tests with confidence using the integrated testing framework:
+
-```php
-public function testAddArticle(): void
-{
- $this->post('/articles/add', ['title' => 'Test']);
- $this->assertResponseOk();
- $this->assertFlashMessage('Article saved!');
-}
-```
-
-Supports unit tests, integration tests, and browser tests out of the box.
-
-[Learn more about Testing →](development/testing)
-:::
+
-::: details 🔐 Authentication & Authorization
-Drop-in user management with flexible policies:
+Security
-```bash
-composer require cakephp/authentication cakephp/authorization
-```
+Explore the tools for protecting your application.
-Handle login, permissions, and access control with minimal configuration.
+
-[Authentication Guide →](https://book.cakephp.org/authentication/) • [Authorization Guide →](https://book.cakephp.org/authorization/)
-:::
+
-::: details 🌐 REST API Support
-Build APIs with automatic content type negotiation:
+Testing
-```php
-// Automatically serves JSON/XML based on Accept header
-public function index()
-{
- $articles = $this->Articles->find('all');
- $this->set('articles', $articles);
- $this->viewBuilder()->setOption('serialize', ['articles']);
-}
-```
+Build confidence with unit tests and integration tests.
-Supports JSON, XML, and custom formats with minimal code.
+
-[Learn more about REST →](development/rest)
-:::
+
-::: details 📦 Database Migrations
-Version control your database schema:
+Deployment
-```bash
-bin/cake bake migration CreateArticles
-bin/cake migrations migrate
-```
+Get your application ready for production.
-Keep your database changes in sync across development, staging, and production.
+
-[Learn more about Migrations →](https://book.cakephp.org/migrations/)
-:::
-
-## What Makes CakePHP Special?
-
-::: code-group
+
-```php [Convention Over Configuration]
-
-// No configuration needed! CakePHP automatically knows:
-// - ArticlesController uses ArticlesTable
-// - ArticlesTable uses 'articles' database table
-// - Primary key is 'id'
-// - Foreign keys end in '_id'
-// - Templates are in templates/Articles/
+[All topics →](topics)
-class ArticlesController extends AppController
-{
- // That's it! Table is auto-loaded
- public function index(): void
- {
- $articles = $this->Articles->find('all');
- $this->set(compact('articles'));
- }
-}
-```
+[API reference ↗](https://api.cakephp.org/)
-```php [Powerful ORM]
-Articles->find()
- ->contain(['Users', 'Comments'])
- ->matching('Tags', function ($q) {
- return $q->where(['Tags.name IN' => ['PHP', 'CakePHP']]);
- })
- ->where(['Articles.published' => true])
- ->orderBy(['Articles.view_count' => 'DESC'])
- ->limit(10);
-```
+
-```php [Built-in Security]
-
-// Automatic protection against common vulnerabilities:
-// ✓ SQL Injection (parameterized queries)
-// ✓ CSRF attacks (token validation)
-// ✓ XSS (auto-escaping in templates)
-// ✓ Mass assignment (protected fields)
+## Get Help
-$article = $this->Articles->newEntity($data);
-// Only patchable fields can be set
-```
+You don't have to figure it all out on your own. Find support or help improve the Cookbook.
-```bash [Code Generation]
-# Generate complete CRUD in seconds
-bin/cake bake all Articles
+
-# Creates:
-# ✓ Model (Table + Entity)
-# ✓ Controller (with all actions)
-# ✓ Templates (index, view, add, edit)
-# ✓ Tests (full coverage)
-```
+[Find help →](intro/where-to-get-help)
-:::
+[Community forum ↗](https://discourse.cakephp.org/)
-
+[Contribute →](contributing)
-
-
-
Ready to Build Something Amazing?
-
-**Start your CakePHP journey today and join thousands of developers building modern web applications.**
-
-
- Get Started →
- •
- Join Community
- •
- View Examples
-
-
diff --git a/docs/en/quickstart.md b/docs/en/quickstart.md
index 56b9d02e2a..b76e56e370 100644
--- a/docs/en/quickstart.md
+++ b/docs/en/quickstart.md
@@ -84,4 +84,6 @@ Dive deeper into CakePHP's powerful features:
### Get Help & Connect
-
+- [Find help](intro/where-to-get-help) - Places to ask questions and get support
+- [Community forum](https://discourse.cakephp.org/) - Connect with other CakePHP developers
+- [Contribute to the Cookbook](contributing) - Help improve the documentation