NewBox

Hmm. One of the things that I’ve been struggling with is that while I want to run my current sites with Elements, I have other sites that were done in Sandvox, and that product stopped working after macOS Monterey (it also had issues in Monterey, but it was still functional). Sometimes I do have to go in and make an edit/change/deletion/addition on those old sites, and running Sandvox in a virtualization works, but is a PITA.

After all the chatter about ArtCraft and how they had reproduced Adobe, Microsoft, Avid, and Autodesk programs with AI help, I decided to play around with Claude trying to figure out how Sandvox worked. As it turned out, the underlying data structures are easily understood and well designed. So I set out to rewrite Sandvox in Swift for modern macOS versions.

An hour later, we were at this:

It’s a little more modern looking than Sandvox (which I prefer), but functionally equivalent (at least up to the level I need; I left off a few things I don’t use). What you see here is one of my sites in edit form from 2025, and using Bluebell’s Reactive CSS for the site design, as before. NewBox is already functional and able to make changes, though I still have some bits and pieces to fix, and I haven’t yet hooked up the font panel and publish bits. Currently working on preferences.

Yikes AI coding has come a long way.

Amazing work….

Yes I’m finding Claude very very fast at 5.5 extra effort

been doing many apps

Going back many times for changes and nicer features…

did my ‘first’ big app over three days - really impressed….

I’m also discovering that rewriting a program like this allows for some additional bits. So, for instance, instead of just Insert Page in the page structure, I’ve added Insert Markdown Page ;~). This adds a convenient feature to the program that was never in the original.

Very clever…. Yes nice addition

It is fun to see an app ‘come to life’ and then make the exact adjustments that you would like to see…

small details - small changes - small design changes

Etc….

I hope these sell… I would like to continue making apps… but $100 per month Claude fee will put the kabosh on it quickly…

I really enjoy the creation process and then personally using it myself in my daily tasks….

might be a stupid question :man_raising_hand: but how do you promote your apps? Do you do anything special? Try social media?

Well, it’s always been about marketing ;~).

The real issue is hitting some critical mass. Fortunately, I had enough uniques (1m annual) that I could just quietly promote from my site and that was enough income for me (my RMDs these days are ridiculous). I don’t do social media. I may have to for some upcoming products (including a game).

Once you start marketing, CAC (customer acquisition cost) becomes the critical factor.

Before going on, you should know that I put myself though college by playing trumpet in the Spokane Symphony (initially second chair, eventually first).

My advice is that you need to go where trumpet is studied. If you can get a current symphony player or university instructor that has a big enough following doing social media about your products, that would be the biggest win, I think. The other route I’d look at, though much harder, would be to hook up with a trumpet maker (Yamaha, Besson, Getzen, Selmer, etc.) and give away something with each purchased instrument.

Been too long since I was an active player for me to know the actual dynamics of trumpetdom these days, but there has to be a path into the niche that triggers the boost you need to get visibility.

Yes - the trumpet is a wonderful instrument and I’m glad I got to meet you here on the forum… very nice that it put you through college!!! Very impressive. I was digging through my filing cabinets and found my old Hummel from 45 years ago…

I’ve probably got 200-300 books? Or more to sell - just the idea of taking a picture of each - stops me every time… tons of sheet music 45-50 years of collecting… time to let them go…

back to apps…

I’ve made 10? Apps - 2 are trumpet - the rest are general utility apps - pdf - image - safari extension - rename files - transfer files folder check - etc…

so only 2 the game and the main practice app are trumpet…

Really tried to fill niches of unserved utilities and productivity apps

Yeah, “general” apps is tough. But I’d try to find a place/niche/social where each might get some life, and try to find the people who could help promote each.

Yeah AI is getting pretty good in this regard.

Using something like Morluto Rea + AI is even more crazy.

