Inkognito

Inkognito

How to build a Wordpress to BeaconCMS migrator?

I recently came across

If someone wanted to tackle writing a Wordpress -> @BeaconCMS migrator that would be awesome#ElixrLang

— Brian Cardarella | bcardarella.bsky.social (@bcardarella) March 6, 2025

I was curious about how such a solution would look like ?

I am not familiar enough with WordPress ecosystem, do they export and import sites with default WordPress file exporter or some other plugin is the go to ?

Would our migrator ingest the WXR / xml and map it to existing users and functional components ? or is there some other way to do this?

How would it look like functionally (CLI tool, beacon live admin page, script ?)

It would definitely be a large undertaking, is there a way to eat this elephant one bite at a time ?

Most Liked

Inkognito

Inkognito

Incase anyone views this !!
Approach I am taking

UX

→ have a custom page on beacon live admin for each site
→ the user can upload 3 files

  1. input xml file definition (input_config.xml)
  2. maps xml elements to beacon components, slots, attributes and hooks (mapper.xml)
  3. input data exported from WordPress or from an existing beacon site

Unresolved points

→ multi media migration

Technical details

→ use Beacon.LiveAdmin.PageBuilder for UI, this also simplifies life as we get access to live_upload
→ a Dynamic supervisor and registry with name being site name for maintaining state
→ SAXY for parsing of XMLs
→ Utilize Beacon.LiveAdmin.Client.Content to make changes to actual site

Other considerations

→ dropping input config file keep only mapping file less robust can still be “extended” for handling different versions/formats other CMS platforms
→ hardcode WXR quick to get up maintenance nightmare

Any solution should eventually be able to import/export to format of users choice

Any feedback and suggestions are welcome

MarcusRiemer

MarcusRiemer

Just because this recently crossed my path: Wordpress has an ongoing effort to make import and export of its data as transferable as possible. I didn’t manage to find much of a specification in my ~2 minutes searching the web though. It seems that format wise an export via “WordPress eXtended RSS” (wxr) you mentioned still seems the current way to go.

Where Next?

Popular in Questions Top

freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
logicmason
Hi there, I'm working through my first release with elixir/phoenix. I've built a release with distillery and found that it crashes when I...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
pgiesin
This should be a simple problem but I just can’t seem to figure it out. I have a standalone Elixir app that won’t find the database. Dep...
New
makeitrein
Hey all, just started picking up Elixir last week and am writing a scraper as a learning project. Baby step #1 is extracting the number ...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 45766 226
New
AstonJ
You’re a programmer, so you don’t need spoon feeding with the conventional drivel about “this is an integer.” No. You need to know what’s...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New
AstonJ
by Lance Halvorsen Elixir and Phoenix are generating tremendous excitement as an unbeatable platform for building modern web application...
460 27162 124
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New

We're in Beta

About us Mission Statement