Faits : A. A.B._ est depuis 1974 locataire d'un appartement de quatre pièces et demie sis à X._ (NE), qu'il occupe avec son épouse B.B._; le dernier loyer mensuel, charges et place de parc non comprises, est de 710 fr. Le 11 décembre 2009, la bailleresse Caisse A._, soit une fondation de prévoyance, lui a adressé le décompte des frais de chauffage pour la période du 1 er juillet 2008 au 30 juin 2009, présentant un solde à payer de 329 fr. 25. Il s'en est suivi un différend, notamment sur le lieu de consultation des justificatifs, que le locataire a porté devant la Commission de conciliation. Les parties ont convenu d'une suspension de la procédure jusqu'au 31 mars 2010. Le procès-verbal de la séance précisait qu'à défaut d'entente entre les parties dans le délai précité, la conciliation serait réputée avoir échoué; la partie qui persisterait dans sa demande devrait alors saisir l'autorité judiciaire compétente dans un délai de trente jours. Bien qu'aucune entente ne soit intervenue par la suite, le juge n'a pas été saisi. Le 5 août 2010, la bailleresse a fait notifier au locataire et à l'épouse de celui-ci des commandements de payer portant sur la somme de 329 fr. 25 plus intérêts, qui ont été frappés d'opposition. Par envois recommandés du 3 septembre 2010 adressés à chacun des époux, la bailleresse les a sommés de payer le montant de 329 fr. 25 dans les trente jours, faute de quoi le bail serait résilié. Ces derniers lui ont répondu qu'ils verseraient la moitié du montant réclamé à titre de mesure provisoire et ont demandé une nouvelle fois la rectification du décompte. Le 11 octobre 2010, la bailleresse a fait parvenir à chacun des époux un avis de résiliation du bail pour le 30 novembre 2010, motivé par le fait que seul un montant de 164 fr. 60 avait été versé sur le solde réclamé de 329 fr. 25. B. B.a. Le 12 novembre 2010 les époux ont saisi la Commission de conciliation d'une requête en constatation de l'inefficacité du congé, subsidiairement en annulation de celui-ci. Par décision du 24 janvier 2011, la Commission a annulé le congé. Concédant que le congé était a priori valable, elle a néanmoins retenu que la bailleresse avait adopté une attitude indigne en saisissant la première occasion pour notifier un congé alors que les parties se livraient depuis trois décennies à une véritable bataille de tranchées, chaque question donnant lieu à de nouvelles procédures dans lesquelles le locataire, pointilleux voire procédurier, avait cependant obtenu le plus souvent totalement ou partiellement gain de cause. La bailleresse a porté la cause devant le Tribunal civil du Littoral et du Val-de-Travers qui, par jugement du 25 février 2013, a rejeté la requête en validation du congé. Le Tribunal a retenu en substance ce qui suit: la créance de la bailleresse n'était désormais plus discutée, mais le montant en jeu faisait ressortir une flagrante disproportion des intérêts en présence, d'un côté celui du locataire et de son épouse à conserver l'usage de l'appartement qu'ils occupaient depuis quarante ans et dont ils payaient le loyer ponctuellement, de l'autre côté celui de la bailleresse à obtenir le paiement d'une somme dont ne dépendait pas le respect de ses propres engagements. Le locataire et son épouse n'avaient vraisemblablement pas mesuré le danger encouru en ne s'acquittant pas de l'intégralité du montant. En outre, la bailleresse paraissait avoir perdu de vue son "devoir de faire une approche différenciée des cas d'impayés" pouvant se présenter à elle; sa représentante avait en effet déclaré que le congé aurait été donné de la même manière à tout autre locataire, déclaration démontrant que la bailleresse avait "le souci de ne pas faire d'entorse à son choix - rigide, pour ne pas dire féroce - d'aller à chaque cas d'impayé, y compris le plus modeste, jusqu'à la résiliation de bail puis à l'expulsion du locataire concerné". B.b. Statuant sur appel de la bailleresse, la Cour d'appel civile du Tribunal cantonal neuchâtelois a confirmé le jugement rejetant la requête en validation du congé, avec une motivation qu'il n'est toutefois pas aisé de saisir. La Cour d'appel constate d'abord que la créance de la bailleresse était fondée et exigible, de sorte que les conditions objectives d'une résiliation étaient données. Elle examine ensuite les trois motifs d'abus de droit invoqués par le locataire et son épouse; elle relève que la créance n'était pas insignifiante, que la bailleresse n'éprouvait aucun doute au sujet du montant de la créance et que le congé pour défaut de paiement, en soi, ne devenait pas abusif du fait que le bailleur voulait de toute façon se défaire du locataire. La Cour d'appel s'écarte ensuite de l'avis du Tribunal civil en retenant qu'il "est proprement invraisemblable" que la bailleresse "ait signifié le congé litigieux par simple respect d'une pratique ordinaire et pour ainsi dire routinière, alors que l'ancienneté du bail, l'absence de tout retard antérieur dans le paiement du loyer (...) et la faiblesse du montant impayé commandaient très naturellement une réaction plus nuancée, à tout le moins sous forme de dernier et bref rappel". Elle semble ainsi sous-entendre que la bailleresse a été plus dure avec les intimés qu'elle ne l'est d'habitude avec les locataires en demeure. Néanmoins, poursuit la Cour, une telle analyse n'implique pas que la bailleresse ait voulu saisir l'occasion du retard pour exercer des représailles face aux litiges subis durant plusieurs décennies; en effet, l'on peut aussi concevoir qu'en se limitant au conflit relatif au décompte de charges 2008-2009, elle ait éprouvé une certaine lassitude face à des locataires donneurs de leçons et générant des pertes de temps considérables pour un enjeu très modeste, et finalement à mauvais escient; la Cour d'appel relève aussi que le locataire ayant été jusqu'à prendre le risque d'une résiliation, on ne saurait interdire à la partie adverse de faire preuve de rigueur particulière, la multiplicité des litiges antérieurs ne devant pas constituer une protection face à l'exercice de la liberté contractuelle. Arrivée à ce stade du raisonnement, la Cour d'appel conclut en précisant qu'il ne lui appartient toutefois pas d'émettre des suppositions quant aux intentions d'une partie dont l'appréciation serait plus favorable en définitive que celle à laquelle aboutissent ses propres déclarations. Or, ces déclarations imposent la conclusion, retenue par le Tribunal civil, d'une réaction inutilement rigoureuse et contraire à l'interdiction de l'abus de droit. C. La bailleresse (recourante) saisit le Tribunal fédéral d'un recours en matière civile, concluant à la validation du congé donné le 11 octobre 2010 pour le 30 novembre 2010. Le locataire et son épouse (intimés) concluent au rejet du recours. L'autorité précédente se réfère à son arrêt.