Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Webverse Creation — Full-Service Digital Agency Platform

Project Context & Origin

This project is a Laravel 11 full-stack web application being built as the Webverse Creation platform — an all-in-one digital solutions agency website based in Vapi, Gujarat, India. The codebase was originally a fire safety business template and is being systematically converted.

Webverse Creation is a full-service digital agency offering: Web Design & Development, Mobile App Development, Digital Marketing & SEO, Cybersecurity Solutions, UI/UX Design, E-commerce & Brand Identity, Social Media Marketing, and Business Automation.


Tech Stack

Layer Technology
Framework Laravel 11.31+ (PHP 8.4)
Frontend Livewire 3.5, Alpine.js 3, Tailwind CSS 3/4, Vite 6
Admin Panel Filament 3.2 (full admin CMS)
Database PostgreSQL 18.2
Cache / Sessions / Queue Redis 8.0 (AOF, 256MB, LRU eviction)
Web Server Nginx 1.27-alpine (reverse proxy)
Containerization Docker Compose (custom, 7 services)
Component Library Preline UI
SEO Custom comprehensive seo_meta system (40+ fields) + ralphjsmit/laravel-seo (legacy)
Site Settings Custom SiteSetting model (JSON key-value groups, Redis-cached)
Activity Logging spatie/laravel-activitylog
Newsletter spatie/laravel-newsletter
Image Processing Intervention Image 3.0
Geo/Location stevebauman/location
Minification fahlisaputra/laravel-minify
Analytics/Trends flowframe/laravel-trend
Notes tomatophp/filament-notes
Logs Viewer saade/filament-laravel-log
Testing Pest 3.7
Dev Tools Laravel Pail, Laravel Pint, Makefile (20+ commands)
Build Vite 6 + PostCSS + Tailwind

Project Architecture

Directory Structure

├── app/
│   ├── Console/Commands/        # Artisan custom commands
│   ├── Filament/                # Admin panel (Filament 3)
│   │   ├── Pages/Dashboard.php  # Custom admin dashboard
│   │   ├── Resources/           # 18 Filament resources (CRUD for all entities)
│   │   └── Widgets/             # InquiryChart, Logs, VisitOverview
│   ├── Http/
│   │   ├── Controllers/         # DatabaseBackup, Sitemap, Visit controllers
│   │   └── Middleware/
│   ├── Livewire/                # 18+ Livewire components (full-page + partials)
│   │   ├── Homepage/            # Homepage sub-components
│   │   ├── Layouts/             # Layout components
│   │   └── Partials/            # Shared partials
│   ├── Models/                  # 29 Eloquent models
│   ├── Providers/
│   ├── Services/                # Service layer (e.g., OgImageService)
│   ├── Support/
│   └── Traits/                  # HasStructuredData, etc.
├── config/                      # 16 config files
├── database/
│   ├── migrations/              # 40+ migrations
│   ├── factories/
│   └── seeders/
├── resources/
│   ├── css/                     # Tailwind entry
│   ├── js/                      # Alpine.js / app entry
│   └── views/
│       ├── components/          # Blade layouts & UI components
│       ├── livewire/            # 18+ Livewire view templates
│       └── filament/            # Filament customizations
├── routes/
│   └── web.php                  # All web routes
├── public/
│   ├── css/ js/ img/            # Static assets
│   ├── sitemap.xml              # Auto-generated sitemap
│   ├── robots.txt
│   └── llms.txt                 # LLM context file
├── index.html                   # Standalone landing page design (Webverse Creation)
└── tests/                       # Pest test suite

Models (29 + 8 new)

Model Description
User Admin authentication
Service Business services (name, slug, description, image, price, duration, meta)
SeoMeta NEW Comprehensive SEO storage (40+ fields, polymorphic + page_identifier)
SiteSetting NEW Key-value site settings with JSON data per group, Redis-cached
TickerItem NEW Homepage ticker strip items
PortfolioItem NEW Homepage portfolio/work grid items
PhilosophyPhase NEW Philosophy section phases (scroll-pinned left panel)
PhilosophyCard NEW Philosophy section cards (right panel)
SocialLink NEW Social media links with SVG icons
FooterColumn NEW Footer navigation columns with JSON links
Product Products with SKU, barcode, images, pricing, stock status
ProductCategory Product categorization
ProductFaq Per-product FAQ
Blog Blog posts with sections, how-to steps, structured data
BlogCategory Blog categorization
BlogFaq Per-blog FAQ
Category General categorization
City City-specific landing pages (local SEO)
CityFaq Per-city FAQ
Contact Contact form submissions
ContactPage Contact page CMS content
Faq Global FAQ entries
FeatureSection Feature/highlight sections
Home Homepage CMS content
Inquiry Customer inquiries
OgImage Open Graph image management
Page Generic CMS pages
PrivacyPolicy Privacy policy content
Tag Tagging system
About / AboutPage About page content
Visit Visitor tracking

