Storefront is the WooCommerce theme you are meant to extend, not edit
Official theme for WooCommerce
At a glance
- What is it?
- Storefront is the official WordPress theme for WooCommerce, and its design assumption is that you will build on it with a child theme rather than modify it. The build pipeline is npm driven with Sass, Autoprefixer and RTLCSS, and the release history is slow enough that you should read the project's own status document before planning an upgrade.
- Who is it for?
- Adopt Storefront when you want a complete, WooCommerce aware storefront quickly and plan to build on it with a child theme, since the project documents the lean, extensible codebase for exactly that purpose. Do not adopt it as a base for a heavily custom design where you would override most templates anyway.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 24 days ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A parent theme first, a finished design second
Storefront is the official theme for WooCommerce, designed and built by the WooCommerce team, and it is available to download for free from the WordPress theme repository.
The interesting sentence for engineers is the one aimed at developers: for developers, Storefront is the perfect starting point for your project, and its lean and extensible codebase will allow you to easily add functionality to your site via a child theme and or custom plugins. The child theme is not a suggestion, it is the intended model. You are meant to add a child theme that overrides what you need and leave the parent alone, so that you can update the parent when a new version ships.
That framing sets expectations for anyone evaluating it. Storefront is a complete storefront with WooCommerce integration built in, not a blank canvas, and the design work is done for you. The cost is that every deviation from the default design is a layer of overrides, and the deeper you go, the less the parent theme is doing for you.
The theme also integrates with several WooCommerce extensions, and the README names them: WooCommerce Bookings, WooCommerce Wishlists, WooCommerce Brands and WooCommerce Subscriptions. Integration here means the theme provides the styling and template support those extensions expect, which saves a lot of work for a store that sells appointments, offers wishlists, uses brands or runs subscriptions.
The people who should look elsewhere are those building a store with a design that a general purpose commerce theme cannot express. In that case the theme becomes a set of obstacles rather than a starting point.
The build pipeline is npm, Sass and a composer archive
The package manifest shows how the theme is produced, and it is a JavaScript build rather than a WordPress plugin pipeline.
The core scripts are:
"build:dev": "npm run build:js && npm run build:css",
"build": "npm run build:js && npm run build:css && npm run makepot",
"postbuild": "npm run validate-build && npm run -s archive",
"archive": "rm -rf $npm_package_name && composer archive --file=$npm_package_name --format=zip",So the build compiles the JavaScript assets, compiles the CSS, generates the translation template with makepot, then validates the build and packages the result. The packaging step is a composer archive, which is why the repository carries both a package.json and a composer.json with a composer.lock.
The JavaScript step is a loop over the source files running uglifyjs with compression and mangling, producing a .min.js next to each source file. The CSS step runs sass with the bourbon and susy include paths from node_modules, compiling both the assets/css directory and the top level style.scss with compressed output and no source maps.
"build:css": "echo \"$(tput setaf \"3\")Building CSS Files$(tput sgr0)\"; sass -I node_modules/bourbon/core -I node_modules/susy/sass assets/css:assets/css --style compressed --no-source-map && sass -I node_modules/bourbon/core -I node_modules/susy/sass style.scss:style.css --style compressed --no-source-map",After the CSS compiles, a postbuild:css hook runs Autoprefixer and then rtlcss, and the rtlcss configuration in the manifest disables URL processing and renames. That last point matters for a theme with a right to left language, because the styles are flipped automatically rather than maintained by hand.
The repository root also carries .browserslistrc, .nvmrc, .stylelintrc.json, .eslintrc.js, .prettierrc.js, phpcs.xml, phpunit.xml, a tests directory and a validate-build.sh script, so the theme is linted, unit tested and checked for PHP coding standards as part of its own build.
Translations are a build artefact and a deployment decision
Translation handling in Storefront is handled in two different places, and confusing them is a common support problem.
First, the build produces a template. The makepot step in the build script means the theme ships a POT file for translators, and the languages directory in the repository is where those translation files live. Translations for the theme can be downloaded from WordPress.org.
Second, there is a deployment recommendation, and it is a specific one. To use a translation it is recommended that you upload it to wp-content/languages/themes/storefront-pt_BR.mo, with the file name pattern of the theme, the locale and the .mo extension. The documentation explains the reason: adding it to that location means the file will not be lost when you update Storefront. It is however possible to add a translation to the languages folder in your child theme if you prefer.
That is a small but real operational detail. Themes and child themes get replaced on update, so anything you drop into the parent theme directory disappears, and the recommended path sidesteps that. The alternative of putting the file in the child theme's languages folder works, and the child theme is not touched by a parent update, so either route survives as long as you follow it.
The right to left support mentioned earlier and the translation workflow belong to the same concern. Storefront is a theme that has to work for stores in many locales, and both features are handled by build tooling rather than by hand editing compiled files.
Storefront Status, support channels and where bugs go
The README points readers to a document called STOREFRONT_STATUS.md to explain the current status of Storefront development, and that is the first thing to read if you are planning to standardise on the theme. The repository is on the trunk branch by default, and the release history shows long gaps: version 4.6.0 on 2024-05-16, 4.6.1 on 2025-01-20 and 4.6.2 on 2025-12-09. The last push was on 2026-09-29, so there is recent work on the branch that is not yet in a numbered release.
Support is split across three channels, and the README is clear about which is which. WooCommerce customers can get support at the WooCommerce support portal, otherwise you can try posting on the WordPress support forums. And the warning is explicit: GitHub is for bug reports and contributions, not support.
Contributions follow a defined route as well. Patches and issues with Storefront core are welcome through the contributor guidelines in CONTRIBUTING.md, and feature ideas are supposed to go to the Storefront Feature Requests page first, where you can see whether something has already been suggested, planned, or is under development. Ongoing development is announced on the dev blog.
There is also a testing path for users who want to see releases before they are stable, the Storefront Beta Tester plugin, which is the mechanism for exercising an upcoming release.
Taken together, the governance picture is a mature project with a defined process, which is a good sign, offset by a release cadence that a team should verify for itself rather than assume.
Choosing between extending Storefront and writing your own theme
The real alternative to Storefront is not another plugin, it is a different amount of Storefront.
The first option is the child theme route the project recommends. You install Storefront, add a child theme, override the templates and styles you need, and keep the rest from the parent. You inherit WooCommerce integration, extension support, the build pipeline and the accessibility and compatibility work that the team maintains, and you write only the parts that differ. The cost is that your overrides have to be maintained against a parent that moves, which is manageable when you override a handful of templates and painful when you override most of them.
The second option is a bespoke theme written for the store. You get exactly the markup you want, with no parent to fight, but you take on WooCommerce template integration, responsive behaviour, checkout and account pages, and the ongoing work of tracking WooCommerce releases. For a store with a genuinely distinctive design, this is often the cheaper total cost, and for a store that merely wants a decent default, it is enormously more expensive.
A third path is to fork the theme in the repository and work on your own copy. That gives you the full source, but it inherits every upstream change as a merge problem, and the project clearly does not design for that, since the child theme exists precisely so you do not have to.
The decision rule is simple. If your design is close to a standard commerce layout, extend Storefront. If your design is the product, write the theme. The README's own framing, a lean and extensible codebase for adding functionality via a child theme, tells you which side of that line the project expects you to sit on.
Editorial conclusion
Adopt Storefront when you want a complete, WooCommerce aware storefront quickly and plan to build on it with a child theme, since the project documents the lean, extensible codebase for exactly that purpose. Do not adopt it as a base for a heavily custom design where you would override most templates anyway. Verify first by reading STOREFRONT_STATUS.md for the state of development, and check the licence terms yourself, because the repository does not carry a LICENSE file at its top level and version 4.6.2 was published on 2025-12-09 while the last push was on 2026-09-29.
Frequently asked questions
What is Storefront and who is it for?
Storefront is the official WordPress theme for WooCommerce, designed and built by the WooCommerce team and free to download from the WordPress theme repository. It is aimed at developers who want a complete storefront starting point and plan to extend it through a child theme and custom plugins.
How do I build Storefront from source?
The build is driven by npm scripts. The build script compiles the JavaScript and the CSS and then runs makepot, and the postbuild step runs validate-build and then the archive script, which uses composer archive to produce a zip of the theme.
Where should I put a Storefront translation so it survives an update?
The documentation recommends uploading it to wp-content/languages/themes/storefront-pt_BR.mo, following that file name pattern, because a file in that location will not be lost when Storefront is updated. It is also possible to add the translation to the languages folder in your child theme.
Where should I report a Storefront bug or ask for support?
The README is explicit that GitHub is for bug reports and contributions, not support. WooCommerce customers can use the WooCommerce support portal, and other questions can be posted on the WordPress support forums, while feature ideas go to the Storefront Feature Requests page.
How often is Storefront released?
Version 4.6.0 was published on 2024-05-16, 4.6.1 on 2025-01-20 and 4.6.2 on 2025-12-09, and the last push to the trunk branch was on 2026-09-29. The repository points to STOREFRONT_STATUS.md for the current state of development.
Official sources
Was this useful?