diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 9b87c9c..8e7c0ef 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -10,7 +10,9 @@ "Bash(ls)", "Bash(node -e:*)", "WebFetch(domain:thewoksoflife.com)", - "WebFetch(domain:www.spendwithpennies.com)" + "WebFetch(domain:www.spendwithpennies.com)", + "WebFetch(domain:downshiftology.com)", + "WebFetch(domain:www.thekitchn.com)" ] } } diff --git a/package-lock.json b/package-lock.json index 4c81257..b5fbcbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1089,7 +1089,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz", "integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1155,7 +1154,6 @@ "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/types": "8.54.0", @@ -1660,7 +1658,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2103,7 +2100,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -2864,7 +2860,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3034,7 +3029,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -4608,7 +4602,6 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -6416,7 +6409,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -6621,7 +6613,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -6631,7 +6622,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -7563,7 +7553,6 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", "license": "MIT", - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -7690,7 +7679,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -7878,7 +7866,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/public/recipes/african/shakshuka/assets/shakshuka.jpg b/public/recipes/african/shakshuka/assets/shakshuka.jpg new file mode 100644 index 0000000..acf868d Binary files /dev/null and b/public/recipes/african/shakshuka/assets/shakshuka.jpg differ diff --git a/public/recipes/african/shakshuka/assets/shakshuka2.jpg b/public/recipes/african/shakshuka/assets/shakshuka2.jpg new file mode 100644 index 0000000..cbe4dc7 Binary files /dev/null and b/public/recipes/african/shakshuka/assets/shakshuka2.jpg differ diff --git a/public/recipes/african/shakshuka/shakshuka.mdx b/public/recipes/african/shakshuka/shakshuka.mdx new file mode 100644 index 0000000..e8a9a2c --- /dev/null +++ b/public/recipes/african/shakshuka/shakshuka.mdx @@ -0,0 +1,72 @@ +--- +title: "Shakshuka" +slug: "shakshuka" +date: "2026-03-18" +lastUpdated: "2026-03-18" +category: "african" +tags: ["african"] +cookTime: 30 +prepTime: 10 +servings: 4 +author: "jake" +description: "Poached eggs in a spiced tomato and pepper sauce. A one-pan North African and Middle Eastern classic." +featured: false +display: true +displayPhoto: "./assets/shakshuka2.jpg" +--- + + + +## Photos +![Shakshuka](./assets/shakshuka.jpg) +*Shakshuka* + +![Shakshuka (Glamour Shot)](./assets/shakshuka2.jpg) +*Shakshuka (Glamour Shot)* + +## Ingredients +### Sauce +- 2 tablespoons olive oil +- 3 medium tomatoes halved, and/or 1 tablespoon tomato paste and/or 1 can (28oz) crushed tomatoes +- 1 medium yellow onion, diced +- 1 red bell pepper, diced +- 5 cloves garlic, minced +- 1 teaspoon cumin +- 1 teaspoon paprika +- 1/4 teaspoon cayenne pepper (adjust to taste) +- Salt and black pepper, to taste +- 3–6 large eggs +- Fresh parsley or cilantro, roughly chopped +- 1/2 teaspoon sugar (optional) +- 2 oz crumbled feta cheese (optional) +- Crusty bread or pita, for serving + +## Instructions +1. Heat **olive oil** in a large, deep skillet or Dutch oven over medium heat. +2. Add the **onion** and **red bell pepper**. Cook, stirring occasionally, until softened and lightly golden, about 7–8 minutes. +3. Halve the **tomatoes** and place them face side down in the pan. Cook, covered for 7-8 minutes until the skin on the tomatoes can be removed by tongs. +4. Optionally, add the **tomato paste** and **crushed tomatoes** and cook for 1 minute. +5. Smash the skinless tomatoes down as much as they can go. Cook for another few minutes while they start to break down. +6. Add the **garlic**, **cumin**, **paprika**, **smoked paprika**, and **cayenne**. Stir and cook for 1–2 minutes until very fragrant. +7. Season with **salt**, **pepper**, and a pinch of **sugar** if desired. Stir to combine. +8. Reduce heat to medium-low and simmer uncovered for 10–15 minutes, stirring occasionally, until the sauce has thickened and the tomatoes have fully broken down. +9. Use the back of a spoon to make 5–6 wells in the sauce. Carefully crack an **egg** or put a pinch of **mozzarella cheese** into each well. +10. Cover the skillet and cook for 8–10 minutes, or until the egg whites are just set but the yolks are still runny. Check frequently — they go from underdone to overdone quickly. +11. Remove from heat. Scatter **feta** (if using) and **fresh herbs** over the top. +12. Serve directly from the pan with plenty of **crusty bread or pita** for scooping. + +## Notes +### Egg Doneness +- For runny yolks, cover and cook 7–8 minutes. For fully set yolks, cook 10–12 minutes. Start checking early — residual heat will continue cooking the eggs after you remove the lid. + +### Make It Ahead +- Instead of the tomatoes/paste, tomato sauce can be made up to 5 days in advance and stored in the fridge. Reheat in the skillet and add the eggs fresh to order. + +### Variations +- **Green shakshuka**: swap tomatoes for tomatillos and add spinach or chard. +- **Spicier**: add a finely chopped jalapeño or a pinch of red pepper flakes with the onion. +- Add a can of drained chickpeas to the sauce for extra protein. + +## References +- Reference Recipe **[HERE](https://downshiftology.com/recipes/shakshuka/)** + diff --git a/public/recipes/chinese/fried-rice/assets/fried-rice.jpg b/public/recipes/chinese/fried-rice/assets/fried-rice.jpg new file mode 100644 index 0000000..5bbe2cc Binary files /dev/null and b/public/recipes/chinese/fried-rice/assets/fried-rice.jpg differ diff --git a/public/recipes/chinese/fried-rice/fried-rice.mdx b/public/recipes/chinese/fried-rice/fried-rice.mdx new file mode 100644 index 0000000..4c6aa38 --- /dev/null +++ b/public/recipes/chinese/fried-rice/fried-rice.mdx @@ -0,0 +1,60 @@ +--- +title: "Fried Rice" +slug: "fried-rice" +date: "2026-03-18" +lastUpdated: "2026-03-18" +category: "chinese" +tags: ["chinese", "rice"] +cookTime: 15 +prepTime: 15 +servings: 6 +author: "jake" +description: "Classic fried rice with scrambled egg, soy sauce, and sesame oil. Best made with day-old rice." +featured: false +display: true +displayPhoto: "./assets/fried-rice.jpg" +--- + + + +## Photos +![Fried Rice](./assets/fried-rice.jpg) +*Fried Rice* + +## Ingredients +- 3 cups cooked long-grain white rice, day-old or cooled (about 1 cup dry) +- 3 tablespoons neutral oil +- 3 large eggs, beaten +- 1 cup frozen peas and carrots, or other vegetables +- 4 green onions, thinly +- 4 cloves garlic, minced +- 2 tablespoons soy sauce +- 1 tablespoon oyster sauce +- 1 teaspoon sesame oil +- Salt and white pepper, to taste + +## Instructions +1. Break up the **cold rice** with your hands or a fork so there are no large clumps. +2. Heat a wok or large skillet over high heat until very hot. Add 1 tablespoon **oil** and swirl to coat. +3. Add your vegetables to the wok and stir fry for 1-2 minutes until heated through. +4. Add another teaspoon of **oil** and add the **rice** to the wok. Let it sit to develop color and texture. Then stir fry, tossing everything together. +5. Drizzle with **soy sauce** and **oyster sauce** and toss to coat evenly. +6. Clear a center in the middle of the rice, and put the rest of the oil in. Add your beaten **eggs** and cook them completely through. +7. Fold the eggs in and break up any larger pieces. Drizzle with **sesame oil**, season with **salt and white pepper**, and toss once more. +8. Garnish with the rest of the **green onions** and serve immediately. + +## Notes +### Day-Old Rice +- Freshly cooked rice has too much moisture and will steam instead of fry. Spread cooked rice on a sheet pan and refrigerate uncovered overnight for best results. + +### High Heat +- A screaming hot wok is essential. Cook in batches if your burner isn't very powerful — crowding the pan drops the temperature and causes steaming. + +### Customize +- Add diced chicken, shrimp, or tofu in step 4 before the vegetables. +- A splash of rice wine or Shaoxing wine added with the soy sauce adds depth. +- Substitute frozen corn, edamame, or diced bell pepper for the peas and carrots. + +## References +- Reference Recipe **[HERE](https://www.thekitchn.com/fried-rice-recipe-23652991)** +