Rin is a lean HTML & SASS boilerplate for building static front-end projects, created by Kyoto-based graphic designer Showkaku Sano. It compiles EJS templates, SCSS, JavaScript, and images from a src/ directory into a deployable build/ folder, using BrowserSync for live reload during development.
What is Rin?
Rin is a minimal, open-source boilerplate (MIT license) that automates the repetitive parts of static site development. It runs on Node.js with npm scripts; you install dependencies with npm install and start the watch-and-build process with npm start. The tool watches src/ and outputs plain HTML, CSS, and JavaScript to build/, producing a build/index.html plus css/, js/, and images/ subfolders that can be hosted on any static server or GitHub Pages.
Key Features
-
EJS templating —
.ejsfiles undersrc/templates/pagescompile to.htmlinbuild/. Asite.jsonfile holds site-wide variables likesiteName,siteRootUrl,ogImageUrl,twitterSite, andgoogleAnalyticsId, and each page can define its own variables such aspageTitleandpageDescription. -
SCSS toolkit — The
sass/folder includes partials:_normalize.scss(based on normalize.css),_grid.scsswith a simple responsive grid usingl-container,l-row,l-span4, andl-span6classes,_button.scsswith button variants,_common.scss,_core.scss, and_variable.scssdefining color variables and six breakpoints (mq-xsunder 480px,mq-sm,mq-md,mq-lg,mq-xl,mq-xxlover 1600px). -
JavaScript bundling — All files in
src/js/are concatenated and compressed into onebuild/js/scripts.jsfile. -
Image optimization — GIF, JPG, PNG, and SVG images in
src/images/are run through imagemin and saved tobuild/images/. -
BrowserSync live server —
npm startlaunches a local server athttp://localhost:3000/that auto-reloads when you change any source file. -
GitHub Pages deployment — The README documents pushing the compiled site with
git subtree push --prefix build/ origin gh-pages. -
Simple directory structure — The input side keeps
templates/,scss/,js/, andimages/undersrc/; the output side is a flatbuild/directory ready for upload.
Who is it for?
Front-end developers who need a no-frills starting point for small static sites will find Rin useful, as it handles templating and asset processing without a heavy build system. Designers who prefer editing SCSS partials and EJS files directly can use it as a clean reference setup. Developers learning EJS or SCSS can study the included patterns, such as the grid partial and breakpoint variables, as working examples.
What can you do with Rin?
-
Prototype responsive pages — Use the
l-rowandl-span6classes to create two-column layouts, or mixl-span4for three columns, then apply breakpoint variables to adjust typography and layout across phone, tablet, and desktop widths. -
Build a multi-page static site — Define per-page metadata like
pageTitleand reuse global values likesiteNameandogImageUrlacross templates, so social sharing tags stay consistent without duplication. -
Prepare front-end assets for release — Drop unminified JavaScript and unoptimized images into the source folders, and Rin will compress and optimize them into the
build/output you can upload anywhere.
How does Rin work?
Clone the repository, run npm install to fetch dependencies, and run npm start. Rin watches src/; editing any template, SCSS, JS, or image file triggers a rebuild to build/ and a BrowserSync reload. When you are ready to publish, use the documented git subtree command to push the build/ folder to the gh-pages branch.
FAQ
Is Rin free?
Yes. Rin is released under the MIT license, so you can freely use, modify, and redistribute it, including in commercial projects.
What templating engine does Rin use?
Rin uses EJS (Embedded JavaScript). Pages are stored as .ejs files under src/templates/pages and compile to .html in the build/ directory. You can define variables at the top of each page to pass into the template output.
Does Rin include a CSS framework?
Rin does not include a full CSS framework like Bootstrap or Tailwind. Instead, it provides a small SCSS toolkit with normalized styles, a responsive grid, button styles, and configurable color and breakpoint variables.
How do I deploy a Rin site to GitHub Pages?
Run git subtree push --prefix build/ origin gh-pages from the repository root. This pushes the compiled build/ folder to the gh-pages branch, which GitHub Pages serves automatically.
Which image formats does Rin optimize?
Rin optimizes GIF, JPG, PNG, and SVG images using imagemin. The optimized files are written to build/images/.