Filament Admin Resources (14 + 6 new) & Pages (5 new)

Full CRUD admin panel for: AboutPage, BlogCategory, Blog, City, ContactPage, FAQ, FeatureSection, Inquiry, OgImage, PrivacyPolicy, ProductCategory, Product, Service, Visit.

New Filament Resources: TickerItem, PortfolioItem, PhilosophyPhase, PhilosophyCard, SocialLink, FooterColumn.

New Filament Pages: ManageBrandSettings, ManageContactSettings, ManageHeroSection, ManageCtaSection, ManageHomepageSeo.

Widgets: InquiryChart, Logs viewer, VisitOverview dashboard.

Livewire Pages & Components

Component Route Description
HomePage / Main homepage
BlogsPage /blogs Blog listing
BlogDetail /blogs/{slug} Single blog post
ServicesPage /services Services listing
ServiceDetail /services/{slug} Single service
ProductsPage /products Products listing
ProductDetailPage /product/{slug} Single product
ProductCategoryPage /product-categories/{slug} Category filtered products
ContactUsPage /contact-us Contact form
CityPage /{slug} City-specific SEO pages (catch-all)
PrivacyPolicyPage /privacy-policy Privacy policy
FeatureSectionComponent Feature highlights
NewsletterSection Newsletter signup

Routes

GET  /                          → HomePage
GET  /blogs                     → BlogsPage
GET  /blogs/{slug}              → BlogDetail
GET  /services                  → ServicesPage
GET  /services/{slug}           → ServiceDetail
GET  /products                  → ProductsPage
GET  /product/{slug}            → ProductDetailPage
GET  /product-categories/{slug} → ProductCategoryPage
GET  /contact-us                → ContactUsPage
GET  /privacy-policy            → PrivacyPolicyPage
POST /track-visit               → VisitController
POST /database/download         → DatabaseBackupController (auth)
POST /sitemap/generate          → SitemapController (auth)
GET  /{slug}                    → CityPage (catch-all, last route)

Key Features

  • Full CMS Admin (Filament 3) — manage all content, pages, services, products, blogs, FAQs, cities
  • SEO Engine — structured data (JSON-LD), Open Graph, per-page SEO meta, sitemap generation
  • City-based Local SEO — dynamic city landing pages with city-specific FAQs
  • Activity Logging — all model changes tracked via Spatie Activity Log
  • Newsletter Integration — Spatie Newsletter (Mailchimp compatible)
  • Visit Tracking — custom visitor analytics with geo-location
  • Database Backup — one-click DB download from admin
  • Image Optimization — Intervention Image with configurable variants
  • Blog System — full blog with categories, FAQs, how-to schema, sections
  • Product Catalog — products with categories, SKUs, FAQs, images gallery

Current State

Phase 1: Infrastructure (COMPLETED)

  • Docker Compose — 7 services: PHP 8.4 FPM (Bookworm), Nginx 1.27-alpine, PostgreSQL 18.2, Redis 8.0-alpine, Node 22-alpine, Mailpit, Queue worker + Scheduler
  • PostgreSQL 18.2 — Migrated from MySQL. All migrations PG-compatible (->after() calls removed, enum noted as behavioral difference)
  • Redis 8.0 — Cache, sessions, queue all running on Redis with AOF persistence
  • Git — Initialized on main, active work on develop branch
  • Makefile — 20+ Docker shortcuts (make up, make dev, make shell, make db, make fresh, etc.)
  • Note: PG18 uses /var/lib/postgresql (not /var/lib/postgresql/data) for PGDATA

Phase 2: Branding & Identity Conversion (COMPLETED)

All fire safety / Munshi references have been replaced with Webverse Creation branding across:

Config files:

  • config/app.php — Full business info rewrite (name, address, contact, 10 service types, social links, founding date)
  • config/seo.php — Homepage title updated
  • .env / .env.example — PG + Redis config, Webverse branding

Livewire Components (8 files):

  • HomePage.php, BlogsPage.php, ServicesPage.php, ServiceDetail.php, CityPage.php, ProductsPage.php, ProductCategoryPage.php, ProductDetailPage.php

