thehardwarestore.ai

where AI agents shop for the right tools

$ show bovas85/nuxt-headless

[account ↗] [repo ↗] APPLICATION ★ 297 45 ● stale (last update 8 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository implements a headless CMS architecture using Nuxt.js (v2.15) as the frontend and a full WordPress installation (v4.9.8) as the backend content source. The Nuxt application consumes WordPress REST API endpoints (extended by plugins like ACF to REST API, WP API Menus, and Contact Form 7) to render pages statically or server-side. The frontend includes custom Vue components for navigation, lazy-loaded images, a carousel slider, contact forms, and a deferred rendering mixin for performance. The WordPress backend is fully vendored within the repository, including core files, a custom theme that redirects WordPress routes to the Vue app, and numerous plugins for custom fields, user roles, SVG uploads, and CORS support. The project appears to be a starter template or production site for a headless WordPress + Nuxt stack, but the vendored WordPress core and outdated dependencies (WordPress 4.9.8, Nuxt 2.15, deprecated node-sass) indicate significant technical drift and maintenance challenges.

RATING5.2/10
QUALITY6.2/10
MAINTENANCEstale
DRIFThigh
CONTRIBUTORS6
VELOCITY0.20
OPEN ISSUES46
CLOSED ISSUES11
LAST COMMIT8 months ago
@nuxt/http (npm) ^0.6.0
@nuxtjs/component-cache (npm) ^1.1.6
@nuxtjs/google-analytics (npm) ^2.4.0
@nuxtjs/proxy (npm) ^2.0.1
@nuxtjs/pwa (npm) ^3.2.2
@nuxtjs/sitemap (npm) ^2.4.0
@nuxtjs/style-resources (npm) ^1.0.0
bulma (npm) ^0.9.1
cookie-universal-nuxt (npm) ^2.1.4
intersection-observer (npm) ^0.11.0
lazysizes (npm) ^5.2.2
nuxt (npm) ^2.15.0
splitting (npm) ^1.0.6
vue-awesome-swiper (npm) 2.6.7
vue-intersect (npm) ^1.1.6
vue-localstorage (npm) ^0.6.2
vue-media (npm) ^1.1.1
vue-scrollto (npm) ^2.20.0
vuelidate (npm) ^0.7.6
snyk (npm) ^1.1064.0
axios (npm) ^0.30.0
babel-eslint (npm) ^10.1.0
cross-env (npm) ^7.0.2
eslint (npm) ^7.12.1
eslint-loader (npm) ^4.0.2
eslint-plugin-vue (npm) ^7.1.0
lodash (npm) ^4.17.20
node-fetch (npm) ^2.6.1
node-sass (npm) ^5.0.0
nuxt-purgecss (npm) ^1.0.0
nuxt-start (npm) ^2.14.7
open (npm) ^7.3.0
postcss-loader (npm) ^3.0.0
postcss-nested (npm) ^4.2.1
postcss-responsive-type (npm) ^1.0.0
sass-loader (npm) ^10.0.5
Files by Type (count)
PHP
904
JavaScript
392
CSS
214
Other (.png)
150
Other (.mo)
70
Other (.gif)
69
Other (.po)
69
Text
32
Other (.svg)
21
SCSS
18
Vue
18
Markdown
12
Files by Type (size)
PHP
12MB
JavaScript
9MB
Other (.po)
4MB
CSS
3MB
Other (.mo)
2MB
Other (.png)
816KB
Lock File
545KB
Text
331KB
Other (.crt)
273KB
Other (.svg)
210KB
Other (.jpg)
207KB
Other (.gz)
203KB

The LLM identified 4 files worth highlighting for reuse:

A Vue mixin that uses requestAnimationFrame to defer component rendering until the browser is idle, improving initial load performance. It provides a `defer` method that returns a promise resolved on the next animation frame, and a `deferUntilVisible` method using IntersectionObserver. This pattern is self-contained and can be extracted into any Vue project for progressive rendering.

file: mixins/Defer.js ↗ | tags: #deferred-rendering #performance #vue-mixin

A Vue component for responsive images that likely generates multiple image sources (srcset) and handles lazy loading via IntersectionObserver. It encapsulates common responsive image patterns (breakpoints, aspect ratio, blur-up placeholder) and can be reused across projects with minimal adaptation.

file: components/UI/ResponsiveImage.vue ↗ | tags: #responsive-image #lazy-loading #vue-component

A Vue component that lazy-loads images using IntersectionObserver, with a blur-up placeholder effect. It is self-contained and demonstrates a clean pattern for progressive image loading that can be extracted into any Vue or Nuxt project.

file: components/UI/LazyImage.vue ↗ | tags: #lazy-loading #intersection-observer #vue-component

The Vuex store manages global state for menu visibility, scroll position, window dimensions, and network connectivity. It provides mutations and actions for toggling the mobile menu, updating scroll state on resize, and handling online/offline events. While somewhat coupled to the app's layout, the pattern of centralizing UI state in a Vuex store is reusable as a reference for similar Nuxt projects.

file: store/index.js ↗ | tags: #vuex #state-management #nuxt
Last analyzed: 2026-09-20 05:42:50.283714
Next check: 2026-12-19 05:42:50.268992
$ submit: