hexo-theme-inside: an Angular-built SPA theme for Hexo blogs
🌈 SPA, Flat and clean theme for Hexo https://blog.oniuo.com/theme-inside
At a glance
- What is it?
- hexo-theme-inside renders a Hexo blog as a single page application built with Angular, with search, Disqus, offline support and server-side rendering. The feature set is rich, but the newest tagged release dates from 2022 while commits continue to land.
- Who is it for?
- hexo-theme-inside fits a static blog author who wants a single page application feel, offline support and search without writing any front-end code, and who is prepared to maintain the theme configuration themselves. It is the wrong choice for a blog whose owner expects tagged releases with upgrade notes, since the newest release is 2.7.0 from 2022-04-24 and the package version in package.json is 2.7.1 while the last push was on 2026-05-12.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 164 days ago.
- What is it written in?
- Mainly JavaScript, 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 Hexo blog rendered as an application
hexo-theme-inside is a theme for Hexo, and its whole pitch is in three words on the README: SPA, Flat and clean. The theme is built with Angular, which is unusual for a Hexo theme and explains most of what follows. Most Hexo themes emit a set of static HTML pages with a little client-side enhancement. This one is built around an Angular front end, and the README lists server-side rendering among its features alongside a sitemap, so the pages are still generated at build time rather than becoming a purely client-side app.
The badges in the README set the compatibility floor plainly: Hexo 7.0 or newer, and Node.js 18 or newer. That floor is a meaningful constraint, because the package still resolves old dependency versions in its own metadata, and a theme that pins Hexo 7 leaves older sites behind.
The audience is a blog author who wants the polish of an application interface without assembling a front-end stack themselves, and who is comfortable with a theme whose configuration file has grown into something substantial. It is also useful for a technical blog, since the feature list leans towards long-form content rather than towards a landing page.
The repository structure matches a Hexo theme convention, with layout/, source/, lib/, languages/ and scripts/ directories, and a _config.yml at the root. The theme's own documentation lives outside the repository, at the blog.oniuo.com/theme-inside page the README links.
What the feature list really covers
The features section is dense, and a few items are worth separating from the rest.
The content additions are the reason a technical writer would pick this theme. The README lists enhanced content display with reward blocks, a copyright notice and picture zooming, table handling described as headless table and long table, and content addons that work out of the box: Collapse, Timeline and Content Crypto. Collapse and Timeline are structural conveniences for long articles. Content Crypto, on the face of it, encrypts a piece of content, which is an unusual thing to find in a blog theme and worth evaluating on its own terms before you enable it on anything sensitive.
Then there are the platform features. Built-in search, built-in Disqus for comments, a flexible plugin mechanism, and a PWA setup with immersive design and offline support through workbox. Offline support is the one with real architectural weight, since it implies the theme ships a service worker and precaches assets rather than simply declaring a manifest.
Two smaller items are easy to overlook. Print friendly styling matters if you publish reference material people print. And custom theming is listed, which matters only if the config file actually exposes the knobs, which is where project/_config.inside.yml comes in.
Three steps from a Hexo project to this theme
The quick start in the README is short enough to follow exactly, and it assumes you already have a working Hexo project.
First, install the theme into your project directory:
npm install hexo-theme-insideSecond, point Hexo at the theme in the site configuration, project/_config.yml:
theme: insideThird, and this is the step that decides how much control you have, copy the theme's own configuration file into your project as project/_config.inside.yml. The README links that file in the repository and sends you to blog.oniuo.com/theme-inside for the full documentation.
The reason that copy step matters is that a Hexo theme's configuration is merged over the theme defaults. Leaving the file out gives you the shipped defaults. Copying it in gives you every option the theme exposes, in a file that lives in your project and therefore survives theme upgrades, because your copy is not overwritten when the theme package changes.
That is the practical pattern for this theme. Treat project/_config.inside.yml as the file you own and the installed package as the file you replace.
The theme ships its own tests, run with Jasmine through a config file in the test directory:
jasmine --config=test/jasmine.jsonThe Angular source lives outside the repository
The README's FAQ section asks where to find the front-end source code, and the answer is a Bitbucket repository, hexo-theme-inside-ng. That single line tells you a lot about the shape of the project.
The GitHub repository is the Hexo theme package: the layouts, the build scripts, the language files and the configuration. The Angular application that produces the front end lives in a separate repository, with the -ng suffix naming the Angular side of the pair. So a full picture of what the theme renders requires reading across two hosts, and the two can drift apart.
The package metadata supports that reading. The runtime dependencies are html-to-text, markdown-it and markdown-it-container, all content processing libraries. The devDependencies are hexo 7.3, cheerio, terser and jasmine, so the Angular toolchain is not visible in this repository either. Terser is the minifier, which confirms that a JavaScript bundle is produced and shipped, and cheerio being a dev dependency points to HTML assertions in the test suite.
For a user, the practical implication is limited: you install from npm and configure in YAML, and none of this touches your workflow. For anyone contributing or debugging a rendering problem, it means the front-end code is not in the repository you cloned, and the npm package is the only version of the front end you get unless you build it yourself from the Bitbucket source.
Releases stopped in 2022, commits did not
The version history needs reading in two parts.
The tagged releases are old. The list shows 2.6.3 on 2020-03-14, 2.6.4 on 2020-03-15, and then a long gap to 2.7.0 on 2022-04-24. The package.json in the repository reports version 2.7.1, one patch above the newest tag. So the repository is at 2.7.1 while the newest published tag is 2.7.0, and the release list on GitHub has not moved since April 2022.
Commits, on the other hand, continue. The last push was on 2026-05-12, and the repository is not archived. That gap between the release tags and the commit history is the central fact for anyone evaluating this theme. Work is happening, but it is not reaching you as a tagged release with release notes attached.
This matters concretely because a Hexo theme is a build-time dependency. A theme that changes its configuration keys or its expected Hexo version can break a site build without any version marker telling you it happened. If you run a production blog on it, the mitigation is to pin the exact version you validated and re-test the build on a schedule rather than tracking the theme's main branch.
Licensing is MIT, with the LICENSE file at the repository root. That permits use, modification and redistribution, including for a commercial blog, without conditions beyond keeping the copyright notice. The README also ships a Chinese translation, README_zh-Hans.md, next to the English one, and the languages/ directory suggests localisation beyond the two.
A packaged Angular theme versus your own Hexo layout
The alternative to adopting this theme is to write the Hexo theme yourself, and for some blogs that is the better deal.
The difference in approach is where the front end lives. Writing your own theme means the layout templates, the styles and any JavaScript are yours, rendered by Hexo's own template engine into static pages, with no Angular bundle and no build step beyond the one Hexo already runs. You get full control over the output markup, which matters if you care about page weight, about rendering without JavaScript, or about fitting an existing design system into the blog.
Adopting hexo-theme-inside means accepting an Angular front end, a service worker for offline support, a search implementation, a comment system and a plugin mechanism you did not write, all of it configured through project/_config.inside.yml. What you get in exchange is the part that takes the longest to build properly: a coherent interface with search, offline caching and content addons that work on the first try.
The decision is mostly about whether the site is a publication with a designer and a stable markup contract, or a personal blog that should simply look good and load fast. This theme is built for the second case, and the release history from 2022 is a good reason to look at the first before committing.
Editorial conclusion
hexo-theme-inside fits a static blog author who wants a single page application feel, offline support and search without writing any front-end code, and who is prepared to maintain the theme configuration themselves. It is the wrong choice for a blog whose owner expects tagged releases with upgrade notes, since the newest release is 2.7.0 from 2022-04-24 and the package version in package.json is 2.7.1 while the last push was on 2026-05-12. Before switching a live blog over, copy the theme's _config.yml into project/_config.inside.yml as the README instructs, confirm your Hexo version is 7.0 or newer and Node.js is 18 or newer, and read the release list on GitHub for the changes since your current version.
Frequently asked questions
How do I install hexo-theme-inside in a Hexo site?
Run npm install hexo-theme-inside in your project directory, set theme: inside in project/_config.yml, then copy the theme's _config.yml to project/_config.inside.yml. The README links the full theme documentation at blog.oniuo.com/theme-inside.
What are the requirements for running hexo-theme-inside?
The README badges state Hexo 7.0 or newer and Node.js 18 or newer. The theme is built with Angular and the package metadata lists hexo 7.3 as a development dependency.
Where can I find the front-end source code for hexo-theme-inside?
The README points to a separate Bitbucket repository, hexo-theme-inside-ng, for the front-end source. The GitHub repository holds the theme package with the layout, scripts, language files and configuration.
Is hexo-theme-inside still being updated?
The newest tagged release is 2.7.0 from 2022-04-24 and the package.json reports version 2.7.1, while the last push was on 2026-05-12. Commits continue, but no new release tag has been published since 2022.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ikeq-hexo-theme-inside)Was this useful?