Appearance
Public website
Pages available without login (unless middleware redirects authenticated users on auth pages).
Home
Route: /
Sections driven by Admin → Settings → Home page:
- Hero & CTA
- Stats counters
- Live exchange rates
- Features grid
- How it works steps
- Testimonials
- FAQ accordion
- Newsletter signup
- Footer links & social
Content is stored in the settings table (slug: home-page) and fetched via public API.
Blog
| Route | Description |
|---|---|
/blog | Post listing with pagination |
/blog/{slug} | Single post |
Posts support HTML content and optional custom head script for structured data.
Legal pages
Route: /{slug} (dynamic)
Examples: /privacy, /terms — configured in admin legal pages.
WARNING
Avoid slug collisions with static routes like /blog or /contact.
Contact
Route: /contact
Public form → stored in contact_submissions → admin inbox.
Authentication pages
| Route | Layout |
|---|---|
/signin | Auth layout |
/signup | Auth layout |
/forgot-password | Auth layout |
/reset-password | Auth layout |
Exchange preview
Route: /preview
Authenticated users can preview exchange UI (used for home page editor preview flow).
SEO & metadata
Global SEO from Admin → Settings → SEO:
- Meta description
- Open Graph title/description/image
- Twitter card fields
Loaded via useSiteSeo() in app.vue for all pages.
Sitemap & robots:
/sitemap.xml— Nuxt server route/robots.txt— Nuxt server route
Configured in admin sitemap/robots settings.
Custom CSS
CSS from Admin → Settings → Custom CSS is injected globally in app.vue (with </style> escaping for safety).
Public API endpoints (no auth)
| Endpoint | Purpose |
|---|---|
GET /api/settings/{slug} | Public settings (SEO, home page partials, etc.) |
GET /api/public/rates-showcase | Rates for homepage |
GET /api/public/currencies-converter | Converter data |
GET /api/public/latest-exchanges | Recent approved exchanges |
GET /api/public/blogs | Blog list |
GET /api/public/blogs/{slug} | Blog post |
GET /api/legal-pages | Legal page list |
GET /api/legal-pages/slug/{slug} | Legal page body |
POST /api/subscribers | Newsletter subscribe |
POST /api/contact-submissions | Contact form |
POST /api/report-features | Anonymous feature reports (throttled) |
Rate limits apply on several POST/GET routes (see routes/api/index.php).
Newsletter
Home page newsletter form posts to POST /api/subscribers. Admin manages list under Subscribers.