andrewriveradev / joy-of-code

🌸 Joy of Code is a digital garden growing curious minds

Home Page:https://joyofcode.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Joy of Code

Bob Ross

πŸ§‘β€πŸŽ¨ What is Joy of Code?

Joy of Code is a digital garden growing curious minds with a wide variety of topics from web development to web design. If reading isn't your thing watch the video version on YouTube.

πŸ€— Contribute

First time contributors are welcome β€” in fact this is the reason why I wanted to make it possible to contribute so you can get your first open source contribution.

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.

πŸ™ Use Issues to Find Answers

If you need help or something changed and isn't working when following a post or video series I made you can go to the issues and find the issue and bring it to my attention β€” I hope in general people help each other out this way.

This avoids having to hunt down the issue you have in YouTube comments or places like Discord that aren't indexed by search results and are lost forever.

🧭 Technologies

  • ⚑️ 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 posts folder and are used to build the page using the πŸ”Œ GitHub API but data is where posts metadata is stored in a single posts.json to serve as a database

  • The project is hosted on Vercel and uses ignored build step with git diff HEAD^ HEAD --quiet . ':(exclude)editor/*' ':(exclude)posts/*' ':(exclude)data/*' to avoid redeploy for those special folders

  • The tests use Playwright for end-to-end testing

  • Analytics use Google Analytics

  • Newsletter uses Buttondown when I remember to send one 🀭

  • Post views use Supabase

  • Social share images use mattcroat/social-share-images

πŸ“œ Setup

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

About

🌸 Joy of Code is a digital garden growing curious minds

https://joyofcode.xyz

License:MIT License


Languages

Language:Svelte 50.5%Language:TypeScript 24.3%Language:SCSS 21.0%Language:HTML 3.0%Language:JavaScript 1.0%Language:Shell 0.2%