Nasi Liwet is a traditional Javanese dish from Solo (Surakarta), Central Java, known for its aromatic, savory rice cooked in coconut milk and spices, often prepared in a single pot for a communal meal. This comforting dish is infused with flavors of lemongrass, bay leaves, and shallots, and is typically enriched with salted fish, chicken, or eggs, making it a hearty and flavorful meal. Nasi Liwet is often served with a side of spicy sambal, fresh vegetables, and kerupuk (crackers), and is a popular choice for family gatherings or festive occasions. Its simplicity and depth of flavor make it a beloved staple in Indonesian cuisine. Let’s dive into this aromatic one-pot recipe!
Ingredients (Serves 4-6)
For the Nasi Liwet (Rice)
- 500g (2.5 cups) jasmine rice or long-grain rice
- 600ml (2.5 cups) coconut milk (fresh or canned, diluted with water if thick)
- 400ml (1.5 cups) chicken broth (or water for a lighter flavor)
- 2 stalks lemongrass, bruised and tied into knots
- 3 bay leaves
- 3 kaffir lime leaves
- 1 teaspoon salt (adjust to taste)
- 2 tablespoons vegetable oil
For the Spice Paste (Bumbu)
- 6 shallots (or 1 medium red onion)
- 4 cloves garlic
- 2 cm fresh ginger
- 1 teaspoon coriander seeds, toasted
- 1/2 teaspoon white peppercorns, toasted
For the Toppings and Accompaniments
- 200g chicken breast or thigh, cut into bite-sized pieces (optional)
- 100g salted fish (e.g., anchovies or ikan teri, soaked in water for 10 minutes to reduce saltiness, then drained)
- 4 hard-boiled eggs, peeled and halved
- 1 medium chayote (labu siam), peeled and cut into matchsticks (optional, for added texture)
- 1/4 cup fried shallots (store-bought or homemade)
- Sambal oelek or sambal terasi (shrimp paste chili sauce)
- Sliced cucumber and tomato (for freshness)
- Kerupuk (Indonesian crackers, preferably prawn crackers)
Equipment
- Large pot or Dutch oven with lid (for cooking rice)
- Mortar and pestle or food processor (for spice paste)
- Small frying pan (for frying shallots and salted fish)
- Saucepan (for boiling eggs)
- Sharp knife and cutting board
- Serving platter or plates
Step-by-Step Recipe
Step 1: Prepare the Ingredients
Let’s start by prepping all the components to ensure a smooth cooking process.
- Rinse the Rice: Place the jasmine rice in a large bowl and rinse under cold water until the water runs clear (about 3-4 rinses). This removes excess starch and prevents the rice from becoming too sticky. Drain well.
- Soak the Salted Fish: Place the salted fish (e.g., ikan teri) in a bowl of water and soak for 10 minutes to reduce its saltiness. Drain and pat dry with paper towels. Set aside.
- Boil the Eggs: Place eggs in a saucepan, cover with water, and bring to a boil. Cook for 10 minutes, then transfer to an ice bath to cool. Peel and halve the eggs. Set aside.
- Prep the Chayote (Optional): If using chayote, peel and cut into matchsticks. Blanch in boiling water for 2 minutes, then drain and set aside.
Pro Tip: If you don’t have salted fish, you can substitute with fried anchovies or skip it for a lighter version. The fish adds a savory, umami depth to the dish.
Step 2: Make the Spice Paste (Bumbu)
The spice paste is the flavor base for Nasi Liwet, giving the rice its aromatic profile.
- Toast the Spices: In a small frying pan over medium heat, dry-toast the coriander seeds and white peppercorns for 1-2 minutes until fragrant, shaking the pan to prevent burning. Set aside to cool.
- Blend the Paste: In a mortar and pestle or food processor, combine shallots, garlic, ginger, toasted coriander seeds, and white peppercorns. Blend into a smooth paste, adding 1-2 tablespoons of water if needed to help it come together.
- Sauté the Paste: Heat 2 tablespoons of vegetable oil in a large pot or Dutch oven over medium heat. Add the spice paste and sauté for 4-5 minutes, stirring constantly, until fragrant and slightly golden. The kitchen should smell amazing!
Pro Tip: Toasting the coriander and peppercorns enhances their flavor, giving the rice a deeper, more aromatic profile. Don’t skip this step!
Step 3: Cook the Chicken (Optional)
If including chicken, let’s cook it with the spice paste to infuse it with flavor.
- Add the Chicken: Add the chicken pieces to the pot with the sautéed spice paste. Stir to coat the chicken evenly and cook for 5-7 minutes, until the chicken is lightly browned and partially cooked.
- Set Aside (Optional): If you prefer the chicken to be a topping rather than mixed into the rice, remove it from the pot and set aside. You can finish cooking it later by frying or grilling.
Pro Tip: For a vegetarian version, skip the chicken and salted fish, and add more vegetables like chayote, carrots, or tempeh for texture.
Step 4: Cook the Nasi Liwet
Now, let’s cook the rice in the same pot, absorbing all the flavors from the spice paste and aromatics.
- Add Aromatics: To the pot with the spice paste (and chicken, if still in the pot), add the lemongrass, bay leaves, and kaffir lime leaves. Stir for 1 minute to release their aromas.
- Add Rice and Liquids: Add the rinsed rice, coconut milk, chicken broth (or water), and salt. Stir gently to combine, ensuring the rice is evenly coated with the spice mixture and liquid.
- Bring to a Boil: Bring the mixture to a boil over medium heat, stirring occasionally to prevent the rice from sticking to the bottom of the pot.
- Simmer the Rice: Once boiling, reduce the heat to low, cover the pot, and simmer for 15-20 minutes, or until the rice is fully cooked and the liquid is absorbed. Check occasionally—if the rice looks dry but isn’t cooked, add a splash of water (1-2 tablespoons) and continue cooking.
- Rest the Rice: Once cooked, remove the pot from the heat and let the rice sit, covered, for 5-10 minutes to steam and fluff up. Discard the lemongrass, bay leaves, and kaffir lime leaves.
Pro Tip: If the coconut milk is very thick, dilute it with a bit more broth or water (e.g., 400ml coconut milk + 200ml additional liquid) to ensure the rice cooks evenly without becoming too creamy.
Step 5: Prepare the Toppings
While the rice cooks, let’s prepare the toppings to add texture and flavor to the dish.
- Fry the Salted Fish: In a small frying pan, heat 2 tablespoons of vegetable oil over medium heat. Fry the soaked and drained salted fish for 2-3 minutes until crispy and golden. Drain on paper towels.
- Make Fried Shallots (Optional): If not using store-bought, thinly slice 2-3 shallots. Heat 1/4 cup vegetable oil in a small frying pan over medium heat. Fry the shallots for 5-7 minutes until golden and crispy, stirring frequently to avoid burning. Drain on paper towels.
- Prep Fresh Vegetables: Slice cucumber and tomato into thin rounds for a fresh, crunchy side.
Pro Tip: The salted fish should be crispy but not overly salty after soaking. Taste a piece before frying—if it’s still too salty, soak for another 5 minutes.
Step 6: Assemble and Serve
Let’s bring Nasi Liwet to the table in true Javanese style, perfect for sharing.
- Fluff the Rice: Gently fluff the cooked rice with a fork to separate the grains. If the chicken was cooked in the pot, it should be tender and well-mixed with the rice.
- Plate the Rice: Scoop the rice onto a large serving platter or individual plates. If you set the chicken aside earlier, place the pieces on top of the rice now.
- Add Toppings: Sprinkle the fried salted fish and fried shallots over the rice for crunch. If using chayote, scatter the blanched matchsticks on top. Place 1-2 halves of hard-boiled eggs on each plate.
- Serve with Accompaniments: Serve with sliced cucumber and tomato on the side for freshness. Add a small bowl of sambal oelek or sambal terasi for a spicy kick, and include kerupuk (Indonesian crackers) for extra texture.
Serving Tip: Nasi Liwet is best enjoyed family-style, with everyone digging into the platter and mixing the rice with the sambal and sides. The combination of fragrant rice, crispy toppings, and spicy sambal is irresistible!
Tips for Success
- Rice Texture: Nasi Liwet should be fluffy but slightly sticky due to the coconut milk. Rinsing the rice thoroughly and using the right liquid ratio ensures the grains don’t clump too much.
- Coconut Milk: If using canned coconut milk, shake the can well before measuring to combine the cream and liquid. For a lighter dish, use a 1:1 ratio of coconut milk to water.
- Salted Fish Substitute: If salted fish isn’t available, you can use dried anchovies (ikan bilis) or skip it and add a bit more salt to the rice for flavor.
- Make Ahead: The rice can be cooked a few hours in advance and kept warm in a rice cooker or oven at a low temperature (80°C/175°F). Fry the salted fish and shallots just before serving for maximum crispness.
- Storage: Store leftover rice and toppings separately in airtight containers in the fridge for up to 3 days. Reheat the rice in a steamer or microwave with a splash of water to restore its texture.
Nutritional Information (Per Serving, Approximate, Rice Only)
- Calories: 350-400 kcal (varies by coconut milk and portion)
- Protein: 8g (more if including chicken)
- Fat: 15g
- Carbohydrates: 50g
- Sodium: 600mg
Nasi Liwet is a dish that embodies the warmth of Javanese hospitality, with its fragrant rice and communal spirit bringing people together. Whether you’re celebrating a special occasion or simply craving a taste of Solo, this one-pot recipe will fill your table with comfort and flavor.