1"use strict";(self.webpackChunkericmigi_com=self.webpackChunkericmigi_com||[]).push([[319],{2965:function(e,t,n){var a=n(6540);t.A=({children:e})=>{const[t,n]=(0,a.useState)(!1),[r,l]=(0,a.useState)(""),[o,i]=(0,a.useState)(""),[s,c]=(0,a.useState)(!1);(0,a.useEffect)(()=>{"draft-access-granted"===localStorage.getItem("draft-token")&&n(!0)},[]);return t?a.createElement("div",null,a.createElement("div",{className:"bg-yellow-100 dark:bg-yellow-900/30 border-l-4 border-yellow-500 dark:border-yellow-600 p-4 mb-6"},a.createElement("div",{className:"flex"},a.createElement("div",{className:"flex-shrink-0"},a.createElement("svg",{className:"h-5 w-5 text-yellow-500 dark:text-yellow-400",viewBox:"0 0 20 20",fill:"currentColor"},a.createElement("path",{fillRule:"evenodd",d:"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"}))),a.createElement("div",{className:"ml-3"},a.createElement("p",{className:"text-sm text-yellow-700 dark:text-yellow-400"},"This is a draft post")))),e):a.createElement("div",{className:"min-h-screen flex items-center justify-center"},a.createElement("div",{className:"max-w-md w-full space-y-8"},a.createElement("div",null,a.createElement("h2",{className:"mt-6 text-center text-3xl font-extrabold text-gray-900 dark:text-gray-100"},"Draft Post"),a.createElement("p",{className:"mt-2 text-center text-sm text-gray-600 dark:text-gray-400"},"This post is currently a draft. Please enter the password to view it.")),a.createElement("form",{className:"mt-8 space-y-6",onSubmit:async e=>{e.preventDefault(),i(""),c(!0);try{const e=await fetch("/draft",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:r})}),t=await e.json();t.success?(localStorage.setItem("draft-token",t.token),n(!0)):i("Invalid password")}catch(t){i("Failed to validate password")}finally{c(!1)}}},a.createElement("div",{className:"rounded-md shadow-sm -space-y-px"},a.createElement("div",null,a.createElement("label",{htmlFor:"password",className:"sr-only"},"Password"),a.createElement("input",{id:"password",name:"password",type:"password",required:!0,className:"appearance-none rounded relative block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 placeholder-gray-500 dark:placeholder-gray-400 text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 focus:outline-none focus:ring-indigo-500 dark:focus:ring-indigo-400 focus:border-indigo-500 dark:focus:border-indigo-400 focus:z-10 sm:text-sm",placeholder:"Password",value:r,onChange:e=>l(e.target.value)}))),o&&a.createElement("div",{className:"text-red-500 dark:text-red-400 text-sm text-center"},o),a.createElement("div",null,a.createElement("button",{type:"submit",disabled:s,className:"group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-400 disabled:opacity-50"},s?"Checking...":"View Draft")))))}},3766:function(e,t,n){n.d(t,{Hw:function(){return u}});var a=n(6540);function r(e){if(document.querySelector(`script[src="${e}"]`))return;const t=document.createElement("script");t.src=e,t.async=!0,t.type="module",document.head.appendChild(t)}function l(e,t){for(const[n,a]of Object.entries(t))null!=a&&e.setAttribute(n,a.toString())}const o=["loaded","comment:published","comment:edited","comment:deleted","comment:voted","comment:flagged","reaction","rating","auth:login:clicked","profile:clicked"];class i{static script(e){r(`${e=e||"https://talk.hyvor.com"}/embed/embed.js`)}static comments(e,t,n){i.script(e.instance);const a=document.createElement("hyvor-talk-comments");for(let[r,l]of Object.entries(e))if(null!=l){if("translations"===r&&"object"==typeof l){for(let[e,t]of Object.entries(l))e=e.replace("_","-"),a.setAttribute(`t-${e}`,t);continue}"settings"===r&&(l=JSON.stringify(l)),a.setAttribute(r,l)}
1return n&&o.forEach(e=>{a.addEventListener(e,t=>{n(e,t.detail)})}),t.appendChild(a),a}}const s="https://talk.hyvor.com";class c{static script(e){r(`${e=e||s}/embed/comment-counts.js`)}static commentCount(e,t){c.script(e.instance);const n=document.createElement("hyvor-talk-comment-count");return l(n,e),t.appendChild(n),n}static load(e={},t=null){c.script(),customElements.whenDefined("hyvor-talk-comment-count").then(()=>{window.hyvorTalkCommentCounts.load(e,t)})}}class p{static script(e){r(`${e=e||s}/embed/newsletter.js`)}static form(e,t){p.script(e.instance);const n=document.createElement("hyvor-talk-newsletter");return l(n,e),t.appendChild(n),n}}const m=["loaded","subscription:created","subscription:success","subscription:updated"];class d{static script(e){r(`${e=e||s}/embed/memberships.js`)}static memberships(e,t,n){d.script(e.instance);const a=document.createElement("hyvor-talk-memberships");return l(a,e),n&&m.forEach(e=>{a.addEventListener(e,t=>{n(e,t.detail)})}),(t=t||document.body).appendChild(a),a}static gatedContent(e,t){const n=document.createElement("hyvor-talk-gated-content");return l(n,e),t.appendChild(n),n}}const u=(0,a.forwardRef)((e,t)=>{const n=(0,a.useRef)(null),r=(0,a.useRef)(null),{on:l,...o}=e;return(0,a.useImperativeHandle)(t,()=>({wrap:()=>n.current,element:()=>r.current}),[]),(0,a.useEffect)(()=>(r.current=i.comments(o,n.current,(t,n)=>{var a;const r=null==(a=e.on)?void 0:a[t];r&&"function"==typeof r&&r(n)}),()=>{var e;null==(e=r.current)||e.remove()}),[]),a.createElement("div",{className:"ht-comments-wrap",ref:n})});(0,a.forwardRef)((e,t)=>{const n=(0,a.useRef)(null),r=(0,a.useRef)(null);return(0,a.useImperativeHandle)(t,()=>({wrap:()=>n.current,element:()=>r.current}),[]),(0,a.useEffect)(()=>(r.current=c.commentCount(e,n.current),()=>{var e;null==(e=r.current)||e.remove()}),[]),a.createElement("span",{className:"ht-comment-count-wrap",ref:n})}),(0,a.forwardRef)((e,t)=>{const n=(0,a.useRef)(null),r=(0,a.useRef)(null);return(0,a.useImperativeHandle)(t,()=>({wrap:()=>n.current,element:()=>r.current}),[]),(0,a.useEffect)(()=>(r.current=p.form(e,n.current),()=>{var e;null==(e=r.current)||e.remove()}),[]),a.createElement("div",{className:"ht-newsletter-wrap",ref:n})}),(0,a.forwardRef)((e,t)=>{const n=(0,a.useRef)(null),r=(0,a.useRef)(null),{on:l,...o}=e;return(0,a.useImperativeHandle)(t,()=>({wrap:()=>n.current,element:()=>r.current}),[]),(0,a.useEffect)(()=>(r.current=d.memberships(o,n.current,(t,n)=>{var a;const r=null==(a=e.on)?void 0:a[t];r&&"function"==typeof r&&r(n)}),()=>{var e;null==(e=r.current)||e.remove()}),[]),a.createElement("div",{className:"ht-memberships-wrap",ref:n})}),(0,a.forwardRef)((e,t)=>{const n=(0,a.useRef)(null),r=(0,a.useRef)(null);return(0,a.useImperativeHandle)(t,()=>({wrap:()=>n.current,element:()=>r.current}),[]),(0,a.useEffect)(()=>{const t={...e};return t._key&&(t.key=t._key,delete t._key),r.current=d.gatedContent(t,n.current),()=>{var e;null==(e=r.current)||e.remove()}},[]),a.createElement("div",{className:"ht-gated-content-wrap",ref:n})})},8348:function(e,t,n){n.r(t),n.d(t,{default:function(){return g}});var a=n(8453),r=n(6540);function l(e){const t=Object.assign({img:"img",p:"p",ul:"ul",li:"li",a:"a",h3:"h3",strong:"strong",em:"em",blockquote:"blockquote",code:"code"},(0,a.RP)(),e.components);return r.createElement(r.Fragment,null,r.createElement(t.img,{src:"/assets/re-introducing-the-pebble-appstore-0-5b03ccb9-6f41-4a91-9f1c-01e81cc2990e.png",alt:""}),"\n",r.createElement(t.p,null,"TL:DR"),"\n",r.createElement(t.ul,null,"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://ericmigi.com/blog/re-introducing-the-pebble-appstore#production-updates"},"Production Updates")),"\n",r.createElement(t.li,null,"(re)Introducing the ",r.createElement(t.a,{href:"https://ericmigi.com/blog/re-introducing-the-pebble-appstore#reintroducing-the-pe"},"Pebble Appstore")),"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://ericmigi.com/blog/re-introducing-the-pebble-appstore#in-partnership-with"},"Partnered with Rebble")),"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://ericmigi.com/blog/re-introducing-the-pebble-appstore#new-and-improved"},"New and improved")),"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://ericmigi.com/blog/re-introducing-the-pebble-appstore#how-to-build-an-app"},"(re)Start building apps/faces")),"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://ericmigi.com/blog/re-introducing-the-pebble-appstore#sneak-peek-new-pebbl"},"Mobile app sneak peek")),"\n"),"\n",r.createElement(t.h3,null,"Production Updates"),"\n",r.createElement(t.p,null,r.createElement(t.strong,null,"Pebble 2 Duo")),"\n",r.createElement(t.p,null,"For those who didnât catch my ",r.createElement(t.a,{href:"https://ericmigi.com/blog/pebble-2-duo-is-in-mass-production"},"blog post last week")," (pls read), we manufactured 2,960 white Pebble 2 Duos in September! Pretty good for the first month of production. These watches are being transferred to our fulfillment center and will be shipped out soon."),"\n",r.createElement(t.p,null,"Black Pebble 2 Duo production did not start until the end of September, and then got interrupted by a China/Hong Kong holiday. Extremely sorry for the delay on black!"),"\n",r.createElement(t.p,null,r.createElement(t.strong,null,"Pebble Time 2")),"\n",r.createElement(t.p,null,'One fun piece of Pebble Time 2 software development news - we added a feature to make existing Pebble watchfaces/apps now (optionally) scale up to fill larger and higher resolution Pebble Time 2 display! Previous generation Pebble rectangular displays measured 144x168 pixels in 1.26" diagonal, but Pebble Time 2 is 200x228 pixels in 1.5", existing faces/apps would have had a black border on PT2. Many thanks to Alina for posting ',r.createElement(t.a,{href:"https://discord.com/channels/221364737269694464/256091649996881922/1395517128043401258"},"this idea on Discord"),"."),"\n",r.createElement(t.img,{src:"/assets/re-introducing-the-pebble-appstore-1-cleanshot_2025-10-07_at_16.48.452x.png",alt:""}),"\n",r.createElement(t.p,null,"This is fantastic because it will allow ",r.createElement(t.em,null,"all")," older apps/faces to fill up the whole screen. Even better though, many Pebble developers are already upgrading their apps/faces to
1support the bigger screen natively, like ",r.createElement(t.a,{href:"https://lignite.io/"},"Lignite"),"âs beautiful face ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/55386bcd2aead62b16000028?query=mosaic§ion=watchfaces"},"Mosaic"),"."),"\n",r.createElement("div",{class:"video-container"},r.createElement("video",{controls:!0,preload:"metadata",playsinline:!0},r.createElement("source",{src:"/assets/re-introducing-the-pebble-appstore-9-pxl_20251001_2309170933.mp4",type:"video/mp4"}),"Your browser does not support the video tag.")),"\n",r.createElement(t.p,null,"Pebble Time 2 ",r.createElement(t.a,{href:"https://ericmigi.com/blog/pebble-time-2-design-reveal"},"hardware development")," is going pretty well. We finished EVT (engineering verification test) and weâre now heading into the DVT (design verification test) stage. Weâre still working on a number of tasks like tuning the stainless steel PVD hard coating, testing water resistance, integrating our firmware test suite into the factory ERP and more fun stuff."),"\n",r.createElement(t.p,null,"Schedule-wise, weâre behind where I would have liked to be in October. Weâre now aiming to start mass production ",r.createElement(t.em,null,"just")," around the end of the year (12/26 to be precise). That means December pre-orders will not ship out until January at the earliest. Weâll try our best to catch up, but the other looming date is the start of the lunar new year (factory shuts down Feb 1 through 17). Weâve got our work cut out for us! Weâll get it done."),"\n",r.createElement(t.p,null,"Now onto the main eventâ¦"),"\n",r.createElement(t.h3,null,"(re)Introducing the Pebble Appstore"),"\n",r.createElement("div",{className:"flex justify-center my-4"},r.createElement("a",{href:"https://apps.repebble.com/en_US/application/555283c7efff0cc8e50000b0?query=slides§ion=watchfaces",target:"_blank",rel:"noopener noreferrer"},r.createElement("img",{src:"/assets/re-introducing-the-pebble-appstore-3-cleanshot_2025-10-08_at_22.09.51.gif",alt:"The wonderful Slides of Time"}))),"\n",r.createElement("p",{class:"caption"},"The wonderful Slides of Time"),"\n",r.createElement(t.p,null,"For those of you who forgot or werenât around 10 years ago, one of the most awesome parts of Pebble is the huge selection of fun/quirky/beautiful/clever/useful apps and watchfaces (from here Iâll just call them both âappsâ). These were made by an extraordinarily talented community of casual developers, who primarily built apps for themselves and shared them with the broader public. This was facilitated by a damn good SDK, APIs, devtools and documentation created by the friendly and talented software and devrel teams at Pebble."),"\n",r.createElement(t.p,null,"I think the ease of development and hackability of Pebble truly made the world a better place, one little app at a time. I love hearing stories from people who first learned how to program on a free Pebble they got from a hackathon (we gave away thousands this way). ",r.createElement(t.a,{href:"https://developer.repebble.com/blog/2016/05/11/Learning-C-with-Pebble-The-Book/"},"Books")," were ",r.createElement(t.a,{href:"https://pebble.gitbooks.io/learning-c-with-pebble/content/"},"written"),". ",r.createElement(t.a,{href:"https://www.youtube.com/watch?v=LU_hPBhgjGQ"},"Tools")," ",r.createElement(t.a,{href:"https://pebble.github.io/pebblejs/"},"were")," created. My then-girlfriend now-wife (a biochemistry professor) even learned Pebble.JS to create an ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/5344b0d7b89f52694f000132"},"amino acid flash card")," app for her students! Yes, we are nerds."),"\n",r.createElement(t.p,null,"Over 2,000 apps and 10,000 watchfaces were created and hosted on the Pebble Appstore. Itâs time to get (re)acquainted with them - browse away on ",r.createElement(t.a,{href:"http://apps.repebble.com/"},"apps.rePebble.com"),"!"),"\n",r.createElement(t.p,null,"Enjoy the same apps and faces you loved from before, plus some new ones created since 2016 by the developer community that over the last few years ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/688f5e77d36b550009ece4cf?section=watchfaces"},"never")," ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/68937d18f7ca35000951da1b?section=watchfaces"},"ceased")," ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/6899705f76f9e4000ad53ad5?section=watchfaces"},"to")," ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/68013ba9ef119e0009664826?section=watchfaces"},"keep")," ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/67c751c6d2acb30009a3c812?section=watchfaces"},"creating")," ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/67c75cbed2acb30009a3c821?section=watchfaces"},"beautiful "),r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/5a6f1c5c0dfc329496002383?section=watchfaces"},"face")," and ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/62304a7d2a976b000a6e73df?section=watchapps"},"fun"),", ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/68aa0fab4d6161000851b5ae?section=watchapps"},"british"),", ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/68cf73f6e9a54400096dd548?section=watchapps"},"specific"),", ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/68dea5734be9cb0009429595?section=watchapps"},"useful"),", ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/689a51c3ad152a00098e1b66?section=watchapps"},"timely")," apps and ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/60ec78db1342ae0152f9a409?section=watchapps"},"amazing games")," (this is an beautiful Pokemon game written for Pebble in 2023!)."),"\n",r.createElement(t.p,null,"All existing Pebble apps are compatible with the new watches, though some apps may not work anymore due to broken settings pages, obsolete APIs, etc. Hopefully as we ship out more new watches, some developers will re-emerge to rescue some of these apps. Iâm sure new apps will also rise to fill any voids!"),"\n",r.createElement(t.blockquote,null,"\n",r.createElement(t.p,null,"What are your favourite Pebble apps and watchfaces? Share links to your favs in the comment section below!"),"\n"),"\n",r.createElement(t.h3,null,"In partnership with Rebble"),"\n",r.createElement(t.p,null,"For the last 9 years, the ",r.createElement(t.a,{href:"http://rebble.io/"},"Rebble Alliance")," has been keeping the Pebble dream alive. Many of you have used their web services, ",r.createElement(t.a,{href:"https://discordapp.com/invite/aRUAYFN"},"Discord"),", ",r.createElement(t.a,{href:"https://help.rebble.io/"},"helpful instructions")," or ",r.createElement(t.a,{href:"https://dev-portal.rebble.io/"},"dev portal"),". Iâm a huge fan - Iâve been a daily active user since 2017. Without Rebble, itâs unlikely that the Pebble community would be as in-tact as it is today. On top of that, several members of the Rebble (and ex-Pebble colleagues) were absolutely critical in helping Google open-source PebbleOS. Without the community or the OS, there is zero chance that these new watches would be possible! Thank you Rebble!"),"\n",r.createElement(t.p,null,"One other great thing that Rebble did was in 2017 - they archived and started hosting a copy of the Pebble Appstore, before the servers were shut down. New apps uploaded by developers since 2017 have also been popping up!"),"\n",r.createElement(t.p,null,"We have partnered with Rebble to re-introduce the appstore. Their web services now power the Pebble appstore backend. New apps submitted via ",r.createElement(t.a,{href:"http://dev-portal.rebble.io/"},"dev-portal.rebble.io")," will show up on Pebble Appstore as well."),"\n",r.createElement(t.p,null,"You wonât need a subscription with Rebble in order to access the Appstore. C
1ore Devices is funding Rebble, a non-profit, directly to provide this service. You can still donate or subscribe to Rebble and support their community efforts!"),"\n",r.createElement(t.h3,null,"New and Improved"),"\n",r.createElement(t.p,null,"The Pebble Appstore now lives on ",r.createElement(t.a,{href:"http://apps.repebble.com/"},"apps.rePebble.com"),". The web view looks, feels and generally is the same as in 2016, with a few new tweaks and improvements:"),"\n",r.createElement(t.img,{src:"/assets/re-introducing-the-pebble-appstore-4-cleanshot_2025-10-07_at_20.49.272x.png",alt:""}),"\n",r.createElement(t.p,null,r.createElement(t.strong,null,"Social link previews -")," share your favourite watchfaces on WhatsApp, Twitter, Bluesky, Discord, etc! Like ",r.createElement(t.a,{href:"https://apps.repebble.com/en_US/application/556f3a53f51afea7c3000028?section=watchfaces"},"PebbleEye 007")),"\n",r.createElement("div",{class:"video-container"},r.createElement("video",{controls:!0,preload:"metadata",playsinline:!0},r.createElement("source",{src:"/assets/re-introducing-the-pebble-appstore-8-appstore_recs.mp4",type:"video/mp4"}),"Your browser does not support the video tag.")),"\n",r.createElement(t.p,null,r.createElement(t.strong,null,"Similar Apps/Recommendations -")," while building this feature, I was reminded about the true depth of the Pebble app catalog. Itâs easy to get caught up in the âmost heartedâ sectionâ¦use this new feature at the bottom of each app page to discover hidden gems! Itâs not perfect, but itâs helped me discover some awesome apps."),"\n",r.createElement(t.p,null,"Additionally, weâre thinking about adding new features like:"),"\n",r.createElement(t.ul,null,"\n",r.createElement(t.li,null,"Click to try out the app in an emulator"),"\n",r.createElement(t.li,null,"Detecting and warning users about broken APIs and settings pages"),"\n",r.createElement(t.li,null,"More and better categories"),"\n",r.createElement(t.li,null,"Better discovery and recommendations"),"\n",r.createElement(t.li,null,"Highlighting less-hearted apps (give new apps a chance vs old ones with a lot of hearts)"),"\n"),"\n",r.createElement(t.blockquote,null,"\n",r.createElement(t.p,null,"What new features should we add next? Add a comment below!"),"\n"),"\n",r.createElement(t.h3,null,"How to build an app or watchface for Pebble in 2025"),"\n",r.createElement(t.p,null,"One of our goals with this next phase of Pebble is to nurture and facilitate an awesome, easy and dare-we-say fun developer experience for the Pebble developer community. Part of what made the experience so awesome before was the developer relations team! We unfortunately do not have the resources to recruit the whole team back (though I wish we could!). Luckily many of the great decisions they made continue to pay off."),"\n",r.createElement(t.p,null,"The great news is that over the summer, we had an ",r.createElement(t.a,{href:"https://bsky.app/profile/ericmigi.com/post/3lxxgv4gguk2j"},"insanely productive intern")," on our team. He dusted off the SDK, updated it from Python2 â 3 and even built a CloudPebble-like way to build Pebble apps entirely in the browser."),"\n",r.createElement(t.p,null,r.createElement(t.strong,null,"Whatâs working now")),"\n",r.createElement(t.ul,null,"\n",r.createElement(t.li,null,"Try the ",r.createElement(t.a,{href:"https://developer.repebble.com/sdk/"},"Pebble SDK"),"! Tested on Mac, Windows (WSL) and Linux"),"\n",r.createElement(t.li,null,"Or use the ",r.createElement(t.a,{href:"https://developer.repebble.com/sdk/cloud"},"Cloud IDE")," â build ",r.createElement(t.code,null,"hello-world")," and see it on an emulator, all in your browser, in under 2 minutes!"),"\n",r.createElement(t.li,null,"Build an app with AI â run ",r.createElement(t.code,null,"pebble new-project --ai")," then open dir in Claude Code or Cursor (etc) and prompt your way to your own custom app or watchface"),"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://dev-portal.rebble.io/"},"Submit your apps")," to the appstore"),"\n",r.createElement(t.li,null,r.createElement(t.a,{href:"https://developer.repebble.com/blog/2016/10/11/Emery-SDK-Beta/"}
1,"Upgrade your apps")," to support the larger 200x228 px display on Pebble Time 2, run it on the emulator using ",r.createElement(t.code,null,"pebble install --emulator emery")," (just like ",r.createElement(t.a,{href:"https://github.com/stefanheule/obsidian"},"Obsidian"),"!)"),"\n"),"\n",r.createElement("div",{class:"video-container"},r.createElement("video",{controls:!0,preload:"metadata",playsinline:!0},r.createElement("source",{src:"/assets/re-introducing-the-pebble-appstore-7-cleanshot_2025-10-08_at_20.14.21.mp4",type:"video/mp4"}),"Your browser does not support the video tag.")),"\n",r.createElement(t.p,null,r.createElement(t.strong,null,"Whatâs on the SDK roadmap:")),"\n",r.createElement(t.ul,null,"\n",r.createElement(t.li,null,"Pebble ",r.createElement(t.code,null,"packages")," support in SDK"),"\n",r.createElement(t.li,null,"Adding Timeline support into the Pebble mobile app"),"\n",r.createElement(t.li,null,"New APIs for barometer, touchscreen, speaker"),"\n",r.createElement(t.li,null,"JS SDK - brand new, powered by ",r.createElement(t.a,{href:"http://moddable.com/"},"Moddable"),". This will replace ",r.createElement(t.a,{href:"https://developer.repebble.com/guides/rocky-js/rocky-js-overview/"},"Rocky.js")),"\n",r.createElement(t.li,null,"Fixing bugs!"),"\n"),"\n",r.createElement(t.h3,null,"Sneak peek - new Pebble mobile app"),"\n",r.createElement(t.p,null,"Itâs not 100% ready yet, but if you want to try the new Pebble mobile app for iPhone and Androidâ¦you can ð ",r.createElement(t.a,{href:"https://repebble.com/app"},"rePebble.com/app")," (with ",r.createElement(t.a,{href:"https://ndocs.repebble.com/changelog"},"caveats"),")."))}var o=function(e={}){const{wrapper:t}=Object.assign({},(0,a.RP)(),e.components);return t?r.createElement(t,e,r.createElement(l,e)):l(e)},i=n(4810),s=n(8154),c=n(9956),p=n(2965),m=n(3766);const d=e=>{if("string"!=typeof e)return e;const t=e.split("*");return 1===t.length?e:t.reduce((e,t,n)=>0===n?[t]:[...e,r.createElement("sup",{key:n},"*"),t],[])},u=e=>r.Children.map(e,e=>"string"==typeof e?d(e):r.isValidElement(e)&&e.props.children?r.cloneElement(e,{...e.props,children:u(e.props.children)}):e),h=(e,t)=>({children:n,...a})=>{const l=u(n);return r.createElement(e,Object.assign({},a,{className:t}),l)},b={p:e=>{var t;const n=(null===(t=e.children)||void 0===t?void 0:t.toString())||"";if(n.startsWith("[video](")&&n.endsWith(")")){const e=n.match(/\[video\]\(([\s\S]*?)\)/);if(e&&e[1])return r.createElement("div",{className:"relative w-full my-6 aspect-video overflow-hidden"},r.createElement("div",{className:"absolute inset-0 [&>iframe]:w-full [&>iframe]:h-full",dangerouslySetInnerHTML:{__html:e[1].trim()}}))}if("mp4-video"===n){var a,l;const t=null===(a=e.children)||void 0===a||null===(l=a.props)||void 0===l?void 0:l.href;if(t)return r.createElement("div",{className:"relative w-full my-6"},r.createElement("video",{className:"w-full",controls:!0,preload:"metadata",playsInline:!0},r.createElement("source",{src:t,type:"video/mp4"}),"Your browser does not support the video tag."))}if(n.startsWith("[mp4-video](")&&n.endsWith(")")){const e=n.match(/\[mp4-video\]\(([\s\S]*?)\)/);if(e&&e[1]){const t=e[1].trim();return r.createElement("div",{className:"relative w-full my-6"},r.createElement("video",{className:"w-full",controls:!0,preload:"metadata",playsInline:!0},r.createElement("source",{src:t,type:"video/mp4"}),"Your browser does not support the video tag."))}}return r.createElement("p",e,u(e.children))},a:({children:e,...t})=>{const n=t.href&&!t.href.startsWith("/")&&!t.href.startsWith("#")&&!t.href.includes("ericmigi.com");return r.createElement("a",Object.assign({},t,{className:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-800 dark:hover:text-indigo-300"},n&&{target:"_blank",rel:"noopener noreferrer"}),u(e))},img:e=>r.createElement("img",Object.assign({},e,{className:"rounded-lg my-6 w-full"})),h1:h("h1"),h2:h("h2"),h3:({children:e,...t})=>{const n=(a=e)?r.Children.toArray(a).map(e=>"string"==typeof e?e:r.isValidElement(e)&&e.props.children?e.props.children:"").join("").toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").trim().substring(0,20).replace(/-$/,""):"";var a;const l=u(e);return r.createElement("h3",Object.assign({},t,{id:n,className:"group relative"}),r.createElement("a",{href:`#${n}`,className:"no-underline hover:no-underline !text-gray-900 dark:!text-gray-100 hover:!text-gray-900 dark:hover:!text-gray-100",onClick:e=>{var t;e.preventDefault(),window.history.pushState(null,"",`#${n}`),null===(t=document.getElementById(n))||void 0===t||t.scrollIntoView({behavior:"smooth"})}},l,r.createElement("span",{className:"opacity-0 group-hover:opacity-100 ml-2 text-gray-400 dark:text-gray-500 transition-opacity"},"#")))},h4:h("h4"),h5:h("h5"),h6:h("h6"),li:h("li"),strong:h("strong"),em:h("em"),blockquote:h("blockquote"),pre:({children:e,...t})=>r.createElement("pre",Object.assign({},t,{className:"bg-gray-900 dark:bg-gray-800 text-gray-100 dark:text-gray-100 p-6 rounded-xl my-8 overflow-x-auto shadow-lg"}),e),code:({children:e,...t})=>{const n=!t.className;return r.createElement("code",Object.assign({},t,{className:n?"bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-1.5 py-0.5 rounded text-sm font-mono":t.className}),u(e))}},f=({data:e,children:t,location:n})=>{const{frontmatter:l}=e.mdx,o={"@context":"https://schema.org","@type":"BlogPosting",headline:l.title,de
1scription:l.subtitle||l.title,image:`https://ericmigi.com${l.socialImage||"/indexsocial.png"}`,datePublished:l.date,dateModified:l.lastEditedTime||l.date,author:{"@type":"Person",name:"Eric Migicovsky",url:"https://ericmigi.com"},publisher:{"@type":"Person",name:"Eric Migicovsky",url:"https://ericmigi.com"},mainEntityOfPage:{"@type":"WebPage","@id":`https://ericmigi.com/blog/${l.slug}`}},u=r.createElement("article",null,r.createElement(i.N_,{to:"/",className:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-800 dark:hover:text-indigo-300 mb-8 block"},"â Back to Home"),l.externalUrl&&r.createElement("div",{className:"mb-8 text-sm text-gray-600 dark:text-gray-400"},"Originally posted on"," ",r.createElement("a",{href:l.externalUrl,target:"_blank",rel:"noopener noreferrer",className:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-800 dark:hover:text-indigo-300"},new URL(l.externalUrl).hostname)),r.createElement("h1",{className:"text-3xl font-bold mb-2 font-title text-gray-900 dark:text-gray-100"},d(l.title)),r.createElement("div",{className:"text-sm text-gray-600 dark:text-gray-400 mb-8"},"[",l.date,"]"),r.createElement("div",{className:"prose prose-sm dark:prose-invert max-w-none [&_.caption]:text-center [&_.caption]:text-sm [&_.caption]:text-gray-600 dark:[&_.caption]:text-gray-400 [&_.caption]:-mt-4 [&_.caption]:mb-6"},r.createElement(a.xA,{components:b},t)),l.comments&&"hyvortalk"===l.comments?r.createElement("div",{className:"mt-8 pt-8 border-t border-gray-200 dark:border-gray-700"},r.createElement(m.Hw,{"website-id":"12810","page-id":l.slug})):l.comments&&r.createElement("div",{className:"mt-8 pt-8 border-t border-gray-200 dark:border-gray-700"},r.createElement("a",{href:l.comments,target:"_blank",rel:"noopener noreferrer",className:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-800 dark:hover:text-indigo-300"},"Comment on Hacker News")));return r.createElement(c.A,{location:n},r.createElement(s.m,{title:l.title,link:[{rel:"icon",href:"/bc-notes.png"},{rel:"canonical",href:`https://ericmigi.com/blog/${l.slug}`}],script:[{type:"application/ld+json",innerHTML:JSON.stringify(o)}],meta:[{name:"title",content:l.title},{name:"description",content:l.subtitle||l.title},{name:"author",content:"Eric Migicovsky"},{property:"og:type",content:"article"},{property:"og:url",content:`https://ericmigi.com/blog/${l.slug}`},{property:"og:title",content:l.title},{property:"og:description",content:l.subtitle||l.title},{property:"og:image",content:`https://ericmigi.com${l.socialImage?l.socialImage:"/indexsocial.png"}`},{property:"og:image:width",content:"1200"},{property:"og:image:height",content:"630"},{property:"article:published_time",content:l.date},{property:"article:modified_time",content:l.lastEditedTime||l.date},{property:"article:author",content:"Eric Migicovsky"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:url",content:`https://ericmigi.com/blog/${l.slug}`},{name:"twitter:title",content:l.title},{name:"twitter:description",content:l.subtitle||l.title},{name:"twitter:image",content:`https://ericmigi.com${l.socialImage?l.socialImage:"/indexsocial.png"}`},{name:"twitter:image:alt",content:l.title},{name:"twitter:creator",content:"@ericmigi"}].filter(()=>"external"!==l.type)}),r.createElement("div",{className:"max-w-xl"},l.draft?r.createElement(p.A,null,u):u))};function g(e){return r.createElement(f,e,r.createElement(o,e))}},8453:function(e,t,n){n.d(t,{RP:function(){return l},xA:function(){return i}});var a=n(6540);const r=a.createContext({});function l(e){const t=a.useContext(r);return a.useMemo(()=>"function"==typeof e?e(t):{...t,...e},[t,e])}const o={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||o:l(e),a.createElement(r.Provider,{value:i},t)}}}]); 2//# sourceMappingURL=component---src-templates-post-js-content-file-path-content-blog-re-introducing-the-pebble-appstore-mdx-b6b4e6bfc316b2c43e33.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.