Bags of Spices

Favorite Recipes

Indonesian

Satay, sambals, rice dishes, Dutch-Indo influences, and the layered flavors of Java and Sumatra.

  • Spring Roll Peanut Dipping Sauce

    Spring Roll Peanut Dipping Sauce

    This spring roll peanut dipping sauce is unapologetically peanut-forward — creamy, savory, and deeply satisfying, with the Dutch-Indonesian flavor logic I fell in love with in The Netherlands. Ketjap manis and hoisin bring a mellow sweetness and depth, coconut milk keeps it silky, and a small spoonful of tamarind adds the subtle tang that makes the peanuts pop instead of tasting heavy. It’s the kind of sauce you’ll want to keep in the fridge so fresh spring rolls (and plenty of other things) always have a rich, nutty sidekick.


    Ingredients

    • ½ cup creamy peanut butter
    • ½ tsp (about 1 clove) garlic, minced
    • 1 tbsp lime juice
    • 2 tbsp ketjap manis
    • 2 tbsp hoisin sauce
    • 1 tsp tamarind paste
    • 1 can (14 oz) coconut milk
    • 1 tsp ginger, minced
    • ½ tsp red curry powder
    • ½ tsp sambal oelek
    • 1½ tsp fish sauce
    • 2 tbsp peanuts, crushed (for topping)

    Directions

    Make the Sauce:

    In a saucepan over medium heat, combine peanut butter and minced garlic. Stir continuously for 1–2 minutes, until the mixture is smooth and fragrant.

    Add lime juice, ketjap manis, hoisin sauce, and tamarind paste, stirring to combine.

    Gradually whisk in coconut milk, followed by ginger, red curry powder, sambal oelek, and fish sauce.

    Continue to cook, stirring occasionally, until the sauce is heated through and just begins to simmer. Remove from heat and transfer to a serving bowl. Sprinkle with crushed peanuts just before serving.


    Notes

    Preparation

    • Consistency: This sauce thickens as it cools. If it gets too thick, whisk in warm water 1 tbsp at a time until dip-able.
    • Balance check: Tamarind and lime should read as a gentle tang in the background — not sour. If it tastes too sharp, add 1–2 tbsp coconut milk to soften it.
    • Heat level: As written it’s moderately spicy. For a milder family-friendly version, cut sambal oelek to ¼ tsp (or to taste).

    Serving Suggestions

    • Fresh spring rolls (gỏi cuốn) and summer rolls.
    • As a satay-style dip for grilled chicken, shrimp, or tofu.
    • Drizzled over rice bowls, noodle bowls, or steamed vegetables.

    Variations

    • Extra spicy: Increase sambal oelek to 1 tsp, or add ¼ tsp cayenne.
    • More peanut texture: Stir in an additional 1–2 tbsp crushed peanuts off heat, then top as usual.
    • More savory: Add an extra ½ tsp fish sauce and a squeeze of lime to keep it balanced.

    Make-Ahead & Storage

    • Make ahead: Best made in advance — the flavors settle and improve after a few hours (or overnight) in the fridge.
    • Refrigerate: Cool completely, then store in a sealed container for up to 5 days.
    • Reheat: Warm gently over low heat (or microwave in short bursts), whisking often. Add a splash of water as needed; avoid boiling.
  • Rendang

    Rendang

    Often mistaken for curry, this traditional Sumatran dish is celebrated throughout Indonesia for its incredible depth of flavor. Slowly simmered in coconut milk and fragrant spices, it’s served on very special occasions. In a 2011 CNN poll, rendang was voted the world’s most delicious dish.


    Ingredients

    • 1 whole chicken, cut into small to medium-size pieces (or 2 lb boneless chicken thighs or breast chunks)

    Beef or Pork Variation

    • 2 lb beef chuck or pork shoulder, cut into 1½-inch cubes
    • (Increase coconut milk to 1½ cans and simmer longer—about 90 minutes or until dark and caramelized.)

    Sauce

    • 1 can (13.5 oz) good-quality full-fat coconut milk
    • ½ cup water or unsalted chicken stock
    • 2 tbsp fresh lemongrass, finely chopped (tender inner portion only)
    • 1 onion, peeled and quartered
    • 4 cloves garlic
    • 1 thumb-size piece galangal (or ginger)
    • 1–2 red chillies or 1 tbsp sambal oelek
    • ¾ tbsp tamarind paste
    • 1 tbsp brown sugar
    • 2 tsp dark soy sauce
    • 2 tbsp fish sauce (use 3 tbsp for beef or pork)
    • ½ tsp turmeric
    • 1 heaping tbsp ground coriander
    • 1 tbsp ground cumin
    • 1 small cinnamon stick (or 1½ tsp ground cinnamon)
    • ¼ tsp ground nutmeg
    • ¼ tsp ground cloves
    • 2 whole star anise
    • 2–3 kaffir lime leaves (optional but recommended)

    Garnish (Optional)

    • Fresh cilantro leaves
    • Dry shredded coconut or toasted coconut (kerisik)

    Directions

    Make the Spice Paste

    Place all sauce ingredients except the star anise and kaffir lime leaves in a food processor (or crush with a mortar and pestle) and blend into a thick, smooth paste.

    Taste the blended paste before cooking. It should be slightly under-seasoned—saltiness will intensify as the sauce reduces. Add a touch of sugar if too sour, or more chili if you prefer extra heat. If using sambal oelek, reduce fish sauce slightly and adjust at the end.

    Bloom the Paste

    Transfer the paste to a wok or large, deep-sided pan and cook over medium heat for 3–5 minutes, stirring constantly, until fragrant and slightly darker in color.

    Simmer and Reduce

    Add the chicken (or beef/pork), the star anise, and kaffir lime leaves. Stir to coat the meat evenly.

    Bring to a gentle boil over medium-high heat, then reduce to a low simmer. Do not cover—the sauce should reduce gradually. Stir occasionally to prevent sticking.

    For chicken: simmer 45–60 minutes until the sauce thickens and the meat is tender. For beef or pork: simmer about 90 minutes, stirring occasionally, until the sauce darkens and the oil separates (you’ll see pools of oil bubbling at the surface), and the meat is deeply caramelized.

    Finish and Serve

    If the sauce reduces too quickly or becomes overly thick, add a splash of water or coconut milk as needed. Adjust salt near the end of cooking if necessary.

    Serve hot, garnished with shredded or toasted coconut and fresh cilantro. Pairs beautifully with jasmine or glutinous rice.


    Notes

    Preparation

    • Using full-fat coconut milk helps prevent curdling and creates the signature silky texture.
    • The added water or stock allows longer reduction time without oversalting.
    • If using sambal oelek instead of fresh chilies, reduce fish sauce slightly and adjust at the end.
    • For a drier, traditional beef rendang, continue simmering until nearly all liquid has evaporated and the sauce clings darkly to the meat.
    • For extra depth, optionally stir in 1–2 tbsp toasted coconut (kerisik) near the end of cooking.
    • Taste and adjust seasoning only at the end—salt intensifies as the sauce reduces.

    Serving Suggestions

    • Serve with jasmine rice or glutinous rice to soak up the rich sauce.
    • Finish with fresh cilantro and a sprinkle of shredded or toasted coconut (kerisik), if desired.

    Variations

    • Beef or Pork: Use 2 lb beef chuck or pork shoulder (1½-inch cubes). Increase coconut milk to 1½ cans and simmer about 90 minutes or until dark and caramelized.

    Make-Ahead & Storage

    • Rendang improves in flavor overnight; refrigerate up to 3 days.
    • Reheat gently with a splash of water or coconut milk to loosen the sauce.
    • Freeze up to 2 months; thaw in the refrigerator before reheating.
  • Garlic-Sesame Green Beans

    Garlic-Sesame Green Beans

    These Simple Garlic–Sesame Green Beans are designed to be a quiet, versatile side—clean, fresh, and adaptable to a wide range of Southeast Asian and Indonesian-inspired dishes. Blanched until just tender-crisp, then lightly warmed with garlic and finished with a restrained touch of sesame oil, they provide contrast and balance without competing with bold mains like babi panggang, caramelized meats, or richly sauced stir-fries.


    Ingredients

    • 1 lb green beans, trimmed
    • 1 tsp kosher salt (for blanching water)
    • 1 tsp neutral oil
    • 1 small clove garlic, finely minced (optional)
    • ¼–½ tsp toasted sesame oil (to taste)
    • Pinch of table salt, to finish

    Directions

    Blanch the Green Beans

    Bring a large pot of water to a boil and season generously with kosher salt. Add the green beans and cook until just tender-crisp, about 2–3 minutes.

    Drain immediately and spread on a tray or plate to cool slightly. (Ice shocking is optional but not necessary if the beans will be used right away.)

    Warm and Season

    Heat a wide skillet over medium heat and add the neutral oil. If using garlic, add it and cook briefly just until fragrant—do not brown.

    Add the blanched green beans and toss to warm through, about 1–2 minutes. Remove from heat and drizzle lightly with sesame oil. Toss once more and season with a small pinch of table salt if needed.

    Serve

    Serve warm or at room temperature as a simple vegetable side.


    Notes

    Preparation

    • Keep the sesame oil restrained—it should add aroma, not dominate the dish.
    • Garlic is optional and can be omitted for an even cleaner, more neutral side.

    Serving Suggestions

    • Pairs well with Indonesian and Southeast Asian dishes such as babi panggang, ginger caramel chicken, grilled meats, and rice-based meals.
    • Works especially well alongside rich or sweet-salty mains, helping to refresh the palate.

    Variations

    • No sesame: Omit the sesame oil entirely for a fully neutral vegetable side.
    • Indonesian-leaning: Finish with a few drops of neutral oil infused with garlic or shallot instead of sesame oil.

    Make-Ahead & Storage

    • Blanch the green beans up to 24 hours ahead and refrigerate; finish just before serving.
    • Leftovers keep well for up to 3 days and can be enjoyed cold or gently reheated.
  • Saté Sapi — Beef Satay

    Saté Sapi — Beef Satay

    Saté Sapi Dengan Saus Kacang – Dutch-Indonesian Beef Satay with Peanut Sauce: The most memorable part of my first Christmas in the Netherlands was the evening we spent with a generous Indonesian family in Dordrecht. They invited us to share a rijsttafel—my very first taste of a true Indonesian feast. When we arrived, the table was covered with what seemed like dozens of colorful dishes, their fragrant aromas filling the home. Among them, one dish stood out: saté sapi (beef satay). Served with acar ketimun (sweet-and-sour cucumbers) and richly spiced peanut sauce, the skewers of marinated beef were grilled over charcoal and lightly glazed with ketjap manis. Just thinking about it brings back vivid memories of the smoky aroma and layered flavors. This recipe is my way of returning to that Christmas dinner, and to the warmth of friends who welcomed me—a newcomer in what then felt like a strange land—as one of their own.


    Ingredients

    • 2–4 lbs beef (sirloin, tri-tip, flank, or ribeye), sliced into strips about ¼-inch thick and 2–3 inches long
    • Velveting:

    • 2 cups water
    • 1 tsp baking soda
    • ¼ cup soy sauce
    • Marinade:

    • ¼ cup ketjap manis
    • 1 tbsp vegetable oil
    • 1 tbsp shallot, finely grated (or onion)
    • 1 tsp fresh ginger, grated
    • 1 tbsp brown sugar
    • ¼ tsp ground coriander
    • 1 clove garlic, minced (or ¼ tsp garlic powder)
    • 2 tsp lime juice
    • 2 tbsp coconut milk
    • ⅛ tsp white pepper
    • Peanut Sauce:

    • 1 cup smooth peanut butter
    • 2 cloves garlic, minced
    • 2 tbsp oil (peanut or vegetable)
    • ¼ cup ketjap manis
    • 2 tbsp lime juice
    • 2 tbsp brown sugar
    • ½ tsp hot red curry powder
    • 1–2 tsp sambal oelek (to taste)
    • 1 can (14 oz) coconut milk
    • ½ tsp ground coriander (optional, ties to marinade)
    • ¼ tsp aji-no-moto (optional)
    • 2 tsp tamarind paste (optional, for tang)
    • warm water, as needed to thin
    • For Serving:

    • wooden skewers, soaked at least 1 hour
    • acar ketimun (quick cucumber pickle) or fresh cucumber salad
    • steamed rice (or lontong / rice cakes)

    Directions

    Velvet the Beef

    Slice beef into thin strips. Combine water, baking soda, and soy sauce, then add beef and soak 1–2 hours in the refrigerator. Drain, rinse briefly under cold water, and pat dry.

    Marinate the Beef

    Whisk together all marinade ingredients. Add velveted beef, toss to coat thoroughly, cover, and marinate 3–12 hours in the refrigerator.

    Prepare the Peanut Sauce

    Heat oil in a saucepan over medium-low heat. Add garlic and sauté until fragrant but not browned.

    Stir in peanut butter, ketjap manis, lime juice, brown sugar, curry powder, sambal, and coriander. Mix until smooth.

    Gradually whisk in coconut milk until creamy. Reduce heat to low and warm gently for 2–3 minutes.

    Thin with warm water if needed. Adjust to taste with tamarind, sambal, or sugar. Keep warm or rewarm gently before serving.

    Grill the Satay

    Thread marinated beef strips onto soaked skewers. Grill over hot charcoal 2–3 minutes per side, or until lightly charred at the edges.

    In the final minute, baste lightly with a mixture of ketjap manis and oil for caramelization.

    Serve

    Arrange skewers on a platter. Serve with warm peanut sauce, cucumber pickle, and steamed rice or lontong.


    Notes

    Preparation

    • Velveting ensures tenderness while avoiding any baking-soda aftertaste when rinsed properly.
    • Use thin, even beef strips for consistent grilling and ideal caramelization.
    • A touch of tamarind in the sauce adds depth and a gentle sour note that complements ketjap manis.

    Serving Suggestions

    • Serve with acar ketimun for freshness and contrast.
    • Pair with steamed jasmine rice, lontong, or coconut rice.
    • Excellent with grilled vegetables or nasi goreng.

    Variations

    • Spicy Version: increase sambal in both marinade and sauce.
    • Sweeter Dutch Style: add an extra tablespoon ketjap manis during grilling.
    • Smokier Grill: add a small piece of lump charcoal beside the coals to intensify aroma.

    Make-Ahead & Storage

    • Marinated beef keeps up to 24 hours refrigerated.
    • Peanut sauce can be made 2–3 days ahead; rewarm gently to loosen.
    • Leftover skewers keep 2–3 days refrigerated and reheat well over medium heat.
  • Babi Panggang — Indonesian Roasted Pork

    Babi Panggang — Indonesian Roasted Pork

    Working in the office in the city of Bussum in The Netherlands, we’d often order take-out from our favorite Chinese-Indonesian restaurant, Tong Fong, in the neighboring city of Hilversum. One stand-out item was their delicious Babi Panggang, which was always a part of our order. I later learned that Babi Panggang is the most ordered main dish at Indonesian restaurants throughout the Netherlands. This is my attempt to recreate the vibrant flavors and textures of this delicious dish.


    Ingredients

    • 2 lb pork shoulder or belly
    • Marinade

    • ¼ cup ketjap manis
    • 2 tbsp hoisin sauce
    • 2 tbsp rice cooking wine
    • 1 tbsp brown sugar
    • 1 tbsp fresh ginger, grated
    • 1 tbsp fish sauce
    • ½ tbsp sambal oelek
    • ½ tbsp sambal badjak
    • ½ tsp toasted sesame oil (optional)
    • ¼ tsp Chinese five spice (optional)
    • 2 cloves garlic, minced
    • Juice and zest of 1 lime
    • Sweet & Sour Red Sauce

    • 1 tbsp vegetable oil
    • 1 small onion, finely chopped
    • 2–3 cloves garlic, minced
    • 2 tsp grated ginger
    • ½ tsp sambal oelek
    • 3 tbsp tomato paste
    • ¼ tsp chicken powder
    • ¼ cup sweet chili sauce
    • 3 tbsp ketchup
    • 2 tbsp lime juice
    • 2 tbsp seasoned rice vinegar
    • 1 tbsp Tamarind Paste
    • 1 tbsp ketjap manis
    • 1 tsp fish sauce
    • ¾ cup chicken stock or water
    • ¼ cup brown sugar (adjust to taste)
    • 1 tbsp cornstarch mixed with 1 tbsp water

    Directions

    Marinate the Pork

    Combine all marinade ingredients, stirring until the sugar has completely dissolved. Pour into a resealable container or vacuum-seal bag. Add the pork, coating thoroughly. Seal and marinate in the refrigerator for 4–12 hours.

    Sweet & Sour Red Sauce

    Heat oil in a saucepan over medium heat. Sauté onion until lightly browned; add garlic, ginger, and sambal, and cook until fragrant. Add tomato paste and chicken powder; cook 1 minute to develop sweetness.

    Stir in sweet chili sauce, ketchup, lime juice, vinegar, tamarind, ketjap manis, fish sauce, stock or water, and brown sugar. Simmer 10 minutes to allow flavors to meld. Add the cornstarch slurry and simmer until glossy and thickened. Blend with an immersion blender and adjust thickness with additional stock, if needed.

    Preparation #1: Sous Vide

    Preheat sous vide bath to 170°F / 77°C for pork shoulder (130°F / 55°C for pork loin or tenderloin; 150°F / 65°C for pork belly). Submerge vacuum-sealed pork and marinade in the water bath and heat for 12–24 hours (2–8 hours for pork loin or tenderloin).

    Remove from the bag and pat dry. Brush with oil and finish under a broiler set to high for 4–5 minutes to crisp the top. Brush with red sauce during broiling and allow it to develop a few bits of char.

    Slice and serve over rice with a generous amount of sauce. Serve with acar ketimun (pickled vegetables), cucumber salad, fried cabbage, and/or blanched green beans tossed with garlic and sesame oil.

    Preparation #2: Oven

    Preheat oven to 350°F / 177°C. Place pork on a rack in a baking tray. Reserve marinade and boil in a saucepan for 5 minutes. Roast pork for 30–40 minutes per pound, or until internal temperature reaches 190°F / 88°C, basting with the boiled marinade halfway through.

    Rest pork for 20 minutes. Pat dry, brush with oil, and finish under a broiler set to high for 4–5 minutes to crisp the top. Optionally, baste with the red sauce while broiling and allow it to develop slight char.

    Slice and serve over rice with a generous amount of sauce. Serve with acar ketimun, cucumber salad, fried cabbage, and/or blanched green beans tossed with garlic and sesame oil.

    Preparation #3: Pellet Grill

    Preheat pellet grill to 250°F / 120°C. Smoke until internal temperature reaches 187°F / 86°C, basting halfway through. Rest pork for 30 minutes.

    Pat dry, brush with oil, and finish under a broiler set to high for 4–5 minutes to crisp the top. Optionally, baste with the red sauce while broiling and allow it to develop light char.

    Slice and serve over rice with a generous amount of sauce. Serve with acar ketimun, cucumber salad, fried cabbage, and/or blanched green beans tossed with garlic and sesame oil.


    Notes

    Preparation

    • Fattier cuts such as pork shoulder or belly are preferred, but pork loin or tenderloin (especially when using the sous vide method, with times and temperatures adjusted accordingly) can also be used. Take care not to overcook leaner cuts.
    • Preparation #1, Sous Vide, is the preferred method for the most tender and flavorful result.

    Serving Suggestions

    • Serve sliced Babi Panggang over rice with plenty of red sauce spooned on top.
    • Pair with acar ketimun, fried cabbage, cucumber salad, or blanched green beans with garlic and sesame oil.