firecall 8 hours ago

You mean it's no longer built with WebObjects!

https://en.wikipedia.org/wiki/WebObjects

  • themafia 7 hours ago

    Java has it's place but it was delivered in such a way that it created an immense amount of collateral damage and lasting technical debt.

    • pavlov 2 hours ago

      WebObjects was originally written in Objective-C.

      Now that's a fine language for a server. It combines the type safety of Ruby, the memory safety of C, and the terseness of Java.

      (I'm joking, mostly... Actually I was a big fan of Obj-C for desktop apps. Fond memories of times when I didn't have to care about servers and ever-changing web frameworks.)

    • firecall 5 hours ago

      I was kinda trying being funny or sarcastic or something like that :-)

      And amusing to myself how many people actually remember or know what WebObjects was!

      • karel-3d 3 hours ago

        All I know about is it the great box art. It always looked so cool and mysterious to me as a young developer.

        The same with everything called "XSan" and "Mac OS X Server". I don't know what any of it was, but the box art was always so cool.

ChrisMarshallNY 13 hours ago

As a frequent user of the backend (Connect), I am skeptical that this is source that you want to reproduce (unless you're a scammer).

  • numpy-thagoras 5 hours ago

    The source code had a very elegant and systematic use of intents (including prefetched intents) and a dependency injection container.

    The pattern itself is a little bit different, has some conceptual overhead, but it's also fairly clean and scaleable.

dzonga 2 days ago

sourcemaps should be enabled -- that's how people learn.

a lot of people learned to code on the web via viewsource - now we are obfuscating the code

  • zerr 12 hours ago

    Probably due to usage of fat front end frameworks which also include whole business logics.

  • namegulf 9 hours ago

    sourcemaps are not for learning, it's for debugging

    • embedding-shape 9 hours ago

      Some sites want to ship small bundles to the client by default, sourcemaps enables that + you get to introspect it because it's downloaded only when requested. Literally best of both worlds :)

      • samdoesnothing 7 hours ago

        I love shipping source maps for my stuff bc it lets other developers take a peek and I love doing that with other peoples sites :)

    • samtheprogram 6 hours ago

      Idk why you are getting downvoted.

      To elaborate on your comment, if you just ship sourcemaps in production, that means you can ship minified code and track down what _actual_ source that you _aren't_ shipping to users is getting called, is in stack traces, etc.

      I'm not aware of a point of sourcemaps otherwise.

    • silverwind 5 hours ago

      Yep, sourcemaps are essential to get usable error stack traces, and that's their only purpose.

aitchnyu 4 hours ago

Is there any reason sourcemaps are a genuine problem? I'm out of touch with the JS world, but I wonder if code is shared between server and client and server code may show in sourcemaps.

  • dominicrose an hour ago

    If obfuscating code is a necessity then sourcemaps are a necessity as well, they should just not be available in production.

namegulf 9 hours ago

Still not sure What was the excitement about.

Was it, HTML, CSS & Javascript?

  • Yaina 9 hours ago

    It's written in Svelte, which personally I'm excited about just because it means that a pretty big tech company is using it :)

    And the "leak" is fun for me because you can see how they write their components haha

    • icar 2 hours ago

      Apple Music web is written in Svelte as well. At least last time I checked.

    • arvinsim 7 hours ago

      Can you tell me what is the number 1 feature that Svelte has over the incumbents like React?

      • flowerthoughts 4 hours ago

        (Not a user, just evaluated it previously. Please correct what I got wrong.) They compile the reactivity statically, so instead of tracking effects at runtime, they generate code for it. I'd guess it means slightly more JS to download, but less initialization in runtime.

        However, they recently added runtime reactivity to be more flexible, so it seems to me they are becoming VueJS.

      • troupo 3 hours ago

        Radically simpler reactivity that doesn't require 20 different hooks to do the same thing.

        Same goes for most modern frameworks (Solid, Vue, Preact) and even old ones experiencing a renaissance like Angular.

    • no_wizard 9 hours ago

      I wonder what the heck @jet is. Never heard of that before. Must be an internal lib?

