# SproutCore: a JS-MVC framework whose build tools moved out of the repository

> SproutCore is a JavaScript application framework for single-page apps, and this repository holds the JS library only. This article covers what changed with the Abbot build tools, how the repository is laid out, why package.json says sproutnode, and where the README leaves gaps.

**sproutcore/sproutcore** — JavaScript Application Framework - JS library only

- Repository: https://github.com/sproutcore/sproutcore
- Website: sproutcore.com
- Stars: 2,141 · Forks: 284
- Language: JavaScript
- License: NOASSERTION
- Published: 2026-10-14 · Updated: 2026-10-30 · Language: en
- Canonical page: https://hysenlabs.com/projects/sproutcore-sproutcore

## Abbot is gone and the Node.js Build Tools replace it

The first thing the README says, in a quoted note, is that SproutCore 2 no longer supports the Abbot Buildtools. They have been replaced by new Node.js Build Tools, which live in their own repository under the sproutcore organization.

That note matters because the repository description is JavaScript Application Framework, JS library only. The build pipeline is not here. If you came from older SproutCore material that tells you to run Abbot commands, those instructions do not apply to this version, and the library alone will not package an application for you.

The split also explains the top level of the repository. There are apps/, frameworks/, lib/, themes/ and scripts/ folders, which hold the library code and its resources, together with a sc_config file, a phantomjs folder, license.js, a .jshintrc for lint rules and a .gitmodules file, so some content is pulled in from other repositories. A .travis.yml file and a Travis badge at the top of the README point at the project's continuous integration setup from an earlier period, and the badge links to travis-ci.org. CHANGELOG.md and CONTRIBUTORS.md complete the list of documentation files kept in the repository.

## What the framework claims to be: full-stack single-page apps in the browser

SproutCore describes itself as a JS-MVC framework for building blazing-fast, native-caliber web applications. The title line reads SproutCore 2: For Native-Caliber Web Apps. Those are the project's own words, and the README offers no benchmark behind blazing-fast, so read it as a goal rather than a measurement.

The more specific claim is the scope. The README says SproutCore takes a full-stack approach to single-page application development, giving you the tools to build rich applications which happen to run in the browser. Full stack here refers to the client side. The framework brings its own views, its own themes folder and its own runtime, so an application is built within SproutCore's conventions instead of being assembled from small libraries.

That has a consequence for adoption. A framework with its own view layer, theme system and build tool asks you to accept its way of structuring an application, and moving away later means rewriting the views, not swapping a module. The README does not describe how SproutCore combines with other frameworks, and no integration guidance is in the repository text.

## The README setup path starts from a Ruby gem and a web page

Under Getting Started, the README says the easiest way to begin is to install the Ruby gem, with instructions on the project's install page. After that comes the Getting Started tutorial in the guides. The README contains no command at all, so there is nothing to copy from the repository itself.

That path sits uneasily next to the note about Abbot. The gem route and the Node.js Build Tools are both named in the same README, and the text does not reconcile them: it does not say which one a new SproutCore 2 project should use, or whether the gem installs the older tooling. A reader has to open the install page and the build tools repository and decide.

Treat the setup instructions as something to verify, not follow blindly. The README links use plain http addresses for sproutcore.com, guides.sproutcore.com, docs.sproutcore.com and the demo site, and the repository does not say whether each page is current. The homepage field in the metadata reads sproutcore.com, and the package.json homepage uses https://www.sproutcore.com. If a link fails or looks dated, the repository gives you no second route to installation.

## package.json calls this project sproutnode and still reads version 1.11.0

The one file in the pack that shows a package manifest is package.json, and it tells a different story from the README. The name is sproutnode, the description is A SproutCore runtime environment for NodeJS, and the main entry is lib/index.js. The version is 1.11.0, while the README title says SproutCore 2.

Two readings are possible and the repository text does not choose between them: the manifest is an older artifact that was never updated, or the numbering of the library and the framework generations is not the same. A reader should not assume either. What can be said with certainty is that the package name on npm-style tooling is sproutnode and not sproutcore, and the license field reads MIT.