You can clean room a plan with one AI model and write the code from the plan with another AI model in any code language. Eventually these AI models will further excel at this on their own but it’s already pretty crazy. Which yields questions regarding the resulting outcome of all this ultimately. It’s fascinating from a legal standpoint, but it appears many apps will be succumbing to this and further advancement and sophistication of the same app ideals will be exploding.

Modern innovation :joy:

:cross_mark: Rejected

Wow general apps is very tough…

Many Fails… really dejected

I’ve spent so much time on them… and to have it rejected seems very harsh…

This is pretty cool… but, what I’d like to see is a Sandvox to Elements converter :sweat_smile:

Wasn’t aware of that before, so thanks, but I don’t think it would have helped me much, as I know how to clean room a product efficiently. I’m actually pretty stunned how fast I was able to do that with Sandvox (though I did leave off a couple of things I never used with that program).

I’ve been thinking about that. But I don’t think anything really changes. The pattern has been

  • Someone does something completely new and it takes off
  • Others begin to copy and derive off the successful product
  • The ultimate winner is one with size and marketing strength
  • Everyone scrambles to try to find some small addition/change to stay alive

Yes, the speed at which the copying can be done is faster (and cheaper), but the only thing that changes is that when you have a true innovation you have to market the heck out of it day one and grow your sales as fast as possible.

In terms of what Elements is doing, I think they missed the earliest window for that but found their traction around 2.x and have been spinning fast since then. If they keep spinning fast it just makes it more difficult for the copiers and derivative products to get traction. I think the only real issues for Elements are (1) how big is the market? and (2) how do they reach everyone in that market with the message? Ultimately, though, the real issue is whether or not the Web continues as it has been. Folk like Dave Winer are trying to rewind it back to where it was before, but Silicon Valley is trying to wind it into something it currently isn’t (call it WWW 4.0).

Are you talking about Apple’s App Store? Yeah, they’re bizarre on their acceptance/rejection reasoning. They’re causing their own problems now.

Maybe. Again, the structure Sandvox was using is easily understood and parsed. Being able to pull the HTML, media, site structure, and even things like sidebars would be simple. The problem comes in two bits: (1) you can’t duplicate the Sandvox designs without stepping on Copyright, as they’re full of media that was theirs. (2) Sandvox allowed third party CSS additions (e.g. Bluebell), which also becomes problematic in copying.
So while I can see being able to put together a converter, I don’t believe I’d want the legal liability. It’s one thing to build a new app that parses my sites that were built in Sandvox structure and put them into essentially a pure WYSIWYG CSS implementation I can edit, it’s another to try to duplicate all the sites that are using Sandvox designs.
Another stat: I’ve now run NewBox on over 5000 original Sandvox pages and have yet to find something NewBox is getting wrong. I’ve corrected multiple Sandvox bugs, I’ve added new functions and page types, and I’ve cleaned up how NewBox uses the Media folder (Sandvox was a mess at this). Still have a bit more work to do before I call it done. At that point I can go back to redoing those sites in Elements, as Elements now has abilities/capabilities I don’t want to spend the time adding to NewBox. The point is content, not how to create the content. At the point where I start moving a site from NewBox to Elements, maybe I’ll revisit whether a generalized converter is worth creating.

For those that are curious, here’s the current iteration (note the top banner and menus are now fully active, and there are additional controls).


Also, just for the fun of it, you never save in NewBox. Any change is immediately autosaved (I now have to add more levels of Undo ;~). Last night I added direct SFTP publishing (I was using Publish to Folder).

As one final thought: this has made me wonder whether or not it would be worth building out other programs that have died (including some of my own, such as Tycho TableMaker, from which Microsoft copied pivot table). Someone else wrote that they wanted to see some of the old word processors resurrected, and off the top of my head I can think of about a dozen lost programs that would still be useful if they still existed on a modern macOS.

We’re in an odd time. What I’m finding is that it’s possible to “fix the past.” I don’t want to live in the past, but then again I do miss some of the things we were doing that got perverted and enshitified along the way.

Nothing wrong about making a tool that works for you today - the way you want it to work…

I’ll give you permission! lol :joy:

