Ahurle Dev is a MIT-licensed personal website and developer blog starter built on Next.js, TypeScript, React, Theme UI, and MDX, forked from Devii to power the ahurle.dev site.
What is Ahurle Dev?
Ahurle Dev is a fork of Devii that has been heavily modified into a production-ready Next.js template for personal sites and blogs. It takes MDX posts whose front matter is exported as a JS object validated by the zod schema library, and statically generates pages with syntax highlighting, dark mode, SEO, RSS, and a sitemap. The template is maintained by Andrew Hurle, who documented the build decisions in a blog post on ahurle.dev. It is designed to be forked: the README encourages you to clone it, change the global constants, replace the posts, and redeploy.
Key Features
- MDX authoring — Write blog posts and pages in MDX, with front matter exported as a JavaScript object validated by
zod. - Static generation — All pages use Next.js static generation and the site still functions with client-side JS disabled.
- Dark mode — Theme switching is implemented with
theme-ui. - Syntax highlighting — Code blocks in blog posts get highlighted, based on a Prism style derived from react-syntax-highlighter's darcula theme.
- Automatic post metadata — Excerpt, table of contents, and reading time are extracted from each blog post.
- Free integrations — GoatCounter for analytics, Sentry for client-side exception reporting, TinyLetter for newsletter signup, and Vercel for hosting, all with keys that can be set to null to disable.
- Quality tooling — ESLint, Prettier, Jest with snapshot tests for every page, and a GitHub Actions CI config are included.
- Built-in assets — next/image optimization is configured through a custom imageSizeLoader, and helpers/globals.ts centralizes site name and domain constants.
Who is it for?
Developers who want a working Next.js blog with TypeScript, MDX, and tests without assembling the pieces themselves. Software engineers who want a known-good starting point for a portfolio site with SEO and a11y already handled. Technical writers who want to publish posts with automatically extracted excerpts, reading time, and table of contents. People who want a free stack: Vercel for hosting, GoatCounter for analytics, and Sentry for error tracking all have free tiers.
What can you do with Ahurle Dev?
- Developer-bloggers: publish MDX posts with syntax-highlighted code and let the template generate TOC, reading time, and excerpts.
- Portfolio owners: set your name and domain in helpers/globals.ts, replace the public images, and deploy to a *.vercel.app domain with a few clicks.
- Open-source maintainers: fork the repo and use the preconfigured ESLint, Prettier, Jest, and GitHub Actions to keep the site quality high.
How does Ahurle Dev work?
The README's getting-started flow is: clone or fork the repo, run nvm use to pick the Node version from .nvmrc, run yarn install, and then yarn dev to see the site on localhost:3000. To make it "yours," edit helpers/globals.ts, next-sitemap.js, and the integration keys, then run yarn test and press u to update snapshots. yarn build creates an optimized production build, and ANALYZE=true yarn build opens webpack-bundle-analyzer; yarn export produces static files.
Pros and cons
- Pros: MIT licensed; free hosting, analytics, and error reporting via Vercel, GoatCounter, and Sentry; static generation works without JS; includes CI, linting, and tests.
- Cons: next/image needs a server, so static hosting without a server won't work for image optimization; analytics and Sentry are off in dev by default and require commenting out checks to test locally; M1 Mac users may need Node 15.11.0 and a package.json edit because yarn install can fail on Node 14.
Pricing
Ahurle Dev is free and MIT-licensed. The recommended services—Vercel hosting, GoatCounter analytics, Sentry error reporting, and TinyLetter newsletters—are described in the README as free offerings, and each integration can be disabled by setting its key to null.
Alternatives
Devii — the original template this project is forked from, authored by Colin McDonnell. Ahurle Dev adds TypeScript, zod-validated front matter, theme-ui dark mode, and the GoatCounter/Sentry/TinyLetter integrations.
FAQ
Is Ahurle Dev free?
Yes. The template is MIT-licensed and free to fork. The recommended services all have free tiers, and each integration key can be set to null to disable it entirely.
Do I need a server to run Ahurle Dev?
The site uses static generation and works with client-side JavaScript disabled, but next/image requires a server to transform image URLs. The README therefore recommends Vercel for deployment, and notes that VERCEL_* environment variables are expected.
What Node version do I need?
The repo includes an .nvmrc and the author ran Node 14.x without problems, but M1 Mac users hit failures on yarn install; the README suggests installing Node 15.11.0 and changing the engines field in package.json to "15.x" as a workaround.
How do I make the site mine?
Change the constants in helpers/globals.ts (name, domain, prodUrl), update next-sitemap.js with your URL, replace GoatCounter, Sentry, and TinyLetter keys, swap public images, and edit the text under /pages. Then run yarn test and press u to update snapshots, and ensure yarn lint passes.








