Updated 2 weeks ago
NYC team · same business day
View live demo →
Specs

What's in the box.

Frameworks
7
all included
License
Personal
1 commercial site
Updates
Lifetime
free, quarterly

Abirga Vue is a bold, energetic Music Festival and Event Promotion web application built as a fully functional Vue 3 app using the Composition API, Vite, and Bootstrap 5. It ships with 9 view components, a reactive audio player composable, a filterable festival photo gallery, an album showcase, an event ticket cart powered by Pinia, and a Particles.js hero — written entirely with setup() and the Composition API, with zero Options API usage.

Built for Vue developers delivering music festival sites, concert promotion apps, artist portfolio projects, or event e-commerce platforms. The codebase uses Vue 3 Composition API throughout: ref(), reactive(), computed(), watch(), and composables for audio playback and gallery filtering. Single File Components (.vue) keep template, script setup, and scoped styles co-located and clean. Replace the static JSON data sources with any REST API or headless CMS and the reactive layer adapts immediately.

Everything in the Package

  • 9 view-level Single File Components across Home, Albums, Gallery, Blog, Shop, and Contact
  • Vue 3 with script setup syntax and Vite — fast HMR dev server and optimised production build
  • Vue Router 4 — history mode routing with lazy-loaded route components via defineAsyncComponent
  • Pinia store for cart management — addItem, removeItem, updateQty, and localStorage persistence plugin
  • Bootstrap 5.0.1 — responsive grid and utility classes
  • Particles.js hero background on the Home view via vue-particles integration
  • useAudioPlayer composable — ref()-based track state, play/pause, seek, and auto-advance logic
  • Album showcase: AlbumGrid component + AlbumDetail view with v-for tracklist rendering
  • Festival photo gallery: GalleryGrid with ref()-driven category filter and v-show transitions
  • CountdownTimer component using onMounted, onUnmounted, and setInterval with ref() state
  • Blog module: BlogGrid and BlogPost views with computed() related posts filtering
  • Checkout view with VeeValidate — schema-based field validation and v-model two-way binding
  • Newsletter form with ref() controlled input and submission feedback
  • Swiper Vue — touch-friendly album and featured content carousels via SwiperSlide components
  • Magnific Popup lightbox for full-screen gallery previews
  • Retina-ready, fully responsive from 320px to 1920px+
  • Vue DevTools compatible — Pinia store fully inspectable in browser

Composition API and Component Architecture

  • Views: HomeView, AlbumsView, AlbumDetailView, GalleryView, BlogView, BlogPostView, CartView, CheckoutView, ContactView
  • Shared components: AppNavbar, AppFooter, AudioPlayer, CountdownTimer, AlbumCard, GalleryItem, BlogCard, BackToTop
  • Composables: useAudioPlayer, useGalleryFilter, useCountdown — logic separated from template for testability
  • Pinia cartStore: state (items, total), actions (addItem, removeItem, updateQty, clearCart), and persist plugin
  • defineAsyncComponent applied to GalleryView, BlogView, and CartView — route-level code splitting
  • All data (albums, gallery items, blog posts) sourced from typed JSON in src/data/ — swap to fetch() or axios for live API
  • Scoped CSS inside each .vue file — no global style bleed between components
  • Folder structure: src/views/, src/components/, src/composables/, src/stores/, src/data/

All 9 Views

  • /home — Particles.js hero, Swiper festival slider, album spotlight section, gallery preview, newsletter, countdown timer
  • /albums — AlbumGrid with v-for rendering from albums.json, reactive sort and filter
  • /album-details — AlbumDetailView with photo carousel, v-for tracklist, and concert description
  • /gallery — GalleryGrid with ref() category filter: All, Afterparty, Chilling, Filming, Vibe Out
  • /blog — BlogGrid with BlogCard components rendered via v-for from posts.json
  • /blog-post — BlogPostView with computed() related posts based on shared tags
  • /cart — CartView bound to cartStore — v-for line items, v-model quantity steppers, remove actions
  • /checkout — VeeValidate form with schema validation, v-model bindings, and order summary sidebar
  • /contact — Reactive contact form with v-model, validation rules, and success/error feedback

useAudioPlayer Composable

  • useAudioPlayer composable wraps the HTML5 Audio API with ref() and reactive() state
  • Exposes: currentTrack, isPlaying, progress, play(track), pause(), seek(time), next(), prev()
  • AudioPlayer component renders a fixed bottom bar in App.vue — persists across all route changes
  • watch() on the active album route param updates the track queue automatically
  • onUnmounted cleanup stops audio and clears the progress interval to prevent memory leaks

Pinia Cart Store

  • cartStore defined with defineStore — state, getters, and actions in one clean object
  • Getters: itemCount (computed from items array), cartTotal (computed from item price × qty)
  • Actions: addItem, removeItem, updateQty, clearCart — all reactive, trigger template re-renders automatically
  • Pinia persist plugin syncs cart state to localStorage — survives page refresh
  • Cart badge in AppNavbar bound to cartStore.itemCount via storeToRefs

Performance and SEO

  • useHead (VueUse) sets per-route title and meta description reactively for SEO
  • defineAsyncComponent + Suspense code-splits Gallery, Blog, and Cart view bundles
  • Vite production build applies Rollup tree-shaking, chunk splitting, and asset fingerprinting
  • All images carry descriptive :alt bindings meeting WCAG 1.1.1
  • Google Fonts loaded with font-display: swap to prevent invisible-text flash

