Homepage section order, visibility, and identity information are configured centrally in src/portfolio/config.ts
portfolio (66HEX) — Svelte Portfolio Template
By 66HEX
A SvelteKit-based personal portfolio template with a configurable homepage, local Markdown articles, external publications, a GitHub contribution graph, and a contact form.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Local articles use .svx files, and pnpm post:new generates drafts without registering routes or the sitemap
Supports an external publications list and a GitHub contribution graph
The contact form can integrate Resend and Turnstile, and live GitHub data requires a token
The build uses the committed testimonial cache and does not depend on requests to X at build time
The deployment target is Cloudflare Workers, published via Wrangler
Template Details
This is a personal portfolio website template built with Svelte and SvelteKit. The UI components are based on shadcn-svelte (Mira) and Tailwind CSS, and the deployment target is Cloudflare Workers. The homepage section order, identity information, social accounts, language, Writing count limit, and hero shader parameters are configured centrally in src/portfolio/config.ts; the copy and entries for each section are located in src/portfolio/sections/. Articles use local .svx files, and drafts are generated with pnpm post:new, with no need to manually register routes or the sitemap. External publications and service names are maintained in src/portfolio/publications.ts, and colors, spacing, and font tokens are adjusted in src/routes/layout.css.
The site can run without service credentials: live GitHub data requires a token, and contact form submission depends on Resend and Turnstile. The build uses the committed testimonial cache and does not make requests to X at build time; when updates are needed, run pnpm tweets:sync manually and commit the results.
Before deployment, you need to change the worker name and custom domain in wrangler.jsonc, which by default points to the original author's domain, and configure Cloudflare environment variables and secrets. The template is intended for sites deployed at the domain root; if a non-empty SvelteKit paths.base is set, static and API URLs need to be reviewed separately. The project is under the MIT license, but third-party assets such as demo images, fonts, and icons must be checked against their respective licenses, and external services such as domains and hosting may incur separate charges.
Is it right for your project?
Use Cases
- Build a personal portfolio and resume page to showcase experience, projects, and articles
- Publish local Markdown articles on a personal site and manage drafts and publication status
- Centrally display links to articles or publications published on external platforms
- Show a GitHub contribution graph and cached testimonials from X on the homepage
- Receive visitor messages through a contact form and use Turnstile for verification
Suitable For
- Developers familiar with Svelte and SvelteKit who want to customize a personal site by directly modifying the source code
- Individual developers who need to deploy a portfolio to Cloudflare Workers
- Users who want to manage articles with local .svx files and do not rely on an external CMS
- Developers who accept using the code under the MIT license and can verify third-party asset licenses themselves
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node 22.18+ and the pnpm version locked in package.json; after installation, copy .env.example to .env.local
- 2
Running pnpm setup:check can check for missing environment variables, but it will not display variable values
- 3
Live GitHub data requires a token; sending contact messages requires configuring Resend and Turnstile
- 4
Before deployment, change the worker name and custom domain in wrangler.jsonc, and set portfolio.url
- 5
The template is intended for deployment at the domain root; if a non-empty paths.base is set, static and API URLs need to be reviewed separately
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean that external services or third-party assets are free.
Must comply with when using
- You are allowed to use, modify, commercialize, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Live GitHub data requires configuring an access token; contact form submission depends on two external services, Resend and Turnstile, and you need to register accounts and configure secrets yourself, otherwise the related features will be unavailable.
- wrangler.jsonc by default points to the original author's domain; before deploying your own copy, you must modify or delete the routes in it, otherwise your own domain cannot be bound correctly.
- The template is intended only for sites deployed at the domain root; if a non-empty SvelteKit paths.base is set, static assets and API URLs need separate review and adjustment, otherwise they may fail.
- The built-in Mona Sans font is licensed under the SIL Open Font License, which differs from the project's MIT code license; when using or replacing the font, you must comply with that font license.
- The UI icons come from Nucleo UI Outline 18 and Nucleo Social Media, which are third-party assets; you need to verify and comply with their licenses yourself and cannot assume they are covered by MIT.
- The project description, articles, and testimonials are all sample content from the original author's portfolio and are not generated based on the user's name; before publishing directly, you need to replace them with your own content.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Live GitHub data needs a token; sending contact messages needs Resend and Turnstile.
Original README
`wrangler.jsonc` currently targets the original author's domains. Change or remove its `routes` before deploying your own copy.
Original README
This template targets a site hosted at the domain root; a nonempty SvelteKit `paths.base` needs a separate audit of static and API URLs.
Original README
The [Mona Sans](https://github.com/github/mona-sans) font files include their SIL Open Font License in `static/fonts/MonaSans-LICENSE.txt`.
Original README
UI icons use Nucleo UI Outline 18 and Nucleo Social Media.
Original README
https://github.com/66HEX/portfolio/blob/main/LICENSEhttps://github.com/66HEX/portfolio/blob/main/README.mdPersonal project descriptions, posts and testimonials are examples from the original portfolio; they are not generated from the owner's name.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 75 / 100
- Technologies
- Svelte
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-27
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Svelte as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 64fcb1a2d2d64d82ec6b70e6e905d4910e90f8c8e96ae5a27669fbc51eaa62e9
2026-10-01T13:41:14.818Z
Source file / repository# SvelteKit portfolio A personal portfolio with a configurable homepage, local Markdown articles, external publications, a GitHub contribution graph and a contact form. Built with Svelte 5, SvelteKit, shadcn-svelte (Mira), Tailwind CSS and Cloudflare Workers. ## Start locally Use Node **22.18+** and the pnpm version pinned in `package.json`. ```sh pnpm install cp .env.example .env.local pnpm setup:check pnpm dev ``` The site runs without service credentials. Live GitHub data needs a token; sending contact messages needs Resend and Turnstile. `pnpm setup:check` reports missing variables without displaying their values. Remove an integration's section from the configuration if you do not need it. ## Make it yours Everything you edit to personalize the portfolio lives in [`src/portfolio/`](src/portfolio/). `src/lib/` holds the implementation. Start with [`src/portfolio/config.ts`](src/portfolio/config.ts). It contains the owner's name, role, domain, social accounts, language, homepage section order, Writing limit and hero shader settings. Then edit the section text and items in [`src/portfolio/sections/`](src/portfolio/sections/). Replace the avatar, experience logos, favicon, résumé and OG logo. Personal project descriptions, posts and testimonials are examples from the original portfolio; they are not generated from the owner's name. | Task | Where | | ---------------------------------------------- | ------------------------------- | | Identity, domain, section order and visibility | `src/portfolio/config.ts` | | About, experience, projects and interface copy | `src/portfolio/sections/` | | Local articles | `src/portfolio/posts/**/*.svx` | | External publications and service names | `src/portfolio/publications.ts` | | Colors, spacing and typography tokens | `src/routes/layout.css` | | Font files and HTML preload | `static/fonts/`, `src/app.html` | | Deployment name and domains | `wrangler.jsonc` | ## Write a post ```sh pnpm post:new "My first article" pnpm dev ``` This creates `src/portfolio/posts/my-first-article.svx` as a draft. Preview it at `/blog/my-first-article`; set `published: true` when ready. Existing files are never overwritten. No route, import or sitemap registration is needed. [Writing guide](docs/writing.md): frontmatter, code languages, images, tables, custom Svelte components, external articles and publishing. ## Commands | Command | Purpose | | ----------------------------------- | --------------------------------------------------------- | | `pnpm dev` | Validate content and start the development server | | `pnpm post:new "Title"` | Create a draft; supports `--slug` and `--date` | | `pnpm config:check` | Validate settings, posts and external publications | | `pnpm setup:check` | Validate content and report local integration setup | | `pnpm tweets:sync` | Explicitly refresh the testimonial cache from X | | `pnpm check` | Validate content and check Svelte/TypeScript | | `pnpm lint` | Check source with ESLint | | `pnpm test` | Run content, configuration and authoring regression tests | | `pnpm format` / `pnpm format:check` | Format or check formatting | | `pnpm verify` | Run checks, lint, tests and production build | | `pnpm build` | Build the Cloudflare Worker and static assets | | `pnpm preview` | Run the built Worker locally | | `pnpm deploy` | Deploy the built output with Wrangler | Builds use the committed testimonial cache and do not fetch X. Refresh it deliberately and commit the result with content changes; failed requests keep the previous cached entries. ## Deploy 1. Set `portfolio.url`, then change the worker name and custom domains in `wrangler.jsonc`. 2. Run `pnpm verify`. 3. Configure the required Cloudflare environment variables and secrets described in [configuration](docs/configuration.md#integrations-and-secrets). 4. Run `pnpm deploy`. `wrangler.jsonc` currently targets the original author's domains. Change or remove its `routes` before deploying your own copy. This template targets a site hosted at the domain root; a nonempty SvelteKit `paths.base` needs a separate audit of static and API URLs. ## Maintenance Generated shadcn components live in `src/lib/components/ui/`; add components with `pnpm exec shadcn-svelte add <component>`. Feature-specific code lives in `src/lib/features/`. `.content-collections/` and `.svelte-kit/` are generated and should not be edited or committed. UI icons use Nucleo UI Outline 18 and Nucleo Social Media. Add SVG definitions to [`src/lib/components/icons/data.ts`](src/lib/components/icons/data.ts), include the exact Nucleo source filename or library name in a comment, and render them with `IconRenderer.svelte`. When adding or regenerating a shadcn component, replace its generated icon imports with these shared definitions. The [Mona Sans](https://github.com/github/mona-sans) font files include their SIL Open Font License in `static/fonts/MonaSans-LICENSE.txt`. MIT License. See [LICENSE](LICENSE).
Explore similar templates
Compare previews and descriptions within the same stack and category.

portfolio-template
A minimalist developer portfolio template built with SvelteKit, TypeScript, shadcn-svelte, and TailwindCSS, inspired by Magic UI and Dillion Verma. Personal information and experience data are centralized in a single src/lib/data/resume.ts file, so editing that file completes the basic setup.
Svelte · Portfolio

macOS-Themed-Portfolio
A macOS-style interactive portfolio template built with SvelteKit, TailwindCSS, and TypeScript. It presents content in a desktop environment with a status bar, widgets, and a Dock, and includes draggable, resizable, minimizable, maximizable, and closable windows.
Svelte · Portfolio

sveltekit-mdsvex-blog-template
A SvelteKit and MDsveX blog starter for Markdown writing with embedded Svelte components, Tailwind CSS typography, tags, dark mode, SEO metadata, and Cloudflare Workers deployment configuration. Requires Node.js 22.12+ and pnpm 11.17.0; third-party demo assets need separate license verification.
Svelte · Portfolio

Game-Presskit-Template
A static presskit template for indie game developers, built with Svelte. It manages game information, media, team, reviews, and press materials through multiple JSON files under public/data/, with each file providing an enabled field to control section display.
Svelte · Portfolio

Svelte-Portfolio
A responsive personal portfolio template built with Svelte, offering dark and light modes and simple configuration. The README states it is fully responsive and easy to configure, with an example site and preview screenshots.
Svelte · Portfolio

sveltefolio
SvelteFolio is a single-page personal portfolio template built with Svelte and ported from Saad Pasta's developerFolio. It provides dark mode, show/hide toggles for components and navigation, GitHub API data fetching, AOS scroll animations, Font Awesome icons, and Undraw illustrations.
Svelte · Portfolio
