# Apex Admins — Development Roadmap

**Version:** 1.0  
**Date:** 2026-06-27  
**Estimated Duration:** 18–20 weeks

---

## Phase 0: Planning ✅
- [x] FRD, architecture, schema, design system
- [x] Provisional sitemap approved
- [x] Doc folder created

---

## Phase 1: Foundation (Week 1–2)

| Task | Owner | Deps |
|------|-------|------|
| Laravel 13 install + Vite + Tailwind 4 | Dev | — |
| Alpine.js, GSAP, Swiper npm packages | Dev | Laravel |
| MySQL database + .env configuration | Dev | — |
| Redis cache + queue config | Dev | — |
| Module autoloading scaffold (all modules) | Dev | Laravel |
| S3-ready filesystem disks | Dev | Laravel |
| Pest + Pint + Larastan setup | Dev | Laravel |
| Admin auth (login, logout, password reset) | Dev | Users module |
| Base `.htaccess` → public redirect | Dev | — |

**Exit criteria:** `php artisan migrate` runs, admin login works, Vite builds.

---

## Phase 2: Core Platform (Week 2–4)

| Task | Deps |
|------|------|
| RBAC migrations + models + seeders | Phase 1 |
| Permission middleware | RBAC |
| Global Settings module (all groups) | Phase 1 |
| SettingsService + public cache | Settings |
| Theme CSS variable injection | Settings |
| Admin layout shell + dashboard skeleton | Phase 1 |
| Activity log | Phase 1 |
| Menus module + menu builder | Phase 1 |
| Redirects module + middleware | Phase 1 |

**Exit criteria:** Super Admin can edit settings, menus appear in admin.

---

## Phase 3: Media Library (Week 4–5)

| Task | Deps |
|------|------|
| media_folders + media migrations | Phase 1 |
| Upload controller (drag-drop, multi) | Media |
| Folder CRUD | Media |
| Metadata fields on media | Media |
| OptimizeMediaJob (WebP/AVIF) | Queue |
| Media picker modal component | Media + Admin |
| mediables usage tracking | Media |

**Exit criteria:** Upload image → WebP/AVIF generated → selectable in picker.

---

## Phase 4: SEO Engine (Week 5–7)

| Task | Deps |
|------|------|
| seo_meta polymorphic migration | Phase 1 |
| SeoMetaResolver service | SEO |
| SchemaBuilder (all types) | SEO |
| SitemapService + index + child sitemaps | SEO |
| RobotsController + admin editor | Settings |
| SeoAuditEngine (all parameters) | SEO |
| RunSeoAuditJob | Queue |
| Admin SEO panel component | Admin |
| x-breadcrumbs + JSON-LD | SEO |

**Exit criteria:** Sitemap accessible, audit score on page save.

---

## Phase 5: Content Admin (Week 7–10)

| Task | Deps |
|------|------|
| Pages + section builder | Phase 2, 4 |
| Blog CRUD | Phase 2, 4 |
| Services + categories | Phase 2, 4 |
| Hire roles | Services |
| Industries | Phase 2, 4 |
| Locations (Australia seed) | Phase 2, 4 |
| Testimonials | Media |
| Case studies | Media, Industries |
| Careers + applications | Media |
| Academy courses + lessons | Phase 2, 4 |

**Exit criteria:** All content types CRUD in admin with SEO panel.

---

## Phase 6: Forms & CRM (Week 10–11)

| Task | Deps |
|------|------|
| Form builder admin | Phase 2 |
| Form fields + multi-step | Forms |
| Public form submission | Forms |
| SendFormNotificationJob | Queue |
| Leads pipeline (kanban) | Forms |
| Calendly embed + webhook | API |
| Lead magnets gated flow | Forms |

**Exit criteria:** Contact form creates lead + sends email.

---

## Phase 7: Public Frontend (Week 11–13)

| Task | Deps |
|------|------|
| Design tokens in Tailwind config | Settings |
| Layout components (header, footer) | Menus, Settings |
| UI primitives | Design system |
| Section components (all) | Component library |
| GSAP + Swiper init | JS |
| Menu-driven navigation | Menus |

**Exit criteria:** Component storybook-style test page renders all blocks.

---

## Phase 8: Public Pages (Week 13–16)

| Task | Deps |
|------|------|
| Homepage (12 sections) | Phase 7, 5 |
| About, Contact, Services hub | Phase 7 |
| 14 service pages | Phase 5, 7 |
| Hire hub + 14 hire pages | Phase 5, 7 |
| Industries hub + 10 pages | Phase 5, 7 |
| Locations hub | Phase 5, 7 |
| Case studies index + detail | Phase 5, 7 |
| Blog index + post | Phase 5, 7 |
| Careers hub + detail | Phase 5, 7 |
| Academy hub + course + lesson | Phase 5, 7 |
| Legal pages | Phase 5 |
| 404/500 pages | Phase 7 |

**Exit criteria:** All ~62 URLs return 200 with content.

---

## Phase 9: CRO & Analytics (Week 16–17)

| Task | Deps |
|------|------|
| Sticky CTA | Settings |
| Floating contact button | Settings |
| Exit intent popup | Settings, Alpine |
| Multi-step progress bars | Forms |
| Analytics event API + JS tracker | Analytics |
| Admin analytics dashboard | Analytics |

**Exit criteria:** Events visible in admin after page interaction.

---

## Phase 10: Performance & A11y (Week 17–18)

| Task | Deps |
|------|------|
| Critical CSS / font-display swap | Phase 7 |
| Picture element WebP/AVIF | Media |
| Lazy loading audit | Phase 8 |
| Redis full-page cache | Redis |
| Query optimization | All |
| WCAG 2.2 AA fixes | Phase 8 |
| Lighthouse audit + fixes | All |

**Exit criteria:** Homepage Desktop 99+, Mobile 95+, A11y 100.

---

## Phase 11: Launch (Week 18–20)

| Task | Deps |
|------|------|
| Cross-browser QA | Phase 8–10 |
| Security review | All |
| Database seeders (production content) | Phase 5 |
| Production deploy + SSL | Infra |
| Queue worker + scheduler cron | Infra |
| GSC sitemap submit | SEO |
| Monitoring setup | Launch |

**Exit criteria:** Production site live, sitemap submitted.

---

## Phase 12: Backlog (Post-Launch)

- City location pages via admin
- Meilisearch upgrade
- A/B testing CTAs
- Advanced ATS pipeline
- Client portal

---

## Dependency Graph

```
Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 → Phase 8
                ↓                              ↓
              Phase 7 ──────────────────────────┘
                ↓
         Phase 6 → Phase 9 → Phase 10 → Phase 11
```

---

## Risk Register

| Risk | Mitigation |
|------|------------|
| SEO audit scope | Incremental parameter rollout |
| Content volume | Seeders + templates |
| Performance vs animations | Reduced-motion, lazy GSAP |