paulddraper 4 hours ago

I remember when all websites “exposed” their source code.

  • johanbcn an hour ago

    And some webmasters were pretty keen on interfering with the context menu and your shortcut keys in order to prevent you to see it (and failing).

p0w3n3d 2 hours ago

How DMCA can take down code that was published in the web?

  • plq 2 hours ago

    The (non-existing) license doesn't say it was to be "published in the web"

wackget 9 hours ago

Honestly the site[1] is very basic and pretty damn slow. When I click into a different category there is a noticeable delay of 1-2 seconds before the new page loads. I don't want to replicate this in any of my own projects.

1: https://apps.apple.com/

  • pwdisswordfishs 7 hours ago

    Just checked, and it's pretty snappy... under Firefox... on 10-year old hardware... that was originally a Chromebook.

    Have you tried visiting the site on a worse machine?

  • samdoesnothing 9 hours ago

    That's what this type of SPA architecture leads to unfortunately. Routers should immediately display the navigated to route with place holder content / skeletons, but instead all the frameworks basically wait for all the data to load before transitioning. You can technically stream the data in but even a single awaited promise will block the navigation until it succeeds. And it's not an issue that shows up in dev because typically the data loading is instant.

    • cyberax 9 hours ago

      Nope. Skeletons are the worst. Down with the necromancy!

      They try to create a _perception_ of a quick answer while adding overhead and distracting people.

      • bastawhiz 7 hours ago

        Skeletons are a loading state. Get rid of skeletons and you either have unresponsiveness or flashes of nothingness

        • themafia 7 hours ago

          The flashes signify actual changes. It's a secondary signal to resume paying attention to the page.

          What I truly hate are animated skeleton boxes or element level spinners. Why are you trying to hold my attention on something that's not even loaded yet? We all understand the UI paradigm and implicitly understand network delay, you don't need "comfort animations" to keep me happy. I'd rather use the time to look at any of the other tabs or applications across my screens. Then the flash of content actually means something.

          • shooly 5 hours ago

            The point of skeleton loaders is to prevent the page from jumping around furiously, which would force the user to re-parse the layout (possibly) multiple times.

            • themafia an hour ago

              In my experience it's just amateur UI design that causes this. Your display areas shouldn't change size unless the browser changes size. There should be nothing that is "content fitted." That's a historical mistake of early HTML but it's something easily overcome. You really do have to get the HTML+CSS to work like a desktop app before you layout your SPA.

              Worse still, applications like microsoft outlook on the web, use the skeleton boxes with comfort animations. What they don't do is pre layout their icons. And different icons will appear in different contexts. I often get the case where I aim for one icon, something will load in, create a new icon, and push my intended target out of the click.

              Skeleton loaders are a bad kludge over an initially ignored problem.

        • pier25 7 hours ago

          Either you wait to get all the data to display the new UI, you show spinners, or you show skeletons.

          Personally I prefer to wait than having multiple flashes of content but I do agree no approach is perfect.

        • cyberax 6 hours ago

          Which is fine. Nothingness, or a generic spinner actually don't lie to me.

          Skeletons lie by making an impression that the data is just about ready. So there's this failure mode where data is NOT ready because of a slow app/network, and I end up staring at a fake. Even worse, sometimes skeletons also break scrolling, so you end up even more frustrated because your controls don't work.

      • eviks 8 hours ago

        It's not a perception if partial load shows some information faster than waiting for the full load

      • samdoesnothing 8 hours ago

        It far and away beats the alternative which is clicking on a link and nothing happening. Feedback should be within a frame or two of latency, not seconds...

        • halapro 7 hours ago

          If you let the browser change page, then you do have feedback. Super native.

        • kid64 7 hours ago

          That's not the only alternative, there are a range of options between those extremes.