Models (11 files):

  • Blog.php, Product.php, City.php, Tag.php, Home.php, About.php, Service.php, Category.php, Page.php, Contact.php, ContactPage.php

Filament Resources (2 files):

  • FeatureSectionResource.php, CityResource.php

Blade Templates (7 files):

  • feature-section.blade.php, 404.blade.php, newsletter-section.blade.php, blog-detail.blade.php, city-page.blade.php, blogs-page.blade.php, a-c-section.blade.php

Public Files:

  • robots.txt — Sitemap URL → webverse.in
  • llms.txt — Complete rewrite for Webverse
  • site.webmanifest — Name, description, theme colors updated

Migration Compatibility:

  • Removed 11 ->after() calls (MySQL-only column positioning, silently ignored on PG)
  • 5 ->enum() columns work on PG but behave differently for ALTER operations
  • unsigned*() types in jobs migration handled by Laravel's grammar layer

Phase 2b: SEO System, Homepage Architecture & Admin-Driven Content (COMPLETED)

Comprehensive SEO System (seo_meta table — 40+ fields):

  • Polymorphic (seoable_type / seoable_id) + page_identifier for non-model pages
  • Fields: basic meta (title, description, keywords, canonical), Open Graph (title, desc, image, type, url, site_name, locale, dimensions), Twitter Card (card type, site, creator, title, desc, image), Article meta (author, section, published/modified times, tags), Schema.org (type + custom JSON-LD), Robots (full string + individual toggles + snippet controls), Geo (region, placename, position), Sitemap (include, changefreq, priority), Advanced (hreflang JSON, custom meta tags JSON, custom head HTML)
  • SeoMeta model with Redis-cached static helpers (forPage(), setForPage())
  • HasSeoMeta trait — added to all 11 existing models + PortfolioItem
  • SeoMetaForm — reusable 9-tab Filament form component
  • <x-seo-head> Blade component — renders all meta tags from a SeoMeta instance

Site Settings System:

  • site_settings table with group (unique string) + data (JSON) per group
  • SiteSetting model with static get(), set(), merge() — all Redis-cached
  • Convenience accessors: ::brand(), ::contact(), ::hero(), ::cta(), ::whatsapp()
  • Filament pages: ManageBrandSettings, ManageContactSettings, ManageHeroSection, ManageCtaSection, ManageHomepageSeo

Homepage Architecture (ported from index.html):

  • New webverse.blade.php layout — dark theme, Cormorant Garamond + Jost fonts, CSS custom properties, loader, custom cursor, WhatsApp FAB, smooth scroll wrapper
  • CSS extracted to public/css/webverse.css (2216 lines)
  • JS extracted to public/js/webverse.js (1485 lines) — all vanilla, zero dependencies
  • 8 Blade partials in resources/views/partials/homepage/: hero, ticker, services, philosophy, work, faq, cta, contact, footer
  • HomePage.php Livewire component loads all data from Redis-cached models
  • 6 new database tables: ticker_items, portfolio_items, philosophy_phases, philosophy_cards, social_links, footer_columns
  • 6 new Filament resources for repeatable homepage items
  • Services table extended with short_description, icon_svg, sort_order, is_active

Still in seeders (Phase 3 work): ProductPpeSeeder, ProductConsumablesSeeder, ProductCategorySeeder contain old domain seed data — will be replaced when new content is seeded.

Target Identity: Webverse Creation

