DEV Community

Cover image for Umbraco MVP and my first time at Code Garden!

Umbraco MVP and my first time at Code Garden!

Dennis on June 17, 2023

Code Garden is Umbraco's largest community gathering, held annually near Umbraco HQ in Odense. Code Garden is several days filled with talks about ...
Collapse
 
hfloyd profile image
Heather Floyd

Hi Dennis! Thanks for the constructive criticism of my talk. ❤ I had designed it as more of an overview, because when "DXP" became a buzz-word at last year's Codegarden, I was hearing from some very experienced technical people questions like "What IS DXP?" - as if it were a totally new technology that they had to master. The idea for the talk was to provide the general message - "this is not anything new/complicated- you've been doing it for years already." I think the talk has room to be "beefed up" a bit with perhaps more technical details, without intimidating certain of the intended audience, though, so I do appreciate your suggestions. Do you feel that more concrete "case study" examples would be useful? What would have made it a "winner" in your view?

Ps. Welcome to the MVPs! I'm sure I'll see you on the Slack group. 🙂

Collapse
 
d_inventor profile image
Dennis

Hi Heather! I am mostly talking from a technical perspective, because I see my role as a "builder". I think your talk could be very productive for perhaps a sales person or product owner of some sort, at least somebody who communicates with clients and needs that update on their vocabulary with less connection to the technology. I am personally mildly worried that I am lacking behind on the technology. I hear headless on one side, "enterspeed" has been mentioned at some point, cloud services, you name it. I really wonder how Umbraco fits in here. Do I need to go headless to call my solution a "composable DXP"? If so, how does that work with things like SEO for example? What does a composable DXP look like in a simple Umbraco solution? In the example in the blog I mentioned it: say I have an Umbraco website that is connected to an HRMS to show vacancies for example, what might the infrastructure look like if it's a composable DXP? Perhaps I am not quite your target audience, but these are questions that I would like to get answers to. It would be awesome to see a practical example where the benefits of composability are leveraged. The talk would be a winner for me if I can go to work tomorrow and build my next 3rd party connection the "composable DXP way", which is something I feel I cannot do right now.

Collapse
 
hfloyd profile image
Heather Floyd • Edited

Hi Dennis! I'm afraid that my talk failed... And not perhaps for the reasons you might believe so... The thing I was trying to communicate is that "composable DXP" isn't actually a "thing" or an architectural methodology, not really. It truly just means "I have different online-connected services, data, etc. and I want to link them together to make access and workflows smoother, whether for internal (staff) use, or for external (visitor/customer) use." There really isn't a "composable DXP way" - the way is specific to what your needs are, and what connection points are available.

What I wanted to show with the talk is that Umbraco has various open connection points - and choosing what to do is really based more on WHAT you are trying to surface/facilitate, WHO should have the access, and WHERE that connection/UI should exist. The point of challenge/limitation is generally on the external side - What "connection points" does the external system provide/allow? Does it have a REST API which can be hooked into? Is it a database (SQL, etc.) which can be connected to directly (via a SQL Connection string), Does it only provide a JavaScript embed code snippet? All those things are usable in their own ways, and count as part of "composable DXP".

The philosophy of composable DXP (which I think Filip covered nicely during the first day keynote), is just that you should be able to choose the systems and services which best meet your business/functional needs - and Umbraco should help you to use them/connect them to your website "hub". So, you might have a single e-product to sell, and you use Gumroad to sell it - that should be easy to integrate with your site (which is what I do: heatherfloyd.com/agencys-guide-to-...) or, you might have a bunch of physical products you are selling through Amazon... or via Shopify, and you want to make it a reasonably smooth process for a customer to get from your main site to the checkout. Or you might be handling a massive e-commerce setup, and using an external custom PIM system to manage inventory/fulfillment, or you might want to use Umbraco itself as the PIM system/checkout platform... The point is that Umbraco doesn't dictate any of this - whatever makes the most sense for your commerce setup can be connected to the Umbraco site. (that's the "composable" bit).

For your question about an HRMS... The thing to do is to look at the HRMS documentation - Does it have an API which can pull a structured list of available positions? If so, then you can use a Razor file to display that list - either linking to "detailed" info on-site, or off-site to an "apply" page hosted by the HRMS service. Does it include an embed-able snippet to add an application form to your site? Then people can apply without leaving your domain.

RE: Headless: IMHO, this is basically "content-as-a-service". Headless is really only the right fit if you only want to use Umbraco as the data-entry UI and "repository" for your content, but you have a bunch of node-Js loving front-end developers who want to build the front-end of the website without Razor views and/or you are providing your content in a structured form to other external systems - either as an API provider to external sites or as the data source for mobile apps, kiosks, etc. Since Umbraco's Heartcore (headless) service does NOT allow for a Razor front-end, if you want a Razor front-end you probably shouldn't be using it (caveat: if MOST of your usage is still via apps and other non-traditional-website access, then the underlying infrastructure of Heartcore might still be preferable... but that is another topic.)

I hope this clarifies things, but if not, LMK!

Thread Thread
 
d_inventor profile image
Dennis

This makes so much sense and this is really what I needed. This whole idea of composability, plug-and-play, use whatever system you want, I thought: "it has almost never been that easy, what am I missing?", but I see now that I'm not missing anything and that was exactly the point that you were trying to make with your talk. Thanks a lot for your explanation.

Thread Thread
 
hfloyd profile image
Heather Floyd

Hi Dennis! I'm glad that clears it up. I do appreciate the critique! I'm not likely to have an opportunity to do this talk again, but if I were, I think I would hit the "you're already doing this!" part a lot harder.

Collapse
 
karlasanti profile image
karlasanti

Hey Dennis! Codegarden is a marathon, not a sprint, isn't it? I also found myself needing a quiet place to reset and restore, so I should have mentioned the quiet area that was set up behind the stage area. It was a place of refuge for many.

I'd love to see you at the event next year! You can tag along with me next time. :)