input: Sachverhalt: A. Die A._ AG ist Eigentümerin der in der Dorfzone liegenden Parzelle Nr. xxx, Grundbuch Salenstein. Im Westen grenzt sie an die im Eigentum von H._ stehende Liegenschaft Nr. yyy an. Am 20. November 2012 stellte die A._ AG ein Gesuch um Erteilung einer Baubewilligung für den Abbruch der bestehenden Baute auf dem Grundstück Nr. xxx (Wohnhaus mit Remise) und für den Neubau von zwei Mehrfamilienhäusern mit Tiefgarage und Zufahrtsstrasse. Während der öffentlichen Auflage des Baugesuchs erhoben die Nachbarn H._, G._ und die Erbengemeinschaft B._ Einsprache. B. Am 27. Februar 2013 wies die Politische Gemeinde Salenstein die Einsprachen ab und erteilte mit Entscheid vom 22. März 2013 der A._ AG die Baubewilligung unter Auflagen und Bedingungen. Den dagegen von den Einsprechern erhobenen Rekurs wies das Departement für Bau und Umwelt des Kantons Thurgau (DBU) am 28. Mai 2014 ab. Demgegenüber hiess das Verwaltungsgericht des Kantons Thurgau die Beschwerde der Erbengemeinschaft B._ und G._ mit Urteil vom 21. Januar 2015 gut und hob den Rekursentscheid des DBU sowie den Einspracheentscheid und die Baubewilligung der Politischen Gemeinde Salenstein auf. C. Mit Beschwerde in öffentlich-rechtlichen Angelegenheiten vom 20. April 2015 gelangt die A._ AG an das Bundesgericht und beantragt die Aufhebung des Entscheids des Verwaltungsgerichts vom 21. Januar 2015 und die Rückweisung der Angelegenheit zu neuer Beurteilung an die Vorinstanz. Das Verwaltungsgericht schliesst auf Abweisung der Beschwerde. Die Erbengemeinschaft B._ und G._ (Beschwerdegegner) beantragen, die Beschwerde sei abzuweisen, soweit darauf eingetreten werden könne. Die Politische Gemeinde Salenstein und das DBU haben sich nicht vernehmen lassen. Die Beschwerdeführerin hält in der Replik an ihren Anträgen fest. 