From the index.html landing page design:

  • Brand: Webverse / Webverse Creation
  • Domain: webverse.in
  • Tagline: "Everything Digital. One Agency."
  • Location: Vapi, Gujarat, India (396191)
  • Email: webverse.creation@gmail.com
  • Services: Web Design & Development, Mobile App Development, Digital Marketing & SEO, Cybersecurity Solutions, UI/UX Design, E-commerce & Brand Identity, Social Media Marketing, Business Automation
  • Design Language: Dark theme (#06080f), teal (#2dd4bf) + indigo (#818cf8) accents, Cormorant Garamond + Jost fonts, glass-morphism UI, cinematic scroll animations
  • Stats: 50+ projects, 95% retention, 2yr agency
  • WhatsApp: +91 6356929824

Infrastructure

Docker Compose (7 Services)

Service Image Ports Notes
app Custom PHP 8.4 FPM 9000 Extensions: pdo_pgsql, redis, gd (avif/webp), intl, bcmath, opcache+JIT, pcntl, exif
nginx nginx:1.27-alpine 80 Reverse proxy, Docker DNS resolver, variable-based Vite HMR upstream
postgres postgres:18.2-bookworm 5432 PGDATA: /var/lib/postgresql, named volume
redis redis:8.0-alpine 6379 AOF persistence, 256MB max, allkeys-lru
node node:22-alpine 5173 Vite HMR dev server (dev profile only)
mailpit axllent/mailpit 8025/1025 Email testing (dev profile only)
queue Same as app php artisan queue:work redis
scheduler Same as app php artisan schedule:work

Key Files

  • docker-compose.yml — Service definitions
  • docker/php/Dockerfile — Multi-stage PHP 8.4 build
  • docker/nginx/default.conf — Nginx config with Vite HMR proxy
  • docker/php/entrypoint.sh — Auto setup (composer, migrate, cache)
  • docker/php/php-local.ini — PHP dev settings
  • docker/php/opcache.ini — OPcache + JIT settings
  • Makefile — 20+ Docker shortcuts

Git Strategy

  • main — production-ready
  • develop — active development
  • Feature branches as needed

Environment Setup

Prerequisites

  • Docker & Docker Compose v2
  • Git

Quick Start (Docker)

git clone <repo-url> && cd Webverse
cp .env.example .env
make up          # Start all services
make shell       # Enter PHP container
# Inside container: composer install, migrate, etc. are auto-run by entrypoint.sh
make node-dev    # Start Vite HMR (optional, for frontend dev)

Makefile Commands

make up          # Start containers (detached)
make down        # Stop containers
make dev         # Start with dev profile (Vite HMR + Mailpit)
make shell       # Enter PHP container shell
make db          # Enter PostgreSQL shell
make redis       # Enter Redis CLI
make artisan     # Run artisan commands (e.g., make artisan CMD="migrate")
make migrate     # Run migrations
make fresh       # Fresh migrate + seed
make seed        # Run seeders
make clear       # Clear all caches
make cache       # Cache config + routes + views
make test        # Run Pest tests
make nuke        # Destroy everything (volumes + orphans)
make status      # Show container status

Quick Start (Without Docker)

composer install
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan storage:link
npm run dev
composer run dev   # Starts server, queue, logs, and Vite concurrently

Development Commands

# Dev server (concurrent: serve + queue + pail + vite)
composer run dev

# Build assets for production
npm run build

# Run tests
./vendor/bin/pest

# Code style
./vendor/bin/pint

# Generate sitemap
php artisan sitemap:generate

Conversion Progress

Phase 1: Infrastructure & DevOps — DONE

  • Initialize Git repository with proper .gitignore
  • Create Docker setup (docker-compose.yml, Dockerfile, nginx config)
  • Switch database from MySQL to PostgreSQL 18.2
  • Add Redis configuration (cache, session, queue drivers)
  • Create Makefile with 20+ shortcuts
  • Fix nginx crash-loop (Vite HMR proxy + DNS resolver)

Phase 2: Branding & Identity Conversion — DONE

  • Rebrand: config/app.php — full business info rewrite
  • Rebrand: config/seo.php — homepage title
  • Rebrand: .env / .env.example — PG + Redis + Webverse
  • Rebrand: All 8 Livewire component SEO metadata
  • Rebrand: All 11 Model SEO fallbacks + schema data
  • Rebrand: 2 Filament admin resource helper texts
  • Rebrand: 7 Blade template view files
  • Rebrand: robots.txt, llms.txt, site.webmanifest
  • Fix: MySQL → PG migration compatibility (11 ->after() calls removed)

Phase 3: Content & Data Seeding — TODO

  • Replace fire safety product seeders with digital agency services
  • Seed Webverse services (10 service types from config)
  • Create digital agency blog content seeds
  • Update FAQ seeds with digital agency FAQs (from index.html)
  • Seed city pages with relevant Gujarat cities

Phase 4: Frontend Design System — TODO

  • Import index.html design into Laravel Blade layout
  • Update fonts (Cormorant Garamond + Jost) in Blade/Tailwind
  • Update color scheme (dark #06080f, teal/indigo accents)
  • Implement glass-morphism components
  • Update WhatsApp FAB and contact details
  • Update OG images and branding assets

Phase 5: Feature Enhancements — TODO

  • Configure newsletter for Webverse
  • Update sitemap generation
  • Portfolio/case studies section
  • Service request/quote system
  • Client portal groundwork

Phase 6: Testing & Deployment — TODO

  • Write Pest tests for all rebranded pages
  • Production Docker config (SSL, optimization)
  • CI/CD pipeline
  • Performance audit

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages