Skip to content
Sign inJoin waitlist

Troubleshooting — Titen Next.js

Most problems come from a content file with a typo, a missing image or a form variable that was not set on the host. The answers below cover those first, then the questions buyers ask most.

npm install fails, or the site behaves oddly after an update. Delete node_modules/ and package-lock.json, then npm install again. Check that node -v is 20.9 or newer.

Port 3000 is already in use. npm run dev -- -p 3001, or stop whatever holds the port.

Module not found: Can't resolve '@/content/…' The path or the file name is wrong. @/ means src/, so @/content/site is src/content/site.ts. File names are case-sensitive on the servers that build your site, even when they are not on your laptop.

Property 'x' is missing in type … A content item lacks a field that src/content/types.ts requires. Your editor names the file and the line; add the field, or mark it optional in the type.

An image does not appear. The file must be in public/images/ and the content must refer to it as /images/<file>: same spelling, same extension, no public in the path.

A project is missing from its category page, or the category tag on a project leads to “404”. The project’s category must be the slug of a category in categories.ts ("residential", not "Residential").

A category page shows “404”. Category pages are built from categories.ts. A slug that matches another page (about, blog, contact, …) can’t be used.

The build fails but npm run dev was fine. The build is stricter. Read the first error, not the last; it names the file. Common causes: a missing field in a content item, a link to a slug that no longer exists, an image path with a typo.

A form says “Something went wrong”. The provider rejected it. The reason is in your host’s function logs (Vercel: the deployment’s Logs tab). Check that the environment variables are set for the environment you deployed to, and redeploy after adding them.

The share image or title is the old one. Facebook, LinkedIn and X cache them. Use their debuggers to refresh, and confirm that site.url is your domain.

A video does not play. The demo’s stock clips are not part of the download: the hero plays a short placeholder, and the About clip plays from the web and may move. Replace src with your own file (/videos/hero.mp4 in public/videos/) or a link to one (Editing the content). Phones only autoplay videos that are muted, which the template’s videos always are. With “reduce motion” switched on in the visitor’s system, only the poster shows: that’s on purpose.

The header is white on a page where it should be dark, or the other way round. The header is transparent with white text at the top of Home, About and the project pages, which open with a dark photo or video. The list is hasCover() in src/components/site/Header.tsx; add or remove a route there.

Can I use this template for a client? See License: that is the one place that answers it for your licence.

Can I remove the style guide, a whole page or a video? Yes:

  • the style guide: delete src/app/style-guide/;
  • a page: see Pages and sections;
  • the About video: delete <VideoSection … /> from src/app/about/page.tsx;
  • the Home video: in src/components/sections/HomeHeroSection.tsx, replace <LoopVideo … /> with a photo, <Image src={video.poster} alt="" fill preload sizes="100vw" className="object-cover" /> (import Image from next/image). The dark cover stays on top.

Can I change the fonts to my brand’s? Yes: Making it look like your brand.

Do I need a CMS? No. Content is files you edit. Add one when somebody who does not use a code editor has to publish (Using a headless CMS).

Can I search posts too, not only projects? Yes: add them to the search list in src/app/layout.tsx (Pages and sections).

Can I sell a site I build with this? Building sites for clients is what the licence is for; reselling the template itself as a template is not. The licence has the exact wording.

Will it work with Tailwind plugins, shadcn/ui, or my component library? Yes. It is a standard Next.js + Tailwind CSS 4 project; add packages as usual. The design tokens are plain CSS variables, so other libraries can read them.

How do I update to a new version of the template? Download the new release and copy your src/content/, public/, your icons and your theme.css into it. Then re-apply any component changes you made. CHANGELOG.md lists what moved.

Can you customise it for me, or build my site? Yes. Marcframe, the studio behind this template, updates templates to your needs (brand, content, new pages and features), builds custom templates and designs new websites. Get in touch at marcframe.com/contact or hire us on Contra.

Something is broken and none of this helps. Support and updates: https://framebrick.co/support. Send the page, the browser, and the error text or a screenshot: it makes the answer much faster.