Dev Diary Ep24 - Local Data Store

Hello again,

This week we’re finally taking the wraps off local data stores in RapidWeaver Elements.
This is just the beginning of a feature that will power the future of building website in Elements!

Elements will provide a range of data compatible components, as well as giving you the option to use datasets in your own custom components. Don’t worry, if you’re unsure of what all that means, just watch the video below and it’ll all start to make sense!

The possibilities for this powerful new feature really are endless.

As always, your thoughts and feedback is really appreciated :pray:

Dan & Team Realmac


Good work guys. As usual there’s a lot to soak up with this feature. I guess I would have to mess with it and see if it’s something that would or could help me in the way I build sites. Are there plans to unveil CMS with Elements?

Did you really say HyperCard? Wow! Talk about a blast from the past.

So the obvious question is can one import from a database file or a .csv or something, so one can manage the data externally? I can’t see adding a lot of records being very easy with that interface, much less updating them.

Joe Workman’s Feeds stack, which I haven’t purchased yet, but is on my list, seems pretty useful. One can create a database, say in ProVue’s Panorama, export a csv file, and you are good to go. If you need to make changes, like any good database, you have a lot of power. I’m thinking of you built a price list for a restaurant, for example. Changing prices in a database would be fairly easy, but changing prices within Elements would be a bit of a nightmare. Is there a way to link out to a file “feed?”


This is definitely an interesting feature, but I’m unsure whether it’s designed for more complex workflows. Managing data a single record at a time, and not being able to see all records at once in the editor provided seems rather awkward.

It would be nice to be able to simply drop datasets managed/exported from other apps (Numbers, FileMaker, csv, json, xml, xlsx) and the provide a schema and migration to translate from the imported data, to the appropriate Elements properties. Of course, then being able to continue to edit these datasets (or re-import them as required) in Elements would be extremely powerful.

Also, the collection feature seems to support just a simple, flat structure, instead of allowing for additional depth (via objects and arrays) to the datasets. For example album.track[n].name, album.track[n].artist, or photo.tag[n] which could then be iterated within the Element/Component (I’m still confused as I believe the video labels the component as an element in the UI) code to display the data as intended.

I’m astounded how often HyperCard is still mentioned—very fondly—37 years after it was first released, and 26 years since it was discontinued. My part-time job while at uni was making HyperCard stacks for a local Toronto company. Happy times. :slight_smile:

I can absolutely see this being useful. I don’t know if/how it could be added to a CSV but that would be amazing as well. I know give a bit–take a lot. But as you said, really powerful potential here.


You read my mind on external access. However, this looks very, very useful for small datasets like the demo of an FAQ.

External datasources would be:

  • Local
    • spreadsheets (Numbers, Excel, CSV files, etc.)
    • databases (e.g. Tap Forms, FileMaker Pro, etc.)
  • Server-side (e.g. your web host provided SQL database)
  • Cloud services (Google Sheets, Excel 365, etc.)

With access to those this ability would be huge. Feeds, BTW is a nice stack as all of Joe’s stuff is. But without a platform to run it on it will be useless.

1 Like

Loved the demo. The local JSON access approach looks to be very useful.

However, the thing that interested me the most is watching you using the custom components again. I began working up a custom GPT that I will train on:

  • custom component manuals and examples when available
  • Tailwind
  • Specific instructions on how to build out each of the custom component sections.

I don’t recall if custom components can be shared easily across projects. If they can, just wow.

As excited as I get about using my external GenAI tools, I would still prefer to see a very specifically trained GenAI capability in RWE for doing things like generating custom components. But that is just something to add on wish list of the future.

1 Like

This might be a very useful tool for a 3rd party to create. I can see the upkeep and support being pretty cumbersome as the core of LLM’s change often and the answers change every time.

Since it would be a very focused model, I think it would be able to use local Apple Intelligence. I think that the training would be a natural part of Realmac updating their manuals and examples so it would not take additional effort. When you update the application/help files, this model would have access to the new information.

I like this idea. This would be helpful, but since Apple is not releasing it to the EU it might be awhile, if ever.

I hope that not being available in the EU doesn’t stop Realmac. the EU is just one market–even though it is large and important, it is not the only one.

1 Like

Thanks for the feedback as always!

One step at a time :wink:

Again, one step at a time … let’s get this shipped first before we open up even more complex features…

For sure, we just haven’t updated all references yet. Everything will get ironed out, don’t worry.

Hypercard was the reason I got into programming. I have such a soft spot for it :smiling_face:


Not yet, but that’s an obvious feature to add…

1 Like

@dan any chance that the FAQ module can also take links? Will the text fields take html? I can envision the FAQ being a page summary (title, summary, link) linking out to a full length article.

Is it possible to embed PHP code within Elements? I would need to connect to a MySQL database for creating, reading, updating and deleting. E.g. code a form to write to a database or read from a database and display in a table.

1 Like

Yes, you can do that! Elements also has PHP built into the local preview :tada:


Since this is Local Data, I have a couple of questions.

  1. What is the file format the Data is stored in?

  2. What is the file structure and what folder does this data get stored in?

Ah! HyperCard, what fond memories. It was what got me a job working at Apple. Such fun!

1 Like

Well… technically it’s in a JSON format, but it’s stored privately in the project.

We have discussed adding an import feature (for various sources), so of course we could also add an export feature for your data.

1 Like

With each step, it looks very promising and I am looking forward to when it is ready for production work.
As with some other comments already made, I would like to see the ability to bring in data from an external source whether that is from a spreadsheet, csv, Airtable or from a MySQL database.
At the moment I use a MySQL database for blogs so that authorised users can add content external to the RW environment. I don’t like the idea of having to edit the project each time I want to add another record.
If the formatting of the content was managed inside Elements but the data was external, that would be ideal.
In the past, before Airtable changed the API, I was using Airtable for some of the content and I was able to have the formatting of the data managed inside RW. It was a good solution for me personally.