# SearchJet Development Roadmap

## Phase 1: MVP Completion
- [x] Core plugin structure with namespace autoloading
- [x] Admin settings page (API Key + Project ID)
- [x] Post indexing on save
- [x] Admin warning if API key is missing
- [x] Composer setup with PSR-4
- [x] REST API endpoint for search (Laravel backend)
- [x] Meilisearch integration with dynamic index name per domain
- [x] JavaScript-based front-end instant search with dropdown UI
- [x] Option to set custom Meilisearch host and API key in admin
- [x] Option to insert instant search into WordPress navigation menus
- [x] Hook into post deletion to remove from index
- [x] Reindex all content manually via admin
- [x] WooCommerce product indexing support
- [x] Custom post type inclusion settings
- [x] Basic front-end instant search shortcode/widget
- [x] Admin dashboard to display recent search logs and failures
- [x] Index post/page/WooCommerce products with error logging
- [x] Secure API key storage and validation
- [x] Handle missing or unreachable Meilisearch host gracefully
- [x] REST API route to trigger reindexing
- [x] Basic search query and API error logging for diagnostics


- [x] One-click onboarding flow: Redirect user to SearchJet Dashboard to auto-generate API key and return to settings
- [x] Batch/manual reindexing from admin UI
- [x] Deep integration with SearchJet analytics
- [x] Remote plan usage indicator and upgrade CTA (Implemented in version 1.0.11)
- [x] Auto-sync WordPress metadata (title, excerpt, language, etc.) (Implemented in version 1.0.11)

## Phase 2: Pro Features
- [ ] Faceted search for WooCommerce (in progress)
- [x] Search analytics dashboard (queries, no-result stats)
- [ ] Enable search form placement in menu via UI toggle
- [ ] Theme customizer integration for styling
- [ ] Add admin setting for “include search in menu” per location
- [ ] Scheduled reindexing (daily/hourly)
- [ ] Menu-level targeting (specific menus or locations)
- [ ] Floating search bar / sticky AJAX-powered search (similar to AJAX Search for WooCommerce plugin UI)


## Phase 2: Advanced Content Exclusions

> ✅ All public post types including WooCommerce are now indexable on the Free plan.
- [x] Exclude specific post types from search (now supports all public post types including WooCommerce on Free plan)
- [ ] Exclude individual posts, pages, or WooCommerce products
- [ ] Exclude Media Attachments or custom post types
- [ ] Option to disable title search
- [ ] Option to disable content search
- [ ] Option to disable excerpt search
- [ ] Exclude posts by category or taxonomy terms
- [ ] Exclude posts by custom fields or metadata
- [ ] Exclude out-of-stock WooCommerce products
- [ ] Exclude posts by author
- [x] Include posts by status
- [x] Exclude sticky posts
- [x] Exclude posts by comment count
- [x] Exclude posts by publish date (before/after)
- [x] Exclude password-protected posts
- [x] Exclude non-password-protected posts
- [x] Exclude by media/file/MIME type (e.g. images, PDFs)

## Phase 3: SaaS Integration
- [x] Laravel backend bootstrapped with API routes for project and usage management
- [ ] Authenticated API layer for plugin communication
- [ ] Billing integration planning (Freemius/Stripe staging)
- [ ] Stripe or Freemius billing
- [ ] Usage metering (documents, API calls)
- [ ] Multisite/subdomain indexing support
- [ ] Staging/production environment toggle

## Launch Readiness
- [ ] Finalize plugin branding and assets
- [ ] Setup landing page at searchjet.io
- [ ] Add documentation and setup guide
- [ ] Create promo/demo video
- [ ] WordPress.org submission (Free plugin tier)

## Version 1.0.8
- Added inline date and site filters to Search Analytics
- Fixed query logging for array values
- Improved API response display for top and zero-result queries
- Modernized the Filter button design
- Fixed Plugin namespace issue in activation error

## Version 1.0.11
- Added remote plan usage indicator and upgrade CTA in settings page.
- Added automatic sync for WordPress metadata (title, excerpt, language, etc.) to indexed content.
- Improved search API to return full product data (price, SKU, stock status, images, categories).
- Fixed indexing issues for posts with empty titles by skipping them.


- [ ] Create settings page to toggle search result features (thumbnails, price, rating, stock, category, etc.)
## Phase 2: Instant Search UI Enhancements
- [ ] Show average star ratings and review count
- [ ] Add stock status badge (In Stock / Out of Stock)
- [ ] Keyword highlighting in product title
- [ ] Show product category or brand below title
- [ ] Add "View All Results" CTA at the bottom of dropdown
- [ ] Fix text clipping for long product names
- [ ] Enable search by SKU, tags, and attributes
- [ ] Keyboard navigation in dropdown (↑ ↓ ⏎)
- [ ] Optional: Add to cart from search result item
- [ ] Mobile-first special search mode for better UX
- [ ] Details panels with extended information on hover
- [ ] Search history display (recent searches)
- [ ] Customizable minimum characters required to display suggestions
- [ ] Grouping search results by type (categories, products, etc.)
- [ ] Google Analytics integration for search tracking

## Phase 3: Advanced Features (Inspired by FiboSearch)
- [ ] Fuzzy search capabilities to handle minor typos
- [ ] Search in custom fields with ACF support
- [ ] Search in product attributes with filtering
- [ ] Brand search support (WooCommerce Brands, Perfect Brands, YITH Brands)
- [ ] Variation product SKU search
- [ ] Post and page inclusion in search results
- [ ] Synonym management for search terms
- [ ] Conditional exclusion of products based on rules
- [ ] One-click theme integration for popular WordPress themes

## Phase 3: SearchJet Connect Integration
- [ ] Integrate SearchJet Connect JavaScript library for enhanced frontend experience
- [ ] Support for CDN-based implementation (jsDelivr/unpkg)
- [ ] NPM package integration for theme developers
- [ ] Widget system implementation (searchBox, hits, pagination)
- [ ] Custom templating support for search results
- [ ] Advanced InstantSearch API with widget configuration
- [ ] Item transformation capabilities for search results
- [ ] Customizable UI components (autofocus, searchAsYouType, showReset, etc.)
- [ ] Developer documentation for SearchJet Connect integration
- [ ] Code examples for common implementation scenarios