That license field is also the only machine-readable license statement in the pack. The repository metadata reports the license as NOASSERTION, which is what GitHub shows when it cannot match a license file to a known one, and the repository holds a license.js file rather than a standard LICENSE file. Anyone who needs clear license terms for a product should read license.js and confirm with the maintainers instead of relying on the manifest alone. The scripts section holds a single placeholder: the test script prints Error: no test specified and exits.

## Learning material is a book, a showcase and an annotated app

After the tutorial, the README lists three next steps. The demo site offers demos of a number of views and concepts. The book SproutCore Web Application Development was written by lead developer Tyler Keating. Juniper is a web app paired with annotated source code on GitHub, described as a deep dive into SproutCore features and best practices in action.

Support is the second block. The docs site has API documentation and the Guides site has topical walk-throughs. For user support there is a mailing list on Google Groups and a #sproutcore IRC channel. Contributors to the framework itself are asked to join sproutcore-dev@googlegroups.com.

The pattern is a project that documents itself through external sites and community channels more than through files in the repository. The repository has no docs folder and no examples folder in its top level listing, only the apps/ folder, which may hold sample or support applications, though the README does not say. A newcomer who wants to study working code should start from Juniper and the demo site before reading the framework source. Gitter is the third channel, linked as a badge at the top of the README for chat.

## The framework bundles code from jQuery, Prototype, Datejs and JSON2

The Acknowledgements section lists four open source projects whose code SproutCore includes: jQuery, Prototype, Datejs and JSON2. The README names no versions for any of them.

There are practical implications of that list. Code bundled into a framework is not updated when the upstream project ships a fix, so a library like jQuery inside SproutCore stays at whatever state the maintainers copied. If your application also loads jQuery from a CDN, two copies may exist in the page, and the README does not discuss how SproutCore avoids conflicts. It also means the license picture includes more than SproutCore's own terms, which adds to the question left by the NOASSERTION metadata.

Prototype and Datejs are older libraries, and their presence in the list places the framework's roots in a period before modern JavaScript modules. The README does not date any of this. What it does show is that the framework was built as a self-contained stack, with its own utilities, date handling and JSON support included, so a SproutCore page needs few outside script tags to run, as far as the README allows one to say.

## The last push was on 2026-08-15 and there are no GitHub releases

The repository is not archived, and the last push was on 2026-08-15. There are no GitHub releases, so a version cannot be pinned from the releases page, and the only version number in the pack is the 1.11.0 in package.json.

That push date shows the repository still receives commits. It does not say what the commits change, how many contributors are active or whether the project is growing. The README contains no roadmap, no statement of supported browsers and no compatibility table, and nothing about how SproutCore compares with other frameworks. The Travis badge, the plain http links and the reference to a Ruby gem all come from the README text and may not reflect the present state of the tooling.

For evaluation, the practical steps are short. Read CHANGELOG.md to see how the project records change. Look at the Node.js Build Tools repository, since the build pipeline is no longer part of this one. Confirm the license by reading license.js. Then try the Getting Started guide against the version you intend to use, because the gap between SproutCore 2 in the README and 1.11.0 in the manifest is the first thing a new user will run into.

## Conclusion

Read this repository if you maintain an existing SproutCore application or want to study a full-stack JS-MVC framework from before the current single-page frameworks. Do not start a new project here without checking the Node.js build tools and the guides first, because the README sends you to a Ruby gem and an install page for setup and says Abbot is gone. Verify that the guide you follow matches SproutCore 2, since the package manifest still carries version 1.11.0.

## FAQ

### What is SproutCore?

SproutCore is a JS-MVC framework for building single-page web applications, and this repository contains the JavaScript library only. Its README describes it as a full-stack approach for native-caliber web apps.

### How do I get started with SproutCore?

The README says the easiest start is to install the Ruby gem using the instructions on the SproutCore install page, then follow the Getting Started tutorial in the guides. It also notes that Abbot is replaced by the Node.js Build Tools.

### Does SproutCore still use the Abbot build tools?

No. The README states that SproutCore 2 no longer supports the Abbot Buildtools, which have been replaced by the Node.js Build Tools in a separate repository.

## Sources

- [Issues](https://github.com/sproutcore/sproutcore/issues)
- [README](https://github.com/sproutcore/sproutcore/blob/master/README.md)
- [sproutcore/sproutcore on GitHub](https://github.com/sproutcore/sproutcore)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/sproutcore-sproutcore
