Nexora Template Documentation
Everything you need to install, customize, and extend the Nexora AI SaaS & Agent Platform web template.
Introduction
Thank you for purchasing Nexora — a next-gen AI SaaS & Agent Platform web template. Nexora is built with semantic HTML5, modern CSS3 (custom properties / design tokens), and vanilla ES6+ JavaScript — no build tools or frameworks required.
This documentation covers everything from installation to deep customization. If you get stuck, jump to the Support section at the bottom of this page.
Nexora requires no server-side language or database to run as a marketing/landing site. All pages are static HTML files that can be hosted anywhere (Netlify, Vercel, GitHub Pages, Apache, Nginx, cPanel, etc.).
What's Included
- Homepage (index.html) — hero, stats, logo cloud, features, AI showcase tabs, steps, pricing preview, testimonials, FAQ, CTA
- Pricing Page (pricing.html) — monthly/yearly toggle and full feature comparison matrix
- AI Playground Demo (playground.html) — simulated chat / image / audio generator UI
- Blog Listing (blog.html) and Blog / Guide Single (blog-single.html)
- Contact Page (contact.html) — validated contact form (client-side only)
- Documentation (documentation.html) — this file
- Admin Dashboard (admin/dashboard.html) — stat cards, recent activity, plan usage overview
- Admin Settings (admin/settings.html) — pricing plan editor, AI API key fields, default AI model per tier
- Full RTL / Arabic language support with a live EN ⇄ عربي switch on every page
- Modular CSS (
css/style.css,css/rtl.css,css/admin.css) and JS (js/main.js,js/playground.js,js/i18n.js,js/admin.js) - Royalty-free image placeholders and SVG logo/favicon assets
Browser Support
Nexora has been tested and verified on the latest two versions of the following browsers:
| Browser | Status |
|---|---|
| Google Chrome | Fully Supported |
| Mozilla Firefox | Fully Supported |
| Apple Safari | Fully Supported |
| Microsoft Edge | Fully Supported |
The template is built mobile-first and is fully responsive from small mobile devices (320px) up to 4K desktop displays (2560px+).
Installation
Since Nexora is a pure HTML/CSS/JS template with no build step, installation is simple:
- Unzip the downloaded package. You'll find a
documentation/folder and the main template folder. - Upload the entire template folder contents to your web server via FTP, or drag-and-drop it into a static host (Netlify, Vercel, Cloudflare Pages, GitHub Pages).
- Open
index.htmlin your browser to preview locally — no local server is strictly required, though one is recommended for correct relative path behavior. - Replace placeholder content, images, and links with your own branding (see Logo & Branding).
Recommended for local development: serve the folder with any static server, e.g. npx serve . or the VS Code "Live Server" extension, to avoid browser CORS restrictions on local file:// paths.
Quick Start (Local Preview)
# Using Node.js "serve" package
npx serve .
# Or using Python 3
python3 -m http.server 8080
No .env files, API keys, or server credentials are bundled with this template. All AI interactions in the Playground are simulated client-side for demo purposes — see JS Hooks & API Integration to connect a real backend.
Folder Structure
The template follows a clean, flat structure for easy navigation:
Customizing Colors & Fonts
All colors, spacing, radii, and transitions are defined as CSS custom properties (variables) at the top of css/style.css inside the :root selector. Changing a single variable updates it across the entire site.
:root {
--bg-base: #0B0F19; /* Main dark background */
--accent-cyan: #22D3EE; /* Primary accent color */
--accent-purple: #A855F7; /* Secondary accent color */
--gradient-primary: linear-gradient(135deg, var(--accent-cyan) 0%, var(--accent-purple) 100%);
--font-heading: "Space Grotesk", "Inter", sans-serif;
--font-body: "Inter", sans-serif;
}
To change the typography, update the Google Fonts <link> tag in the <head> of each HTML file, then update the --font-heading / --font-body variables to match your new font family names.
Tip: Use a tool like coolors.co to generate an accessible dark-mode palette, then map the colors to the CSS variables above.
Replacing the Logo & Branding
The Nexora logo and favicon are lightweight inline SVG files located in images/logo.svg and images/favicon.svg. To replace them:
- Export your own logo as an SVG (preferred for crispness) or PNG file.
- Replace
images/logo.svgandimages/favicon.svgwith your files (keep the same filenames to avoid editing every page, or update every<img src>/<link rel="icon">reference). - Update the
alttext on every<img>tag referencing the logo to match your brand name for accessibility and SEO. - Update the
<title>andmeta descriptiontags in each HTML file's<head>.
<a href="index.html" class="brand" aria-label="Your Brand — Home">
<img src="images/logo.svg" alt="Your Brand logo" width="150" height="32">
</a>
Editing Sections & Content
Every page is composed of clearly commented HTML sections (e.g. <!-- ===== HERO SECTION ===== -->). To edit content:
- Locate the relevant section comment in the HTML file.
- Edit text directly between tags — headings use semantic
<h1>–<h6>tags, keep the hierarchy intact for SEO. - To duplicate a repeating component (e.g. a pricing card, feature card, FAQ item, testimonial slide), copy the entire block (from the opening to the matching closing tag) and paste it as a sibling, then edit its content.
- Icons use Font Awesome Free classes (e.g.
fa-solid fa-robot) — browse the free icon library and swap class names as needed.
RTL & Arabic Language Support (i18n)
Nexora ships with a complete, dependency-free bilingual engine (English / Arabic) and full Right-to-Left (RTL) layout support across every page, including the Admin Dashboard.
js/i18n.js— the translation dictionary and DOM-sync engine. Elements tagged withdata-i18n,data-i18n-html,data-i18n-placeholder, ordata-i18n-aria-labelare automatically translated when the language changes.css/rtl.css— loaded aftercss/style.csson every page. It contains only the[dir="rtl"]overrides needed for the handful of elements that use physical (left/right) CSS instead of logical/flexbox-driven layout — everything else mirrors automatically.- A language switch (EN / عربي) is built into the header navigation (desktop and mobile) and the Admin sidebar. The choice is saved to
localStorageunder the keynexora-langand can be deep-linked for QA with?lang=aror?lang=en. - A tiny inline script in every page's
<head>setslang/diron<html>before first paint to avoid a flash of incorrectly-aligned content (FOUC).
Adding or Editing a Translation
// 1. Add a unique key to BOTH the "en" and "ar" objects in js/i18n.js:
en: { "hero.ctaPrimary": "Start Free Trial" }
ar: { "hero.ctaPrimary": "ابدأ تجربتك المجانية" }
// 2. Tag the matching HTML element:
<a href="pricing.html" data-i18n="hero.ctaPrimary">Start Free Trial</a>
Scope note: core UI chrome (navigation, buttons, forms, headings, pricing, FAQ titles, admin panel) is fully translated out of the box. Long-form content (full blog article bodies, documentation body copy) intentionally stays in English in this template — translate it the same way by adding data-i18n attributes and dictionary entries for your own content. Code blocks, CLI snippets, and file-path "folder tree" displays intentionally stay left-to-right even in Arabic mode, matching standard developer-site conventions (GitHub, MDN, etc.).
To add a third language, add a new top-level key (e.g. "fr") to the NEXORA_I18N dictionary in js/i18n.js and extend the .lang-switch markup with an additional .lang-option button using data-lang="fr".
Admin Dashboard & Settings
Nexora includes a visually matching Admin Dashboard Suite at admin/dashboard.html and admin/settings.html, styled with css/admin.css and powered by js/admin.js.
This is a front-end-only template. There is no real authentication, database, or backend behind these pages. Before using them in production you MUST put admin/*.html behind real server-side authentication — never rely on client-side JavaScript to "protect" a page, since anyone can simply open the HTML file directly.
What's Included
- Dashboard — revenue, active users, API call count, and active-agent stat cards; a recent activity feed; a quick-actions panel; and a plan usage overview.
- Settings — a pricing plan & package-limit editor (price, credits, agents, team seats per tier), AI provider API key fields (OpenAI, Replicate, Anthropic, ElevenLabs) with a show/hide toggle, and a default AI model selector per pricing tier.
Connecting a Real Backend
Every form in admin/settings.html is wrapped with data-admin-form and already wired to js/admin.js's save/reset handlers, which currently only show a confirmation toast. Replace the placeholder logic with a real fetch() call:
// Inside js/admin.js — form submit handler
const formData = new FormData(form);
const payload = Object.fromEntries(formData.entries());
const res = await fetch("/api/admin/settings", {
method: "POST",
headers: { "Content-Type": "application/json" },
credentials: "include", // send auth session/cookie
body: JSON.stringify(payload)
});
API key security: never store real provider API keys (OpenAI, Replicate, Anthropic, etc.) in client-side JavaScript, cookies, or localStorage. Your backend should encrypt and store them server-side (e.g. AWS Secrets Manager, HashiCorp Vault, or an encrypted database column) and only ever return a masked preview (e.g. sk-••••1234) to the browser. Your application server — not the visitor's browser — should be the only thing that ever calls the real AI provider using the full key.
JavaScript Hooks & API Integration Guide
Nexora ships with vanilla JavaScript — no frameworks, no bundlers. The two key files are:
js/main.js— site-wide interactions (navigation, FAQ accordion, pricing toggle, testimonial slider, contact form validation).js/playground.js— the AI Playground demo logic (simulated chat responses).
Connecting a Real AI API to the Playground
The Playground's sendMessage() function currently calls a local getMockReply() helper. To connect a real backend or LLM API, replace the mock call with a fetch() request, for example:
// Inside js/playground.js — replace getMockReply(text) usage with:
async function fetchAIReply(userText) {
const response = await fetch("https://your-api-endpoint.com/v1/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message: userText })
});
const data = await response.json();
return data.reply;
}
Never expose private API keys (e.g. OpenAI secret keys) in client-side JavaScript. Always proxy third-party AI API calls through your own backend server to keep credentials secure.
Connecting the Contact Form
The contact form in contact.html performs client-side validation only (required fields, email format, checkbox consent) inside initContactForm() in js/main.js. To actually send emails, integrate a form backend such as Formspree, Netlify Forms, or your own API endpoint inside the form's submit event handler, replacing the demo success-banner logic with a real fetch() POST request.
Available Custom Data Attributes
| Attribute | Purpose |
|---|---|
data-animate | Marks an element for scroll-reveal animation |
data-count-to | Target number for the animated stats counter |
data-tab-group / data-tab-target | Powers the AI Showcase tab system |
data-pricing-switch | Monthly/Yearly pricing toggle switch |
data-testimonial-slider | Initializes the testimonial carousel |
data-contact-form | Enables client-side validation on a form |
Accessibility Notes
- Color contrast ratios meet WCAG 2.1 AA for body text and interactive elements against the dark background.
- All interactive controls (buttons, links, form fields, tabs, accordion) have visible
:focus-visibleoutlines. - Decorative icons use
aria-hidden="true"; meaningful icons/images include descriptivealtoraria-labeltext. - The FAQ accordion, tabs, and pricing switch use proper ARIA roles/states (
aria-expanded,role="tablist",aria-selected,role="switch",aria-checked). - A "Skip to main content" link is included at the top of every page for keyboard users.
- Animations respect the
prefers-reduced-motionmedia query.
Performance & SEO
- No JS frameworks or heavy libraries — only vanilla JS, Font Awesome, and Google Fonts are loaded externally.
- Images use
loading="lazy"and explicitwidth/heightattributes to prevent layout shift (CLS). - Animations use
transformandopacity(GPU-accelerated) rather than layout-triggering properties. - Each page has a unique, descriptive
<title>andmeta descriptionfor SEO. - Proper heading hierarchy (single
<h1>per page, logical<h2>–<h6>nesting). - Semantic HTML5 landmarks (
<header>,<nav>,<main>,<section>,<article>,<aside>,<footer>) used throughout for crawlability.
Credits & Licensing
Nexora uses the following third-party, free-for-commercial-use resources:
Font Awesome Free
Icon library — Free License (CC BY 4.0 / SIL OFL / MIT)Google Fonts — Inter & Space Grotesk
Typography (LTR) — SIL Open Font LicenseGoogle Fonts — Tajawal & Cairo
Typography (Arabic/RTL) — SIL Open Font LicenseStock Photography
Royalty-free / Creative Commons sourced preview imagesVanilla JavaScript (ES6+)
No external JS framework dependencyLicense
This template is distributed under the Envato Marketplace Regular / Extended License you purchased it under. Preview images used on the live demo are for demonstration purposes only — please replace them with your own licensed assets or properly licensed stock photography before deploying to production, unless your license/source explicitly permits reuse.
Changelog
Version 1.1.0 — RTL / Arabic + Admin Dashboard Update
- Full RTL (Right-to-Left) and Arabic language support (EN ⇄ عربي switch)
across every page, including the Admin Dashboard (js/i18n.js, css/rtl.css)
- New Admin Dashboard Suite: admin/dashboard.html (stat cards, activity feed,
plan usage) and admin/settings.html (pricing plan editor, AI API key
fields, default AI model per tier) — front-end only, documented hooks
- Tajawal & Cairo Arabic webfonts added alongside Inter & Space Grotesk
Version 1.0.0 — Initial Release
- Homepage, Pricing, Playground, Blog (listing + single), Contact, Documentation pages
- Dark mode glassmorphism design system with cyan/purple gradient accents
- Interactive AI showcase tabs, pricing toggle, testimonial slider, FAQ accordion
- Simulated AI chat/generator playground demo
- Full WCAG 2.1 AA accessibility pass
- Client-side contact form validation
Support
Have a question that isn't covered here? Reach out via our Contact page, and our team will get back to you within 24–48 hours on business days.
If you enjoy using Nexora, please consider leaving a review on ThemeForest — it helps us keep improving the template with free updates!