Okay. I was doing some refinement today with NewBox (amazing what I can now add/change on the fly. Still doing testing, but I’ll probably go live with this on the old sites soon.

Along the way I asked Claude about viability of doing a Sandvox to Elements converter. Here’s the reply:

Yes, I think it’s feasible, and you’re further along than you might think. A converter has two halves: reading Sandvox and writing Elements. The reading half is the hard one, and NewBox already does it.

Reading Sandvox is solved. NewBoxKit reads .sandvox files completely: pages, collections and blogs, text, sidebars, indexes, media, links between pages (~PAGEID~), code injection, and the original page addresses. That’s proven against four large real sites. It also leaves you with a clean, documented copy of each site, which is a much easier starting point than raw Sandvox files.

Writing Elements is the unknown, and it’s Realmac’s to solve. I couldn’t find any public documentation of the .elements project format. Realmac did build an importer for RapidWeaver Classic projects, so they already have code for creating Elements projects from another app’s content. That importer is explicitly content-only:

  • Text becomes Typography components and images become Image components.
  • HTML and Markdown pages become code pages.
  • Unknown stacks become Containers, and you rebuild the design yourself.

A Sandvox importer would follow the same pattern.

How well things carry over:

  • Directly: page tree, titles and file names, meta and SEO fields, text, images, raw HTML, code injection, site settings. Keeping the page addresses matters a lot for search rankings, and NewBox already preserves them.
  • With some interpretation:
    • Sidebars become something Elements can reuse across pages, such as Globals.
    • Indexes and blog listings depend on whether Elements has an equivalent; I don’t know enough about its blog and collection features to say.
    • Photo grids become galleries.
    • Inline image sizes, captions and callouts need sensible defaults.
  • Not at all: the design. Sandvox designs are fixed themes and Elements is built on Tailwind, so the look has to be rebuilt either way. That’s the same trade-off Realmac already made for RapidWeaver.

The practical split would be for NewBoxKit to export each site in a neutral form (structured data plus clean HTML plus the _Media images). Realmac would write the importer on their side, since they own the format. A standalone converter that writes .elements files directly is possible only if they give you the format, and it would break whenever they change it.

Hmm. Claude wasn’t hooked to Elements when it answered, so it was assuming writing an Elements file from scratch. When I hooked it up via MCP its answer changed quite a bit. Essentially here’s what it suggested:

1. The converter app (NewBoxKit, no AI needed) produces a migration bundle. It opens the .sandvox file and writes out:

  • the page tree, settings and SEO fields
  • clean HTML for each page
  • the blog as a set of CMS entries
  • the images
  • a captured design summary (colours, fonts, widths, sidebar side, header image)

It reads the design from the published site if there is one, and otherwise renders the pages with the design files from the user’s Sandvox installation. All of this is deterministic and runs on the user’s Mac.

2. The bundle gets into Elements, either of two ways:

  • Claude-assisted (you, or anyone with Claude): I read the bundle through the Elements MCP server and build the site, making judgment calls on odd elements and matching the design as closely as I can. This gives the most faithful result, and it’s how you’d migrate your deprecated site.
  • Native import (everyone else): Realmac adds “Import NewBox bundle” to Elements, alongside its existing RapidWeaver Classic importer, applying fixed rules for each element type. Small sites have few odd cases, so fixed rules would handle most of them well.

Note Claude referred to NewBoxKit. This is actually a code component Claude and I designed that pulls apart a Sandvox site so that the NewBox program can then work with the data. It can run standalone, so could be distributed. All it does it take a .sandvox file and make .newbox file. You still have to re-assemble the data, which is what the “two ways” bit is all about.

Be careful what you wish for @dan . My real problem at this point is I don’t have other Sandvox sites to test with the idea. I’d need a variety to make sure what I provide works well.

@thominator I was going to suggest using the Elements MCP for this! You don’t have to use it via AI, you can connect a script or program directly to the MCP server and call the tools directly.