andoando 2 days ago

App store uses svelte? :o

  • theshrike79 3 hours ago

    Waiting for the Fireship video :)

  • zote 2 days ago

    Apple Music uses Svelte too

    • wiseowise 3 hours ago

      Apple Music desktop “app” is a crime against humanity.

    • qn9n a day ago

      And Apple Podcasts

  • silverwind 5 hours ago

    And MacOS Settings uses react.

    • sunaookami 3 hours ago

      Only for the iCloud webviews, not for the whole settings app.

  • ranger_danger 13 hours ago

    And the Windows 11 start menu is just React Native. Strange times indeed.

    • dlivingston 12 hours ago

      It's pretty clear to me that JavaScript is becoming the de facto standard for UI/UX programming, regardless of platform, and regardless of web vs. native targets. Even GNOME has JavaScript bindings. [0]

      [0]: https://gjs.guide/

      • andoando 11 hours ago

        Personally I love it. HTML/CSS is still the best, most well documented and familiar gui framework

        • ranger_danger 7 hours ago

          The problem is performance... requiring a web browser to draw a UI takes a LOT of CPU and memory, and not all devices have enough power to deliver a smooth experience across all potential workloads.

          I worry that every year we keep increasing our processing requirements and bloat without good reason for it.

          Why should every Windows release require a faster and faster CPU, and more and more RAM?

          The recommended amount of memory for Windows 95 was 8 megabytes, and for Windows 11 it is 8 gigabytes. Why is this not horrifying?

          My small Linux system with openbox GUI barely cracks 100MB memory usage in 2025.

          • Rohansi 6 hours ago

            > requiring a web browser to draw a UI takes a LOT of CPU and memory

            What makes a browser so much more inefficient vs. other UI frameworks? Is it really the browser's fault or the website's you're visiting?

            • troupo 3 hours ago

              What makes the browser slow and inefficient is the fact that it's not a UI framework. It's a system to display text and a couple of images on a 2D plane where every element depends on every other element.

              Almost every single interaction and change requires the browser to recalculate the layout of the entire page and to redraw it. It's basically Microsoft Word, with nearly the same behaviors.

              And there are no proper ways to prevent that behaviour. No lower and low level control over rendering. Awkward workarounds and hacks that browsers employ to try and minimize re-layouting and redrawing. Great rejoicing when introducing yet more hacks for basic things: https://developer.chrome.com/docs/css-ui/animate-to-height-a... etc.

              • Rohansi 2 hours ago

                > It's a system to display text and a couple of images on a 2D plane

                And how is that different from a UI framework?

                > Almost every single interaction and change requires the browser to recalculate the layout of the entire page and to redraw it.

                What UI frameworks don't do this?

                • troupo an hour ago

                  > And how is that different from a UI framework?

                  In none of them text is primary and all other incidental?

                  > What UI frameworks don't do this?

                  In which UI framework actions like "set focus on an element" triggers a full page re-layout?

                  Also, in which UI framework there's even a discussion of "try to not trigger re-paint/re-flow"?

                  And yes, I know about immediate mode UI where the entire layout is re-calculated every frame. But then they can usually render thousands of elements at 60fps.

              • wiseowise 3 hours ago

                That’s just plain wrong, even ChatGPT will rebuke your comment. I’m sure someone working on Blink/WebKit will just laugh at your comment.

          • shooly 5 hours ago

            > Why should every Windows release require a faster and faster CPU, and more and more RAM?

            I don't know. But does it? It doesn't seem like you verified that yourself - you're comparing stated recommended specs of Windows to actual usage of Linux.

          • edoceo 4 hours ago

            There are slim webviews, that can do core HTML and CSS, make a nice UI and not chew all the RAM.

        • samdoesnothing 7 hours ago

          Have you used other ones? Not a dig, I've primarily used HTML/CSS for UIs and have been playing around with Compose recently and haven't made up my mind what I like more.

          • nish__ 7 hours ago

            Same here. I've grown to really love Jetpack Compose. Personally, I'd say I like it better than any other framework I've tried before.

        • NooneAtAll3 5 hours ago

          html/css yes

          js? get that thing off of me

      • ranger_danger 7 hours ago

        From what I have seen, most of the current GNOME UI is in fact just javascript. And any plugins people write for it are also javascript.

        • skydhash 2 hours ago

          GNOME has its own interpreter, kinda how React Native does it for mobile. But performance all boils down to the layout engine. Most native UI components take shortcuts with text which is the most difficult thing to render. And the widget tree is simpler.

          And there’s the whole inspector in web browser, meaning that the layout is not done once and forget. There’s various sub components still present for whatever features. Great in the browser, not great for standalone apps.

    • hebelehubele 12 hours ago

      What the fuck. Does that mean alternative start menus (e.g. Stardock Start11) are provably faster & lighter on resources?

      • Chabsff 12 hours ago

        Not by virtue of that alone.

        A choice of tech stack can never be enough to prove anything. It only establishes a lower bound on resource usage, but there is never and upper bound as long as while() and malloc() are available.

