- Install dependencies with
npm install(orpnpm installoryarn) - Start a development server:
npm run devThis is a portfolio/blog built using SvelteKit. Hosted on Netlify.
Visit: wentallout.io.vn
A website made with SvelteKit is just incredibly fast even compared to other framework-based websites like React/Next/Vue and has great SEO out-of-the-box. You won't need a backend or CMS though, the blog posts are just markdown files you can store on your computer (see routes/blogs).
All imported images are automatically converted to webp and lazy loaded to optimize performance.
Visitors can also comment on your blogs using GitHub discussion (you might want to customize Comments.svelte component so that it works on your repo)
- HTML: Semantic and SEO-focused
- CSS: Vanilla CSS with BEM naming scheme
- JS: VanillaJS/Svelte
- Linting optimized for aesthetics: alphabetical style perfectionist.dev
- eslint-plugin-svelte
src/styles
reset.csscustom CSS Reset by joshwcomeauglobal.cssglobal styles and importing all other css filesspacing.cssspacing formargin,paddingand the whole page layout in general. Check out utopia.fyi for more information about this spacing system.typography.csstypography-related stuff likefont-size,line-height,letter-spacing,font-weightcolor.csstext colors, border colors, background colors (2 color schemes:lightanddark)animation.cssfor anything animate.
| page | path |
|---|---|
| Home | / |
| Projects | /projects |
| Blogs | /blogs |
| Contact | /contact |
Slug
- /projects/
[slug] - /blogs/
[slug]
β SEO
β Responsive
β PWA: Works OFFLINE
β Dark/Light Mode Toggle Button
β Dynamic Breadcrumb (Breadcrumb.svelte)
β Font Optimization
- Self-host: Google Web Font Helper
- font-family: Inter. Read more about Inter
- Subset: Subset Variable Font Guide
- Reduce Font CLS (Cumulative Layout Shift): Automatic font matching
β Icons
unplugin-icons- Icon family: phosphoricons
- Browse phosphor icons
β Images
- Compressed and Converted into
webpusingvite-imagetools loading = 'lazy'
β Routing: built-in filesystem-based router
β Page Transition Animation
svelte/transiton- nprogress
β RSS
β Working Contact Form (need Netlify setup)
- Use markdown to write blogs mdsvex
- use
categories(#hashtag) to filter blogs - multiple markdown-related plugins installed:
rehypeandremark
β Blogs: Automatic Table of Contents
β Blogs: Code Highlight prism-themes
β Blogs: Search, Pagination
β Blogs: Categories/Tags
β Blogs: Prev/Next Button
β Blogs: Comment using Giscus
π‘ Splash screen
Featured on: portfolioshub.com