{"repo":"TehShrike/abstract-state-router","free":true,"listed":false,"github":"https://github.com/TehShrike/abstract-state-router","clone":"git clone https://github.com/TehShrike/abstract-state-router.git","description":"The best way to structure a single-page webapp.","language":"JavaScript","stars":305,"topics":["router","single-page-app","spa","ui-router","svelte","routing"],"license":null,"category":"ui-components","readme_excerpt":"Changelog • Join the chat on Discord • API documentation Brief explanation abstract-state-router lets you build single-page webapps using nested routes/states. Your code doesn't reference routes directly, like /app/users/josh , but by name and properties, like app.user + { name: 'josh' } . Nested routes were a novelty when abstract-state-router released in 2014! If you're interested in the motivation, check out Why Your Webapp Needs a State-Based Router. abstract-state-router has another huge advantage: you can use it with any templating/component library you like, and transition your app from one component library to another gradually when the day comes. Project status This project is stable and has been used in production for years. The last major version bump was in April of 2025 when the project was finally converted from CommonJS to ES Modules and support for callbacks was dropped (nearly 10 years after Promises were added to the language spec). abstract-state-router is extensible without much work, so very few feature additions have been necessary. Current renderer implementations - RactiveJS - Riot - virtual-dom - Knockout - Svelte If you want to use the state router with any other templating/dom manipulation library, read these docs! It's not too bad to get started. Install Your CommonJS-supporting bundler should be able to import make state router from 'abstract-state-router' without issue. API - Instantiate - options - addState - resolve - activate - Examples - go -","default_branch":null,"files":null,"tree":[],"storefront":"/r/TehShrike","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/TehShrike/abstract-state-router/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}