diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 30198bb..b1d6e46 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,6 +1,20 @@ type DateStyle = Intl.DateTimeFormatOptions['dateStyle']; -export function formatDate(date: Date, dateStyle: DateStyle = 'medium', locales = 'en') { - const formatter = new Intl.DateTimeFormat(locales, { dateStyle }); - return formatter.format(new Date(date)); +export function formatDate( + date: Date | string, + dateStyle: DateStyle = 'medium', + locales = 'en', + timeZone = 'America/New_York', +) { + if (typeof date === 'string') { + const [year, month, day] = date.split('-').map(Number); + date = new Date(year, month - 1, day, 0, 0, 0); + } + + if (!(date instanceof Date) || isNaN(date.getTime())) { + throw new Error('Invalid date'); + } + + const formatter = new Intl.DateTimeFormat(locales, { dateStyle, timeZone }); + return formatter.format(date); } diff --git a/src/posts/dev-setup.md b/src/posts/01-dev-setup.md similarity index 100% rename from src/posts/dev-setup.md rename to src/posts/01-dev-setup.md diff --git a/src/posts/standalone-angular.md b/src/posts/02-standalone-angular.md similarity index 100% rename from src/posts/standalone-angular.md rename to src/posts/02-standalone-angular.md diff --git a/src/posts/storybook-readme.md b/src/posts/03-storybook-readme.md similarity index 100% rename from src/posts/storybook-readme.md rename to src/posts/03-storybook-readme.md diff --git a/src/posts/04-portland-recs.md b/src/posts/04-portland-recs.md new file mode 100644 index 0000000..532e651 --- /dev/null +++ b/src/posts/04-portland-recs.md @@ -0,0 +1,134 @@ +--- +title: Portland, ME restaurants & bars +description: A list of all of my favorite places to eat and drink in and around Portland, ME +date: '2025-02-20' +published: true +--- + +A list of all of my favorite places to eat and drink in and around Portland, ME. This is mostly just +a list for list-making's sake - who doesn't love a good list - but also figured it would be a useful +thing to send to folks who are visiting and looking for recommendations. If that's you, enjoy your +trip! + +Unless a list is numbered, assume it's unordered. If a business doesn't have a blurb next to it, it +just means that I don't have anything particularly insightful to say about what to get (probably +because it's all good!) + +## Eats + +### 🫶 Go-to spots + +- [Palace Diner](https://www.palacedinerme.com/) (Biddeford) - the best version of normal diner + food. Pancakes, french toast, fried chicken sandwich are all 10/10 +- [Little Pig](https://www.littlepigportland.com/) - everything is bright, flavorful, and made with + love. No wrong answers, but I always have to get Piyathida's dumplings and usually GraPow Gai Kai + Dow +- [Quanto Basta](https://quantobasta.me/) - took me a while to remember how to pronounce "cynar" but + yeah get the cynar spritz. Always good to try the special and the Amatriciana is my fav of the + regular pies +- [Goodfire](https://www.goodfirebrewing.com/) (Freeport) - if there's a special, get it. Otherwise + the chicken sandwich is always a good call and the Little Spruce pretzels rock +- [Crispy Gai](https://www.crispygai.com/) - obviously all their chicken is great but don't sleep on + the Crying Tiger Ribeye. Top notch cocktails too +- [Sichuan Kitchen](https://www.sichuankitchenportland.com/) - mapo tofu, fried green beans, and + eggplant are go-tos. If you're in person with a group, get the poached fish in fiery suace +- [Boda](https://www.bodamaine.com/) - usually go apps-heavy, including quail eggs and bacon-wrapped + scallops +- [Fish and Whistle](fishandwhistlemaine.com) (Biddeford) +- [Little Chippy](https://www.lilchippymaine.com/) + +### 🎩 Special occasions (or when someone else is paying) + +- [Scales](https://www.scalesrestaurant.com/) - everything is good but be sure to get cornbread +- [Izakaya Mintao](https://www.izakayaminato.com/) - do the omakase +- [Wayside Tavern](https://www.waysidetavernmaine.com/) - best sazerac in Portland. Gotta get the + beer battered cod cheek. I love the roasted chicken on ricotta toast and hope some day to try the + Monday-only burger +- [Fore Street](https://www.forestreet.biz/) +- [Leeward](https://leewardmaine.com/) + +### 🥪 Lunch + +- [Savlatore's](https://salvatoreshoagieshop.toast.site/order) - best sandwich in Portland and it's + not close. It's also a lot of sandwich - could pretty easily feed two +- [Nura](https://www.nuraportland.com/) - it's not always on their menu, but I still think about the + schnitzel pita I got there +- [Taco Trio](https://leewardmaine.com/) (South Portland) - costs a lot more than you want it to but + also the only place around you can get a true cali-style burrito +- [Indy's Sandwich](https://www.indyssandwich.com/) (South Portland) +- [Little Pig](https://www.littlepigportland.com/) + +### 😎 Nice in the summer (outdoor seating) + +- [Terlingua](https://www.terlingua.me/) - a board is always an easy call. If you're only getting + one dish, make it the brisket taco. Also don't sleep on the veggie apps +- [Mami](https://mamiportland.com/) + +### 🥡 Takeout + +- [Little Pig](https://www.littlepigportland.com/) +- [Sichuan Kitchen](https://www.sichuankitchenportland.com/) +- [Thanh Thanh 2](https://www.facebook.com/p/Thanh-Thanh-2-Restaurant-100046406985824/) + +### 🥐 Bakeries + +- [Night Moves](https://nightmovesbread.com/) (South Portland) - best bread +- [BLVL](https://www.blvl.me/) - best croissants +- [Tandem](tandemcoffee.com) - best biscuits +- [Norimoto](https://norimoto-bakery.square.site/) + +### 🌯 Burrito rankings + +1. [Taco Trio](https://leewardmaine.com/) (South Portland) +2. [Tacos La Poblanita](https://www.instagram.com/tacoslapoblanitamaine/?hl=en) (South Portland) +3. Chipotle 😐 +4. [Quiero Cafe](https://quierocafe.online/) + +Still need to try: + +- [Sal de la Tierra](https://www.instagram.com/saldelatierraofficial/?hl=en) +- [Dutch's](https://www.dutchsportland.com/) (breakfast burrito) + +### 🥯 Bagel rankings + +While these bagels are all good, none of them are truly elite. On a (mostly) unrelated note, I wish +one of them would make an egg bagel (Rose has something they call an egg bagel but it's just a +brioche). + +1. [Rover Bagel](https://www.roverbagel.com/) (Biddeford) - they show up at a lot of other + businesses, including most Big Tree Hospitality spots (e.g. South Freeport Market, Higgins Beach + Market) +2. [Rose Foods](https://www.rosefoods.me/) +3. [Forage](https://www.foragemarket.com/) +4. [Scratch](https://www.scratchbakingco.com/) (South Portland) + +Still need to try: + +- [Dutchman's](https://www.dutchmans.me/) (Brunswick) + +### 🥞 Pancake rankings + +1. [Palace Diner](https://www.palacedinerme.com/) (Biddeford) - really in a tier of its own here +2. [Miss Portland Diner](https://missportlanddiner.com/) + +## Drinks + +### 🍹 Best cocktails + +- [Papi](https://www.papiportland.com/) - ask for the bartender's recommendation and be willing to + get something that sounds crazy +- [Night Mares](https://www.instagram.com/night_mares_maine/?hl=en) - The Gulfaxi is my personal fav + but they're all good +- [Crispy Gai](https://www.crispygai.com/) + +### 🍻 Best places for a beer + +- [Goodfire](https://www.goodfirebrewing.com/) (Freeport) - best IPAs +- [Novare Res](https://novareresbiercafe.com/) - best beer selection +- [Oxbow](https://oxbowbeer.com/) - best sours and other funky beers +- [Orange Bike](https://www.orangebikebrewing.com/) (Gluten-free) +- [Austin Street](https://www.austinstreetbrewery.com/) + +### 🍸 Misc. bars + +- [Anoche](http://anoche.co/) - cozy and a vermouth-heavy menu