burntice 12 hours ago

Dumb question but Apple’s apps are buttery smooth. I just assumed they were using swift and not a web stack to render their UI. Am I completely wrong?!

  • dewey 2 hours ago

    Apple Music is not buttery smooth and was just a web view for a long time. I feel like I read that this changed a few years ago. This didn’t change the fact that it’s very slow.

    • lloeki 2 hours ago

      The iTunes Store, which was embedded in iTunes, sure was a webview, but I don't think Apple Music ever was a webview?

      (Except maybe the "Home"/"For Me" pages which are just "discovery page" extensions of the store and the Apple Music service that's built on top of it)

      The macOS one descends from iTunes and the iOS one descends from the original iPhone which sure as hell wasn't a webview.

      • dewey 2 hours ago

        It was, you often could see JS error messages or weird rendering errors / flickering (Also some other mentions: https://news.ycombinator.com/item?id=20892650).

        There's also some parts of System Settings that were always web views, which I always found surprising for a company trying to make the case for native apps.

  • cyral 12 hours ago

    This is the source for the web version of the app store

    • elpakal 9 hours ago

      which is definitely not buttery smooth, I use it every day

    • socalgal2 7 hours ago

      which is the same as they use in their native app. It's just a webview

OCTAGRAM 2 days ago

There was Cappucino by ex-Apple employees, and actual Apple devs had SproutCore. So where did they go? Why some unknown libraries?

  • afavour 13 hours ago

    It's using Svelte, I wouldn't exactly call that unknown. Why maintain your own library when a third party one does exactly what you need?

  • frou_dh a day ago

    Unsurprisingly there are many frameworks/initiatives that end up falling by the wayside over the years, e.g. MacRuby was being lined up to supersede Objective-C for app development at one point.

lapcat 11 hours ago

I downloaded the code from the repository yesterday, but it's really not very interesting.

zb3 12 hours ago

In case you want to save sources with the ability to fetch all possible lazy chunks, last year I made a tool to do exactly that: https://github.com/zb3/getfrontend

(note it won't work on apps.apple.com because apple has removed these sourcemaps)

nacozarina a day ago

hilarious —- great score !

AbstractH24 3 days ago

Just came here to post this.

Curious if it was done intentionally or simply due to hurrying.

  • isodev a day ago

    It's not a bug! Websites are supposed to have human-readable markup and scripts.

  • rxliuli 2 days ago

    It appears to have been an accident now - they fixed the issue two hours after I posted on Reddit.

  • phillipseamore 3 days ago

    The web version of the App Store? It's always been web and webview based, there used to be a preferences/default command to enable web inspector for App store, Music and more Apple apps on MacOS.

    • galad87 2 hours ago

      Nowadays it's all AppKit/UIKit/SwiftUI. It's no longer a webview.