@extends('layouts.site')
@section('title', 'Website Editing & Hosting Guide | VIPO Granite Limited')
@section('description', 'Public instructions for maintaining the VIPO Granite website, editing website content and managing the self-hosted Laravel CMS.')
@section('robots', 'noindex,nofollow,noarchive,nosnippet')
@section('content')
This guide explains where the content lives, how authorised staff update it, and how to keep the website secure. It is public information: no account is needed to read this page. Editing the website still requires a staff account.Keep your VIPO website accurate, useful and beautifully presented.
The public website lives at vipogranite.com. Visitors can browse Products, Services, the Stone Gallery, Projects, Blogs and the quotation form. The editing dashboard is at /admin/login.
Administrator: has full CMS access, can create or revoke editor accounts, view quotation enquiries and private customer attachments, and configure internal inquiry notifications.
Editor: can edit public page text/images, layout visibility, navigation, typography, products, services, projects, blogs, gallery, testimonials and public contact details. Editors do not receive access to private quotations, exports, staff accounts or notification-recipient settings.
Administrators can add individual accounts in Staff editors. Use a different account for every person; require a strong unique password. Revoke access when a colleague leaves the business. Login is never required to open this handbook.
From Dashboard → Edit website pages, open the page you want. The editor provides a field for each registered headline, paragraph, button label, image, explanatory note and optional section on that page. Edit Homepage to update the hero, product introduction, story, services introduction, gallery preview, planning steps, FAQs, testimonial headings and the three-article blog strip.
The same list provides Products overview, Gallery, Services overview, Projects, About, Blogs overview, Contact, Request a Quote, Privacy notice, Website terms, plus Shared header, footer & CTA. Shared fields change copy displayed across multiple pages. Product/service/article detail text is managed separately through its collection editor.
Images: JPG, PNG or WebP, up to 8 MB for page illustrations. Prefer your own properly licensed photographs and descriptive text. Page-editor images replace the visible photo; the former uploaded file is not automatically destroyed.
Open Site-wide typography to select heading, body and menu font families, heading/body weights, large hero headline size, section heading size, body size, and menu lettering. Supported choices include Manrope, DM Sans, Sintony, Plus Jakarta Sans, Urbanist and Inter. The provided design defaults to Manrope headings and DM Sans body text.
Available sizes: hero headline 40–96px, section headings 28–72px, body 15–21px and menu 15–21px. The browser adapts headings to narrower screens. Save and confirm, then check the home page and dropdown navigation at desktop and phone width. Avoid very large menu type where it crowds the layout.
The Menu & typography page offers focused controls for menu style and weight; it changes the same menu settings.
For Products select a stone type such as granite, marble or terrazzo; for Services select a use such as worktops, flooring, stairs, cladding or memorials. Choose Add new or edit an existing entry. Enter a clear title, URL slug, category, short summary, longer description, key characteristics, common applications, selection advice, cover image and unique SEO title and description. Set Published to show the page, or Draft to hide it.
The detail pages use these fields to build product/service-specific explanatory sections, selection tips and a relevant quotation CTA. Existing public links are based on slugs; when changing a slug, arrange a redirect from the former URL before publishing. Use the public Gallery for extra product photographs and videos.
Before editing inventory claims, confirm the product, finish, dimensions and stock with VIPO staff. Do not copy competitors' wording or present illustration photos as completed projects.
Videos are shown with playback controls and are not autoplayed. If uploads fail, check your hosting PHP upload_max_filesize, post_max_size, application upload limits and server request-body limit. Removing a gallery entry deletes its catalog record, but the underlying media file is retained; keep backups before doing larger cleanups.
Projects: Add an actual completed VIPO job only after verifying the customer, location and approved photographs. Project entries can be kept in Draft until written details and permissions are ready. The public Projects page separately labels illustrative inspiration imagery; do not convert those into false customer claims.
Blogs: Write useful, original articles about granite, marble, terrazzo, stone selection, maintenance or project planning. Add a meaningful slug, cover photograph and unique SEO metadata. The homepage automatically displays up to three published articles immediately before the final contact CTA. More articles remain accessible from /blog.
Open Testimonials → Add real testimonial. Enter a real client's name, context and their exact approved comment, then confirm you have permission to publish. Choose Published when ready. The homepage displays the first approved, published testimonial immediately; it does not wait for seven. Cards automatically arrange into a responsive grid as you add more.
Draft reviews and reviews without confirmed publication consent stay hidden. Never invent customer quotes, project histories, star ratings or client identities.
Visitors submit requests through /quote, including contact details, material interest, project requirements and optionally a JPG/PNG/PDF reference file. The application validates submissions and stores enquiry attachments privately. Only administrators can view them from Quote inquiries; editors cannot see this customer information.
Administrators can review requests, change internal progress (New, Contacted, Quoted or Closed) and export CSV. Optional staff notifications require valid mail settings in your server's .env and an internal destination configured by an administrator. Do not publish private enquiry details as portfolio content without permission.
Write a distinct, accurate meta title and description for each public page, product, service and article. Use Edit website pages → the selected page → Search appearance for overview pages. For individual product, service and article detail pages use their Search appearance fields in the collection editor. The built-in title/description are used if those values are blank; a human-written alternative is preferable. The page editor warns if the same SEO value is reused across overview pages.
Public pages have canonical links, social preview metadata and semantic headings. The sitemap is available at /sitemap.xml; it lists public listing pages and published collection detail pages, not admin screens or this documentation.
This `/docs` page is deliberately not indexable. It sends a noindex,nofollow,noarchive,nosnippet robots meta tag and X-Robots-Tag header, and is excluded from XML sitemap. Search engines ultimately decide how quickly to process these instructions. Do not block `/docs` in robots.txt, as crawling may be needed to observe the noindex directive.
Existing `/materials`, `/applications` and `/journal` URLs redirect to `/products`, `/services` and `/blog`. After deployment, add your site to your own Google Search Console account and inspect indexed pages and errors.
Upload only files your business owns or is licensed to use; receive consent for identifiable customer work and reviews. Give informative, human-readable titles and alternative text. Keep public images reasonably compressed; 50 MB videos may be slow on mobile data. The CMS accepts only permitted image and video formats for public gallery items. Quote attachments remain in private storage.
Public gallery media requires the Laravel symbolic link created with php artisan storage:link. Back up both the database and storage/app. Removing or replacing content should never be your only way of clearing copies of important originals.
Requirements: PHP 8.4.1+, Composer, an SQLite or MySQL database and a hosting account that lets the domain point to the application's public/ folder. The ZIP ships with compiled front-end files; you do not need Node.js on the production server. Never set the document root to the Laravel repository root.
.env, the database and storage/app..env and uploads.composer install --no-dev --optimize-autoloader, php artisan optimize:clear and php artisan migrate --force.php artisan db:seed --class=VipoNavigationSeeder --force to add any new menu defaults while preserving existing custom labels.php artisan storage:link, php artisan optimize and verify HTTPS. On upgrades, run php artisan vipo:secure-gallery after backing up uploads.For first installation only, copy .env.example to .env, configure the database, run php artisan key:generate, php artisan migrate --seed and create an admin securely with php artisan vipo:admin your@email.example. Do not publish a default password. Set APP_ENV=production, APP_DEBUG=false and APP_URL=https://vipogranite.com on the server.
The CMS prompts for confirmation when you save or delete content, change a page design, upload media or update publication state. Choosing Cancel keeps the current screen unchanged. If you edit a form and attempt to navigate away without saving, your browser warns you about unsaved work. These prompts are a safeguard, not a substitute for regular backups.
Use Draft for content you may want to reuse. Before a material deletion, take a database backup. Uploaded media can remain after its database entry is removed, and page-editor text fields support reverting to their original values. There is no automated database-wide undo. Ask the site administrator to restore a backup if a saved edit must be reversed.
Check that it is Published, publication consent is confirmed and the Homepage Testimonials section is Visible. One approved review is enough.
Check that media is Published, the public storage link exists, server storage is writable and the uploaded file is a supported format. Large video uploads may exceed web-server limits.
Check the Products or Services entries are Published. Also confirm their main navigation items are Visible in Menu & typography. Draft products and services do not appear in dropdowns.
Check PHP version, Composer dependencies, database connection, storage and cache directory permissions; inspect Laravel logs privately. Run php artisan optimize:clear after changing environment settings.
Confirm the update in the dialogue, check for validation errors, refresh the page and clear application/browser caches if necessary. Ensure you edited the correct page/entry and that the entry is Published.
Sign in as an administrator and look under Quote inquiries first; the request may have been stored even if SMTP failed. Verify production mail settings and alert destination.
Go to Dashboard → Products or Services, select an entry and choose Edit. Manage its title, URL slug, category, SEO metadata, cover image, introduction, description, characteristics, common uses, selection guidance, publishing status and listing priority. In Detail page display & layout, expand the groups to control headings, FAQs, photo notes, process steps, quotation text and buttons.
/path or a full https:// URL and set a custom line height.Images and videos assigned to a product in the Stone Gallery appear in its product detail page if the gallery section is enabled. Service pages can use the additional image sections for project-specific explanations. If you change a live URL slug, set a redirect from its former address before launch.
Open Dashboard → Edit website pages → Blogs overview. The Single blog group controls whether the CTA appears beneath every article, its eyebrow, headline, introduction, closing note, question, three choice labels and descriptions, and the main action label. These choices are shared across single blog articles; individual article titles and bodies are edited from Blogs.
Changing the choice adjusts the actual action link. If the browser blocks JavaScript, the main button still links to the quotation form. To change where the phone option goes, update the primary telephone number in Website settings.