Filipino Beef Tapa

This post may contain affiliate links. I may earn a small commission on any purchases made via these links at no additional cost to you. You can read my full disclaimer here.

Beef Tapa typically consists of pieces of lean beef marinated in a mixture of soy sauce, calamansi (a kumquat-mandarin orange hybrid fruit) juice, garlic and brown sugar, before being fried with onions. This dish is commonly eaten in the Philippines for breakfast along with garlic fried rice (sinangag) and fried egg (itlog). When all three are featured together in a meal it is known colloquially as “tapsilog”, a blend of the words “tapa”, “sinangag” and “itlog”. In my home we actually eat this as a dinner dish instead of breakfast.

The beef itself is tender a little tangy due to the calamansi in the marinade. It has that rich deep and savoury unami flavour from the soy sauce and the fried onions. Then there is the sweetness from the sugar which caramelises slightly in the frying process. It’s so tasty.

This dish is really easy to prepare, but needs a bit of organisation due to the long marinating time – marinating is a must! The calamansi juice for the marinade can also be difficult to obtain, so this can be substituted with lemon juice. I also include an additional step, which is to boil the marinated meat in water to tenderise it further, before frying. However, this is not a necessary step, I just prefer my meat to be a little more tender, also my fussy toddler is more likely to eat this dish if the meat is a little softer.


Subscribe to receive email updates:

Filipino Beef Tapa Recipe

Serves: 4

Preparation Time: 5 minutes

Marinating Time: 8 hours to overnight

Cooking Time: 30 – 35 minutes


  • 750 g beef steak strips
  • 4 cloves garlic crushed or grated
  • 4 tbsp soft brown sugar
  • 15 ml calamansi juice (you can get this here) or juice of half a lemon
  • 120 ml reduced salt soy sauce
  • 1 and a half medium onions sliced
  • 450 ml water
  • 3 tbsp light olive oil or vegetable oil


  1. Place the beef in a non-metallic bowl. Add the garlic, brown sugar and calamansi juice and mix well. Add in the soy sauce and mix well again. Cover with cling film and leave in the fridge for at least 8 hours or over night.
  2. Use a slotted spoon to drain the marinade from the meat.
  3. OPTIONAL: Place the meat in a tall frying pan or wok – I would recommend the Sky Light Wok Pan, it’s a versatile good quality wok, you can find out more about it here. Add the water and boil on a high heat until the water has evaporated. This takes around 20-25 minutes.
  4. Add 2 tablespoons of the oil to a clean pan. Add the onions and fry on a medium high heat until soft and translucent. Set onions aside.
  5. Add the remaining oil to the same pan and fry the beef on a medium high heat for 7-10 minutes. Stir in the fried onions.


  • Serve with garlic fried rice, fried egg and slices of fresh tomato for the classic Filipino tapsilog.
  • Sautéed mushrooms also work really well as a side for this dish.

Beef Meatball Curry

I used to associate meatballs with Italian food or IKEA 😉, but they are a lot more versatile than I initially thought. They work really well in this Indian inspired curry. The meatballs themselves are seasoned with onion and chilli, and the tomato-based sauce contains an aromatic blend of spices and creamy coconut milk which ensures full-on flavours with every bite.


Subscribe below to receive e-mail updates:

Beef Meatball Curry Recipe

Serves: 4

Preparation Time: 20 minutes

Cooking Time: 1 hour 20 minutes


For the meatballs:

  • 1 tbsp light olive oil
  • 700 g lean beef mince
  • 0.5 large onion finely diced
  • 1 green chilli finely diced
  • 3 tsp garam masala
  • 2 tsp garlic powder
  • 1.5 tbsp dried coriander leaf
  • 1 tsp salt

For the curry sauce:

  • 1 tbsp light olive oil
  • 1.5 large onions finely diced
  • 4 cloves garlic crushed
  • 1 thumb sized piece ginger finely chopped
  • 1 tsp ground coriander
  • 1 tsp ground cumin
  • 0.5 tsp turmeric
  • 2 tsp chilli powder
  • 0.5 tsp mustard powder
  • 1 tsp cinnamon
  • 400 g tin chopped tomato
  • 400 ml tin coconut milk
  • 2 tbsp sugar
  • 180 g spinach


  1. Pre-heat the oven to 180°C fan (or 200°C conventional oven), line a baking tray with grease proof paper and brush with the oil. In a large bowl combine the mince, onion, chilli, garam masala, garlic powder and coriander leaf.
  2. Shape into 24 meatballs and spread them out on the prepared baking tray. Bake in the oven for around 30 minutes until the balls have browned turning halfway.
  3. In the meantime make the curry sauce. Heat the oil in a medium saucepan on a medium heat and fry the onion, garlic and ginger until softened for around 7 to 10 minutes.
  4. Pour in the spices (coriander, cumin, turmeric, chilli powder, mustard powder and cinnamon) and cook for a further 3 minutes.
  5. Add the chopped tomatoes and stir in the coconut milk.
  6. Add the cooked meatballs to the pan.
  7. Cook on a low heat with the lid on for 40 minutes. Be sure to stir the curry every 20 minutes.
  8. Add the spinach to the pan and cook for a further 10 minutes with the lid on until wilted.
  9. Season with salt and pepper.


  • For an even more flavoursome meatball, prepare the meatballs the day before and leave overnight in the fridge to marinade.
  • This also works well with lamb mince.
  • I use mild chilli powder in this dish to make it toddler friendly, but if you like spice then you may want to use the hot (or extra hot) version.
  • Serve with steamed basmati rice and a side salad.