Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Minimal React + Next.js + MobX starter kit with a CRUD movie demo, localStorage storage, and static site export.

A full-stack Next.js TypeScript template focused on functionality over UI, featuring Zustand, TanStack Query, and ESLint 9 support.
tm-nextjs-starter is a minimal React starter kit that pairs Next.js with MobX to build a single-page CRUD demo app backed by browser localStorage, created by Tomi Mickelsson. The project was published in August 2018 as a reaction to JavaScript fatigue, aiming to show that a modern React single-page application can be developed without configuring webpack or babel by hand.
tm-nextjs-starter is a starter kit and demo application for building React single-page apps with the Next.js framework and MobX state management. It takes a set of React components and page files and produces a hot-reloading development server or a static exported site; the demo app lets users list, view, create, edit, and delete movies. It runs on Node.js for development and can export to plain static files, and the repository is maintained by Tomi Mickelsson under the MIT License.
static/exampledata/movies.json.serverapi_localstorage.js stores movies in the browser, so the app runs without a backend; serverapi_ajax.js provides an Axios-based REST alternative selected in config.js.npm run export generates static files in an out folder that can be hosted on GitHub Pages, Netlify, or Amazon S3.style jsx tags; the demo experiments with CSS Grid layout.pages directory holds index.jsx, about.jsx, moviedetails.jsx, and movieedit.jsx, plus a components/MyHeader.js and a MobX-managed store.js.npm run dev watches source files and reflects changes instantly in the browser at http://localhost:3000.Developers who want a working React setup without spending time on configuration will find a ready-made Next.js project with a sensible file structure. Learners can study how MobX observables drive a CRUD interface with minimal boilerplate, and hobbyists can build a client-only app that persists data in localStorage. Teams prototyping a REST frontend can enable serverapi_ajax.js and point it at a real backend, such as the author's RESTPie3 Python server.
npm run export and host the out folder on GitHub Pages, Netlify, or Amazon S3.Clone the repository, run npm install, then npm run dev and open http://localhost:3000; changes hot reload immediately. For production, run npm run export to write static files to out, optionally testing locally with npm run pyserve, which starts Python's HTTP server on port 8000. The app selects its data layer through config.js: localStorage by default or an Axios-based REST module.
next.config.js to export with data, as the README notes; a real backend requires writing a server for the included REST API.tm-nextjs-starter is free and open source under the MIT License. There are no paid tiers or subscription requirements.
Yes, the starter is released under the MIT License, so you can use, modify, and distribute it freely, including in commercial projects.
No. The default serverapi_localstorage.js stores movie data in browser localStorage, so the demo runs entirely on the client. A REST alternative, serverapi_ajax.js, is included for when you want a real backend.
Run npm run export to generate static files in the out folder, then upload that folder to GitHub Pages, Netlify, or Amazon S3. The README notes that GitHub Pages has some gotchas with site and link prefixes.
It uses MobX rather than Redux. The store is defined in store.js, state is declared observable, and mutating state automatically updates all observers, which keeps the code free of Redux-style boilerplate.
The home page loads about 94 KB minified and gzipped, delivered in 6 requests: 1 document, 4 scripts, and 1 stylesheet, according to the Page Size Inspector report included in the README.
