Sachverhalt: A. Das Strafgericht des Kantons Basel-Stadt verurteilte X._ am 20. Juni 2014 wegen mehrfachen Diebstahls zu einer bedingten Geldstrafe von 150 Tagessätzen zu Fr. 20.--. Auf die dagegen gerichtete Berufung von X._ trat das Appellationsgericht des Kantons Basel-Stadt am 5. Januar 2015 nicht ein. B. X._ beantragt mit Beschwerde in Strafsachen, der Entscheid vom 5. Januar 2015 sei aufzuheben und das Obergericht (recte: Appellationsgericht) anzuweisen, auf die Berufung einzutreten. Sie ersucht um unentgeltliche Rechtspflege. C. Das Appellationsgericht und die Staatsanwaltschaft Basel-Stadt beantragen die Abweisung der Beschwerde. X._ nimmt dazu Stellung.