Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Full-stack Next.js 13 portfolio template with Supabase CMS, Flowbite UI, and step-by-step tutorial

Portfolio library replicating the GitHub UI, built with Next.js, TypeScript, and Tailwind CSS.
Simple Portfolio with CMS (CWNTFS) is a full-stack Next.js 13 portfolio starter that combines a public portfolio site with a Supabase-powered content management system, delivered as a step-by-step tutorial by saikise.
This template is a GitHub repository that demonstrates how to build a portfolio with an integrated CMS using the Next.js App Router, Tailwind CSS, Flowbite UI components, and Supabase for database, storage, and authentication. It takes project records stored in a Supabase PostgreSQL database and renders them as a portfolio; whitelisted admin users can sign in and add or edit projects through the same app. The project runs on Node.js 16.8 or later and is deployable to Vercel, with a live demo linked in the documentation.
/sign-up and /sign-in, plus portfolio views; routing and data fetching follow App Router conventions.Sidebar.tsx) intentionally omits auth navigation buttons.app/auth/sign-in/route.ts and app/auth/sign-up/route.ts.npx supabase start.gh repo create <repo-name> --public --template=saikise/simple-portfolio-with-cms-cwntfs.npm i to install dependencies.npx supabase login, then npx supabase start to launch local Supabase services (config is already set up).npm run dev to start the development server.Yes, the repository is public on GitHub with no license or payment requirement. You will need your own Supabase project and hosting (such as Vercel) to run it in production.
Yes, Docker Desktop is listed as a prerequisite because npx supabase start runs local Supabase services in containers.
Yes, the whitelist logic is in app/auth/sign-in/route.ts and app/auth/sign-up/route.ts. Editing those files changes which email addresses can gain admin access.
The README states that auth links are intentionally left out of Sidebar.tsx because authentication is exclusive to the portfolio owner. Users must visit /sign-up and /sign-in manually via the address bar.
