Joy of Code is a digital garden growing curious minds focused on web development and web design.
You can also find my videos on YouTube.
You can support my work by becoming a patron or becoming a YouTube member starting low as $1/month.
At the end of each post there's a direct link to the Markdown file of the post you can edit within GitHub. Read the contributing guidelines to learn more.
I use GitHub Discussions to track breaking changes for posts which you can use to report issues.
-
โก๏ธ SvelteKit is used for the frontend with server-side rendering and prerendering static pages
-
๐ GitHub API is used to manage content so GitHub is the content management system
-
The editor uses โก๏ธ SvelteKit for the frontend and ๐ Monaco Editor (code editor which powers VS Code) as the editor to manage content using the ๐ GitHub API
-
โ๏ธ Posts are stored inside the
postsfolder and are used to build the page using the ๐ GitHub API butdatais where posts metadata is stored in a singleposts.jsonto serve as a database -
The project is hosted on Vercel and uses ignored build step with
git diff HEAD^ HEAD --quiet . ':(exclude)posts/*' ':(exclude)data/*'to avoid redeploy for those special folders -
The tests use Playwright for end-to-end testing
-
Newsletter uses Buttondown when I remember to send one ๐คญ
-
Post views use Supabase
-
Social share images are generated using mattcroat/social-share-images
The project uses ๐ฆ๏ธ pnpm but any package manager is going to work.
๐ฌ Clone the project.
git clone https://github.com/mattcroat/joy-of-code.git๐ฆ๏ธ Install the dependencies.
pnpm i๐ฟ๏ธ Run the development server with pnpm run dev or build and preview the project with pnpm run build && pnpm run preview.
pnpm run dev