A Single Page Application (SPA) is a web application that loads once and dynamically updates the content without refreshing the entire page. It operates within a single HTML page and utilizes JavaScript to handle navigation and content updates. SPAs offer a more seamless user experience as they eliminate the need to reload the entire page when interacting with different sections or features.

Advantages of SPAs include:

  • Improved user experience through seamless and fast navigation without page reloads.
  • Better performance by reducing server requests and minimizing data transfer.
  • Enhanced interactivity and responsiveness, resembling native applications.
  • Simplified development and maintenance with reusable components and modular code.
  • Ability to build complex and feature-rich applications without sacrificing performance.

These open-source libraries and frameworks provide developers with the necessary tools and features to create efficient and interactive SPAs, empowering them to build modern web applications.

In this list, we have a collection of the best open-source SPA libraries, framework and starters.

1- Miox

Modern Infrastructure Of Complex SPA

Miox is an SPA management framework that supports any render core, allowing developers to use their favorite libraries like React or Vue. It focuses on being an SPA runtime and integrates easily with essential technologies like Redux/Vuex and SSR. Miox is widely used and tested in production by many web front-end projects.

GitHub - 51nb/miox: Modern infrastructure of complex SPA
Modern infrastructure of complex SPA . Contribute to 51nb/miox development by creating an account on GitHub.

2- A7JS

A7js is a lightweight 3kb JavaScript framework that focuses on single-page applications (SPAs) with a built-in routing and page sorting system. It offers powerful features, fast performance, modular design, easy usage, compression and minification, and support for ES6 imports and exports. Contributions are welcome, and there is an official Discord server for support.

GitHub - anton7r/a7JS: A light 3kb Javascript Framework which focuses on SPAs with a simple built in routing / page sorting system.
A light 3kb Javascript Framework which focuses on SPAs with a simple built in routing / page sorting system. - GitHub - anton7r/a7JS: A light 3kb Javascript Framework which focuses on SPAs with a s…

3- Xfly

Xfly is a lightweight SPA framework for the Mobile Web that supports page life-cycle, SEO friendliness, preload, lazy load, multi-instance, and more. It enhances responsiveness, uses state-driven programming, reduces resource requests and costs, and allows you to focus on routing and flow.

GitHub - c-ong/xfly: A SPA framework for the Mobile Web.
A SPA framework for the Mobile Web. Contribute to c-ong/xfly development by creating an account on GitHub.

4- Senna.js 

Senna.js is a lightweight single page application engine that enables the development of modern web-based applications with minimal JavaScript and no dependencies. While widely used and maintained internally at Liferay, the open source release has limited support due to staffing constraints. Support, particularly for build integration, may be challenging.

GitHub - liferay/senna.js: :seedling: A blazing-fast Single Page Application engine
:seedling: A blazing-fast Single Page Application engine - GitHub - liferay/senna.js: :seedling: A blazing-fast Single Page Application engine

5- jquery-spa

jquery-spa is a simple and lightweight single page application (SPA) template that mimics the functionality of modern SPA sites. It is designed for developers who are new to JavaScript and jQuery and want to build a basic SPA site or understand the fundamentals of SPA frameworks like Angular, Vue, and React. The template works with HTML, CSS, and relies on jQuery for simplicity, as well as an Apache web server for full functionality.

GitHub - Sedemstickx/jquery-spa: A simply made single page application(SPA) template that works exactly like modern SPA sites.
A simply made single page application(SPA) template that works exactly like modern SPA sites. - GitHub - Sedemstickx/jquery-spa: A simply made single page application(SPA) template that works exac…

6- Curi

Curi is a JavaScript router for single-page applications that helps improve accessibility and navigation. It supports asynchronous actions, offers flexibility in rendering, and provides support for server-side rendering and pre-rendering static HTML pages.

GitHub - pshrmn/curi: A JavaScript router for single-page applications
A JavaScript router for single-page applications. Contribute to pshrmn/curi development by creating an account on GitHub.

7- Page.js

Pages.js is a client-side router inspired by Express. It provides examples for basic routing, 404 support, pagination, user profiles, integrating plugins, caching data using history state, server-side rendering, a Chrome-style administration interface, adding transitions between pages, and rendering mustache partials client-side.

GitHub - visionmedia/page.js: Micro client-side router inspired by the Express router
Micro client-side router inspired by the Express router - GitHub - visionmedia/page.js: Micro client-side router inspired by the Express router

8- Mspl - Micro SPA Library

Mspal is a JavaScript Micro SPA Library. It allows you to create a Single Page Application site by writing component files.

GitHub - jcytp/mspal: Micro SPA Library
Micro SPA Library. Contribute to jcytp/mspal development by creating an account on GitHub.

9- SPA Starter (Vue)

SPA starter is a starter template for single page applications. It uses Vue, Sass, minitrest.css and Webpak.

GitHub - wearemd/spa-starter: 📦 A starter template for single page applications (SPA)
📦 A starter template for single page applications (SPA) - GitHub - wearemd/spa-starter: 📦 A starter template for single page applications (SPA)

10- ZuckerJS

ZuckerJS is a JavaScript library that helps web developers build SPA web applications using a component-oriented architecture. It is free, fast, efficient, and has no required dependencies. ZuckerJS relies on configurations to specify which components will be loaded and dynamically renders pages based on the current window's hash.

GitHub - saposs-org/zuckerjs: A simple Javascript library to build any SPA(Single Page Application) web application in a new way(component-based architecture + all uncoupled components).
A simple Javascript library to build any SPA(Single Page Application) web application in a new way(component-based architecture + all uncoupled components). - GitHub - saposs-org/zuckerjs: A simple…

11- React SPA Template

A React SPA with all the cool things you need.

GitHub - meretamal/react-spa-template: A React SPA template with all the cool things you need.
A React SPA template with all the cool things you need. - GitHub - meretamal/react-spa-template: A React SPA template with all the cool things you need.

12 - React SPA Starter

React Starter Boilerplate is a TypeScript-based boilerplate code for highly scalable and performant React Single Page Applications (SPAs). It is built with Vite and customized by the TSH team.

GitHub - TheSoftwareHouse/react-starter-boilerplate: A highly scalable React SPA boilerplate focused on performance and best practices, written in TypeScript.
A highly scalable React SPA boilerplate focused on performance and best practices, written in TypeScript. - GitHub - TheSoftwareHouse/react-starter-boilerplate: A highly scalable React SPA boilerpl…

13- React Typescript SPA Starter

The React Typescript SPA Starter is a full-featured starter kit for building single-page applications (SPAs) using React and Typescript. It includes sensible ESLint rules, Sass and autoprefixer for styling, Babel 7 for transpiling, Webpack and Webpack dev server for bundling and development, Bulma CSS for styling, and tests using Jest.

GitHub - hdpinto/react-typescript-spa-starter: A full-featured SPA starter with typescript, webpack, eslint, babel, and jest ready to go. Production build ready.
A full-featured SPA starter with typescript, webpack, eslint, babel, and jest ready to go. Production build ready. - GitHub - hdpinto/react-typescript-spa-starter: A full-featured SPA starter with…