# Project Structure

```
ajaxpress/
├── ajaxpress.php                  # Plugin entry point
│
├── includes/                      # PHP backend
│   ├── class-boot.php             # Bootstrap loader
│   ├── common/                    # Shared base classes
│   │   ├── abstract-class-base.php  # Singleton base class
│   │   └── class-options.php      # Settings management
│   ├── classes/                   # Frontend PHP classes
│   │   ├── class-enqueues.php     # Script/style enqueue
│   │   └── class-templates.php    # Template injection
│   ├── admin/                     # Admin PHP classes
│   │   ├── class-admin-enqueues.php  # Admin asset enqueue
│   │   ├── class-admin-hooks.php  # Menu, action links
│   │   ├── class-admin-rest.php   # REST API endpoints
│   │   └── class-deactivate-feedback.php  # Feedback modal
│   └── cloudflare/                # Cloudflare integration
│       ├── class-cloudflare-api.php   # API client
│       ├── class-cloudflare-cache.php # Cache operations
│       └── class-cloudflare-hooks.php # Auto-purge hooks
│
├── src/                           # JavaScript/CSS source
│   ├── admin/                     # Admin panel (Solid.js)
│   │   ├── index.jsx              # App entry point
│   │   ├── index.html             # Dev HTML template
│   │   ├── styles.css             # Tailwind entry
│   │   ├── vite.config.js         # Vite config
│   │   ├── tailwind.config.js     # Tailwind config
│   │   ├── deactivate.js          # Deactivation modal script
│   │   ├── components/            # Reusable UI components
│   │   │   ├── Button.jsx
│   │   │   ├── Switch.jsx
│   │   │   ├── ColorPicker.jsx
│   │   │   ├── CodeEditor.jsx
│   │   │   ├── Slider.jsx
│   │   │   ├── Select.jsx
│   │   │   ├── Text.jsx
│   │   │   ├── Textarea.jsx
│   │   │   ├── Spin.jsx
│   │   │   ├── Tooltip.jsx
│   │   │   ├── SegmentedControl.jsx
│   │   │   ├── NewTag.jsx
│   │   │   └── Tour/
│   │   │       ├── Tour.jsx
│   │   │       ├── TourTooltip.jsx
│   │   │       └── TourSpotlight.jsx
│   │   ├── utility/               # State, API, helpers
│   │   │   ├── context.js         # Combined context provider
│   │   │   ├── context/           # Individual context providers
│   │   │   │   ├── SettingsContext.jsx
│   │   │   │   ├── LicenseContext.jsx
│   │   │   │   ├── AutosaveContext.jsx
│   │   │   │   ├── ModalContext.jsx
│   │   │   │   └── TourContext.jsx
│   │   │   ├── stores/            # State stores
│   │   │   │   ├── settings.js
│   │   │   │   ├── license.js
│   │   │   │   ├── autosave.js
│   │   │   │   ├── modal.js
│   │   │   │   └── tour.js
│   │   │   ├── routes.jsx         # Route definitions
│   │   │   ├── api.js             # REST API client
│   │   │   └── helpers.js         # Utility functions
│   │   └── views/                 # Page components
│   │       ├── Layout.jsx         # Root layout
│   │       ├── Basic.jsx          # Basic settings
│   │       ├── Advanced.jsx       # Advanced settings
│   │       ├── Animations.jsx     # Animation config
│   │       ├── Cache.jsx          # Cache wrapper
│   │       ├── License.jsx        # License page
│   │       ├── Help.jsx           # Help/docs
│   │       ├── Preview.jsx        # Animation preview
│   │       ├── NotFound.jsx       # 404
│   │       ├── cache/
│   │       │   ├── CloudflareSetup.jsx
│   │       │   ├── CloudflareSection.jsx
│   │       │   └── CloudflareStatus.jsx
│   │       ├── pages/
│   │       │   ├── ProgressBar.jsx
│   │       │   └── Spinner.jsx
│   │       └── help/
│   │           ├── GettingStarted.jsx
│   │           ├── Troubleshooting.jsx
│   │           ├── Tutorials.jsx
│   │           ├── Changelog.jsx
│   │           ├── DevReference.jsx
│   │           └── Feedback.jsx
│   ├── frontend/                  # Public-facing JS
│   │   ├── index.js               # Entry point
│   │   ├── styles.css             # Tailwind entry
│   │   ├── vite.config.js         # Vite config
│   │   ├── tailwind.config.js     # Tailwind config
│   │   ├── features/
│   │   │   ├── iframe-container.js  # SPA navigation engine
│   │   │   └── license.js        # License validation
│   │   └── utils/
│   │       ├── utils.js           # Event system, tracking
│   │       └── modal.js           # Modal/toast utilities
│   └── sass/                      # SCSS source
│       ├── admin.scss
│       ├── frontend.scss
│       └── components/
│           ├── _animations.scss
│           ├── _progressbar.scss
│           ├── _loader.scss
│           ├── _accessibility.scss
│           └── _effects.scss
│
├── public/                        # Compiled assets
│   ├── js/
│   │   ├── admin.min.js           # Admin bundle
│   │   ├── admin.min.js.map       # Admin source map
│   │   ├── ajaxpress.min.js       # Frontend bundle
│   │   ├── ajaxpress.min.js.map   # Frontend source map
│   │   └── deactivate.min.js      # Deactivation script
│   ├── css/
│   │   ├── admin.min.css          # Admin styles
│   │   ├── ajaxpress.min.css      # Frontend styles
│   │   └── blank.css              # Icon stylesheet
│   └── images/
│       ├── logo.gif               # Plugin logo
│       └── loading/               # Loader images
│
├── templates/                     # PHP templates
│   ├── progressbar.php            # Progress bar markup
│   └── loader.php                 # Spinner markup
│
├── doc/                           # Documentation (this folder)
│
├── package.json                   # NPM config
├── phpcs.xml                      # PHP CodeSniffer config
├── pak.yml                        # Deployment packaging config
├── readme.txt                     # WordPress.org readme
├── changelog.txt                  # Version changelog
└── .gitignore                     # Git ignore rules
```

## Key Directories

### `includes/` -- PHP Backend

All server-side logic. Organized by scope:
- `common/` -- Base classes used everywhere
- `classes/` -- Frontend-specific classes
- `admin/` -- Admin-specific classes
- `cloudflare/` -- Cloudflare integration (standalone subsystem)

### `src/` -- JavaScript/CSS Source

Source files compiled by Vite. Never deployed directly -- only the compiled output in `public/` is deployed.

### `public/` -- Compiled Assets

Build output served to browsers. Generated from `src/` -- do not edit directly.

### `templates/` -- PHP Templates

Markup templates loaded by PHP classes. Currently used for loader UI elements injected into the page footer.
