School Website Starter is an open-source, MIT-licensed website template for schools, built on a modern JAMstack architecture with a Next.js frontend and a Strapi headless CMS backend. It is designed to be accessible and user-friendly, providing a production-ready foundation for a school website with alerts, timetable substitutions, search, and a rich footer.
What is School Website Starter?
School Website Starter is a monorepo containing two main applications: a backend Strapi headless CMS and a frontend Next.js website. The backend exposes a GraphQL API with REST routes also available that the frontend consumes via Apollo Client, with TypeScript types generated automatically by GraphQL Code Generator. The project was created by ElektronPlus for a Polish school and is openly available on GitHub.
Key Features
- Alerts — Customizable information banners displayed at the top of pages, managed through the Strapi CMS.
- Substitutions — Informs visitors about timetable changes, a common need for Polish schools; data is fetched via GraphQL.
- Search Bar — Powered by Meilisearch, a RESTful search API, offering fast and relevant site search.
- Rich Footer — Customizable social media icons, email address, copyright text, and related links.
- GraphQL Code Generation — Queries written as .graphql files automatically produce typed hooks and types during development.
- Storybook Integration — Includes a component storybook, deployed via Chromatic, for isolated UI development.
- Chakra UI Components — Uses the accessible Chakra UI library with templates from Chakra Templates for consistent styling.
- SEO Plugin — Strapi SEO plugin for managing meta tags and search engine optimization.
Who is it for?
- Schools and educational organizations — Set up a professional website without building from scratch; free implementation support is offered.
- Developers — Use as a starter for a JAMstack project combining Next.js, Strapi, GraphQL, and TypeScript.
- Polish schools specifically — The template includes substitution features and was designed for a Polish school context.
What can you do with it?
- School administrators: Manage alerts, articles, and pages through the Strapi dashboard without writing code.
- Frontend developers: Extend the site by creating new React components and GraphQL queries; styles use CSS modules.
- Designers: Preview and document UI components in Storybook before integrating them into pages.
- Developers building similar projects: Reuse the public Strapi API or the entire monorepo as a starting point.
How does it work?
The project is structured as a monorepo with apps/backend (Strapi) and apps/frontend (Next.js). In the frontend, GraphQL queries live in the queries folder and are compiled by GraphQL Code Generator into typed exports in generated. The backend connects to a MySQL database and includes plugins like SEO. Content is managed in Strapi and delivered to the Next.js frontend via GraphQL.
Pricing
School Website Starter is free and open-source under the MIT License. The creators also offer free assistance with implementation for schools and educational organizations.
FAQ
Is School Website Starter free?
Yes, the project is open-source under the MIT License, so you can use, modify, and distribute it freely. The creators also provide free implementation help for schools.
What technologies does it use?
The stack includes Next.js, React, TypeScript, Chakra UI, Strapi, GraphQL, Apollo Client, MySQL, Meilisearch, Sentry, and Storybook. The frontend is typically deployed on Vercel.
Can I use the public API?
Yes, the Strapi API is publicly available at strapi.elektronplus.pl and exposes REST routes for substitutions, articles, alerts, and pages. GraphQL is recommended.
Does it support Polish schools?
Yes, it was designed for a Polish school and includes a substitutions feature for timetable changes, which is common in Polish education.