Use Cases

  • Music Festival Organisers: Showcase lineups, sell tickets, and display galleries as a fast Vue 3 SPA
  • Concert Promoters: Particles.js hero with live countdown timer and reactive Pinia cart
  • Artists and Bands: Album grid, tracklist detail view, and persistent audio player composable
  • Event Photographers: 32+ photo gallery with ref() category filtering and lightbox
  • Music Blogs: Blog module with grid and post views, ready for headless CMS via axios
  • Vue Developers: Composition API composables, Pinia stores, and Vue Router 4 patterns — production architecture from day one

Credits and Dependencies

  • Vue 3 — MIT License
  • Vite — MIT License
  • Vue Router 4 — MIT License
  • Pinia — MIT License
  • VeeValidate 4 — MIT License
  • Bootstrap 5.0.1 — MIT License
  • Swiper Vue — MIT License
  • vue-particles — MIT License
  • Font Awesome 6 — Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT
  • Google Fonts — SIL Open Font License
  • Demo images: Unsplash — Unsplash License (free for commercial use, no attribution required)
  • Demo images: Freepik — Freepik License (free for commercial use with attribution)
  • All demo images are for preview purposes only and are NOT included in the download. Replace with your own licensed images before publishing.
v1.0  Initial Vue Release
- Vue 3 Composition API with script setup syntax throughout
- Vite build tooling with fast HMR and optimised production output
- 9 view-level Single File Components with Vue Router 4 history mode
- useAudioPlayer composable for persistent music playback across routes
- Pinia cartStore with localStorage persist plugin for event ticket e-commerce
- VeeValidate 4 schema-based checkout form validation
- GalleryGrid with ref() category filter for 32+ festival photos
- CountdownTimer with onMounted and onUnmounted lifecycle hooks
- defineAsyncComponent route-level code splitting on Gallery, Blog, and Cart
- useHead per-route SEO meta tags via VueUse

Production code · accessibility ready

Open the source. Read the actual code.

Every Abirga — Music Festival Vue.js Template template ships hand-written, semantic, and accessibility-ready. Tabs preserved. Comments in plain English. BEM naming. WCAG 2.2 AA tested. No spaghetti, no inline JavaScript scattered through the document. Your team extends without rewriting — and your users get a site that works for screen readers, keyboard navigation, and reduced-motion preferences out of the box.

Semantic HTML5Real <section> / <article> / <nav> tags — not div soup.
WCAG 2.2 AA accessibilityReal ARIA, focus order, 4.5:1+ color contrast, keyboard nav.
BEM class systemPredictable naming so your team can extend without breaking.
Reduced-motion respectedprefers-reduced-motion media query disables non-essential transitions.
Skip-link + landmark rolesScreen-reader-friendly navigation at every page top.
Lighthouse 100 a11yAudited per release. Default install scores 100 / 96 / 100 / 100.
hero.html hero.css hero.js
abirga-music-festival-vue-js-template/hero · v1.0.0 · WCAG 2.2 AA
1<!-- Abirga — Music Festival Vue.js Template hero — semantic, accessible, AICE-priced -->
2<section class="hero hero--cover" role="region" aria-label="Featured">
3 <div class="hero__inner">
4 <h1 class="hero__h1">Built for businesses <em>that ship</em></h1>
5 <a class="btn btn--primary" href="/shop">Shop now</a>
6 </div>
7</section>
8
9/* hero.css — focus-visible & reduced-motion respected */
10.hero :focus-visible { outline: 2px solid var(--c-cyan); }
11@media (prefers-reduced-motion: reduce) { .hero * { animation: none !important; } }
12
13// AICE rebuild cost manifest
14const aice = { claude: '$2,400', buy: '$24' };
Changelog · 1 version

What's changed.

  • Initial release.
  • Vue 3 with Composition API; reactive state and reusable components.
  • Detailed documentation included with quick-start guide.
Tags
Customer reviews · 0 verified

What customers actually said.

No reviews yet — be the first.

Managed launch · 2 hosting tiers · NYC infrastructure

Don’t have hosting? We launch Abirga — Music Festival Vue.js Template for you.

Skip cPanel. Skip the FTP upload. Skip the DNS configuration. Each hosting tier includes the install, plugin config, and your domain pointed live in 24 hours. Same NYC team that built the template handles your launch.

99.9%Uptime SLA
24hSetup time
NYCSame-day support
Starter
$9.99/mo
  • 1 Website
  • 10 GB Storage
  • Free SSL
  • 1 Database
Deluxe
$27.99/mo
  • 10 Websites
  • 50 GB Storage
  • Free SSL (all sites)
  • 25 Databases
Ultimate
$35.99/mo
  • 25 Websites
  • 75 GB Storage
  • Free SSL (all sites)
  • 50 Databases
Launch
$62.99/mo
  • 100 GB Storage
  • 4 GB RAM
  • 2 CPUs
  • Free SSL
Grow
$155.99/mo
  • 300 GB Storage
  • 16 GB RAM
  • 8 CPUs
  • Free SSL
Expand
$217.99/mo
  • 400 GB Storage
  • 32 GB RAM
  • 16 CPUs
  • Free SSL

Free SSL · 99.9% uptime · 24/7 support · No domain included

Every tier includes — NYC infrastructure

99.9%Uptime SLAMonitored 24/7
24hSetup timeSame business day
SSLHTTPS day oneAuto-renewed
CDNGlobal edge cache15 PoPs worldwide
DailyAuto backups30-day retention
NYCStudio supportSame-day response
From the NYC studio

Save $5 on Abirga — Music Festival Vue.js Template today.

Plus weekly drops · AICE rebuild reports · early access to designs we haven't listed publicly. Same email goes to designers shipping with Letam, Bunlicious, and Aiga.

No spam · unsubscribe anytime · 3,500+ designers ship from this list

Abirga — Music Festival Vue.js Template
$24 · Vue Templates