Southern Fried DNN: David Poindexter (DNN Strategy) & Daniel Valadas ("I Like Vanilla!")

Jul 15, 2021


Speaker: David Poindexter
Topic: DNN Strategy

Bringing overall strategic direction for the DNN Platform project and coordination between all leadership teams.

As the DNN Platform and DNN Community evolves, new ideas and technologies will surface. These are great and it is essential to have a "gatekeeper" funnel to ensure all parties are in the loop, providing feedback, and are contributing to any proposed changes in direction or special project efforts. Learn more about the exciting special projects underway and on the horizon.

Speaker: Daniel Valadas
Topic: "I Like Vanilla!"

A DNN Theme loads on each and every page view. A heavy theme is often the main culprit for slow load times and poor PageSpeed ratings. In this talk, Daniel will present a new minimal theme that uses vanilla CSS and JavaScript without any frameworks (like Bootstrap) or libraries (like jQuery).


This week's Southern Fried DNN is everyone's chance to catch up on DNN, tooling, conferences, community buzz, and more! Please be sure to join us in person or online!


• Welcome
• Sponsor Recognition
• Community Buzz & Announcements
• Main Sessions
• Social Time!


Join Us Even though our DNN user group is nestled in the Carolinas, we are really YOUR DNN User Group regardless of your Southern heritage or lack thereof. Everyone is invited to attend in person or to join us online! We always try to broadcast the meeting so everyone can participate. Register now for the online meeting details for those of you wanting to join online.


0:02 well hello hello welcome everybody this is the july the 15th
0:08 2021 edition of southern fried dnn meetup i'm glad
0:14 everybody's able to join us we got quite a few people coming into the meeting here and if you're watching
0:21 uh live thanks for attending and if you are going to be watching this after the fact then greetings wherever
0:28 you are in this fighting world um i am kind of pulling triple duty today
0:34 on this one because uh ryan moore who typically emcees the the
0:40 events here he is out on a scouting trip so ryan we miss you and i probably will not
0:47 do justice to the way that you run these things so forgive me for that um and clint patterson he's actually
0:55 involved in a client meeting right now and has a conflict uh isn't unable to join us here too so that being
1:01 said a little bit of housekeeping if there are things that are questions
1:07 while either i'm presenting or actually while daniel daniel's presenting later on i'll be monitoring the chat a little
1:14 bit better but while i'm presenting i may or may not see your chat so feel free to just interrupt
1:21 me as i'm presenting um we usually start out these meetings by thanking our sponsors and hopefully i
1:28 won't forget the right ones here but we do like to thank
1:33 for hosting the southern fried website main thing that you're going to
1:40 get out here at this site is every month after the meetups we do a recap ryan does a great job at writing
1:47 up the recap so here's one from last month where will stroll our awareness leader i
1:52 think we'll just join just as well hello will um presented on being in awareness and
1:58 steve krantz been presented on ck editor magic so you can check out the recaps there
2:05 and of course watch the youtube videos that are posted out on the youtube
2:10 channel they're usually embedded into these articles so
2:15 i think someone will be kind of re-watching this after the fact and doing a recap of this one
2:21 as well but you can check out our youtube channel out there as well where all of the meetups
2:27 are posted after the fact
2:32 let's see um we've got also seems like i'm missing a sponsor here
2:39 [Music] yep i can't think of the one that i'm missing right now
2:44 but we have quite a few uh oh actually man deeps that's what it is man deeps i think we're using the his uh
2:50 live blog um module out here on the website so they were kind enough to grace us with a
2:56 license out there so thanks to them if you uh don't know about or check them out and
3:05 hosting for dnn websites and manage i'm sorry mandeeps for various
3:12 extensions that work on dna platform and evoke
3:18 let's get into a little bit of announcements in the community of course always be
3:24 attuned to what's going on out on the website there's a lot of resources out here
3:31 for you i've highlighted just a few blogs that have been posted recently
3:39 out here and one from clint patterson recently that was talking about github
3:45 sponsors and if you know a lot of you may not know about github sponsors but it's a great way
3:51 um through github to sponsor various developers that are in the
3:57 community or i mean i guess it doesn't have to be a developer any contributor of any sort
4:02 uh that is contributing to projects being able to they launched a new feature that allows
4:08 you to do one-time uh gifts instead of being committed to a monthly
4:14 gift when they first launched that program it was you kind of had to commit to a
4:20 monthly contribution so i think a lot of people didn't didn't do didn't leverage that feature because you
4:26 know the the inability to do it one time and perhaps forgetting to uh cancel their monthly subscription
4:34 uh there but it's great because a lot of sponsors will configure their environment to be able to do an open
4:40 kind of one-time contribution but clint did a nice write-up out here explaining how it works
4:46 so if you don't know about that and you're looking to get some things done on your favorite open source project
4:51 including dn platform be sure to check it out most of the developers i think in our community
4:57 have sponsor pages out there and you can just check that out i think
5:02 you can go to forward slash the username of the developer
5:08 and sponsors or i may have that backward is it slash sponsors slash the username it's one of those two
5:15 but if you go to their profile page usually if they have sponsorships configured you'll be able to get to it
5:21 right from their main profile page as well this was another fairly big announcement
5:27 recently that thanks to the efforts of a few in our community was able to work with
5:34 cantaris who has now donated polydeploy
5:39 uh to the community um or i should just say really the stewardship of the project has really been
5:46 turned over um they launched this open source project i think
5:51 maybe it was like three years ago at a dnn summit and it caught on really great but it's a
5:59 solution that allows you to install multiple extensions within dnn
6:06 all at one time with only one app pull recycle as a part of the process and you can do
6:12 that through a user interface as well as doing that through
6:17 any kind of continuous integration or continuous delivery tools like github actions or devops but the project
6:26 over the years has has evolved a bit and you know it when a project's this big and and
6:32 this complicated sometimes it's hard for the original company to maintain and keep up with it so
6:37 they have graciously turned that over to the get-go um organization of the indian community
6:43 and so the plans here mitch sellers outlines in this article that what the plan really is to
6:51 get that project up to a point to where um hopefully ultimately it can be rolled into the base offering for dnn platforms
6:58 so that's an exciting one there so check that one out
7:04 another one recently by stefan compass about the ck editor so i thought this was a nice segue to last month's
7:11 meetup about ck editor when steve krantzman presented on so much here it was a nice
7:17 uh article out here about how to use the easy image upload uh in the dnn ck
7:23 editor implementation one other i guess one of the other big
7:29 ones to announce is the release candidate for dnm platform 9.10.0
7:39 you'll see that there is a release candidate 2 out here now and there's much to talk about really on
7:45 this release is i think it's going to be a great release with a bunch of nice new things in it so
7:50 be sure to check out the release notes out here as well as get involved in testing for the platform you can do
7:58 that in one of many ways you can come out to github here go to the releases and
8:04 download your install package or upgrade packages whatever it is that you're testing
8:10 you can also do this through mb quick site to make that a quick and easy process for you to install locally and
8:15 test so thanks to everybody that has contributed i think there are quite a few contributors for this month
8:22 and they're listed there so thanks to all of them for their awesome contributions
8:28 what have i missed have i missed anything that's worthy of highlighting in the community
8:34 that anybody has that i missed testing testing testing
8:41 one two three no i mean uh please do test drc
8:46 and report any issues it's absolutely a very very welcome task there was one issue
8:52 that i think got resolved already um the rc i think it wouldn't even install so it was kind of a build
9:00 process and thanks to brian bukes i was able to get that input in so it does pay off to report
9:07 these issues even if you're not 100 confident of what's causing it
9:13 still report it because somebody else may know what's going on there you can come out to the issues tab here
9:19 click on new issue and post that there
9:24 anything else that anybody would like to point out before we jump into the presentations for today
9:36 anybody working on any really cool little projects or big projects
9:45 and crickets everybody's on vacation that's right man they're following suit
9:51 after you brian you know going on holiday in the summer well let's jump into it um today we've
9:58 got two presenters uh one of which is myself so this is a bit awkward i'm going to introduce myself
10:03 hi me david poindexter yeah and then later daniel golatis will be
10:09 talking about ice cream i think he likes vanilla for some reason so he's going to tell us why he likes
10:15 vanilla but we'll jump right into it
10:21 and if something is not coming through or making sense hopefully my audio is okay here um
10:28 just let me know just chime in and if you have any questions along the way just let me know we'll have a
10:34 piece at the end here to uh to kind of allow some more questions and deeper
10:39 dive into some of the subject matter that that that you're interested in or want to know more about
10:44 but we'll make this pretty open-ended so um for those that don't know there
10:51 are uh four primary leaders i guess in the in the dna community right now
10:56 and um i am one of them i'm on the strategy side of things and
11:03 i my main role kind of in that is to kind of connect the dots between the
11:08 various leadership groups so awareness technology and development
11:14 and i think will stroll is here uh today from the awareness group so thanks for joining us will
11:20 um we we meet on a regular basis uh as a leadership team and there are some also some sub leaders
11:26 and other groups there and i'll go over some of that here a little bit as well but a little bit more
11:31 about me i am the ceo of envisionative we are creative
11:36 marketing and app development company based out of north carolina in the u.s of a um i mentioned i'm on
11:44 the leadership team and on the strategy on the board of directors for dna connect
11:50 and co-president of the southern fried dnn which we're in right now and you may also know me
11:56 from some of the other tools that are used within the ecosystem here you'll be quick site and various envy quick
12:02 uh products that are out there open source products and contact information down there below
12:11 so let's take a i i i find it very difficult to talk about
12:17 strategy you know without really evaluating our past and i think a few uh leaders have done
12:24 this recently talking about kind of where we used to be where we come from where we've
12:29 you know gone through and uh kind of where we are now so i'd like to take a little bit different approach to
12:35 this and put a little bit of a pictorial journey here together for you and i'll
12:42 get through this fairly quickly we'll get into the meat of things so when dnn kind of
12:49 first evolved as dot net nukes we all know it at the time i think it came out of a eye
12:55 by spy project that was kind of a best practices
13:00 project put together by microsoft and another company and and eventually our baseball workshop
13:06 devolved out of that and ultimately became net nuke um back in the days it was really kind of
13:12 the great frontier right it was what is this thing called
13:18 and how do we use that to build websites and portals back in time
13:24 with the terminology and you know have real content management features and
13:30 things like that so i mean it was like it was almost like a kid in a candy store you know it's like
13:36 wow there's this great land out here that we need to explore and you know try to figure out what in
13:42 the world this means for us and this technology's new and it's cool and
13:47 fun and let's just kind of jump out there and really explore and so it evolved into this
13:55 real exploration and establishment you know thing where there was this
14:01 group of people and ultimately that kind of kind of became the core team that worked on the the solution
14:09 and this was back before github obviously you know so open source back then meant something a
14:16 little different than it does now it's the same concepts but the actual collaboration of coding and
14:23 sharing things with each other was was a little different from a tooling standpoint back then but
14:28 it was great you know but this it was this exploration of what does it mean to be a content
14:34 management system and what is that what features does that involve and
14:39 like any you know new products a lot of times you get go down the path of a little bit of
14:44 feature this feature that we want to do this we want to do that and you start getting into a little bit of
14:50 what can sometimes lead to a feature bloat and so we had all the core modules that were
14:57 involved in the project you know like faqs want to be able to do an faq on the site want to be able to manage documents
15:04 on the site want to be able to manage links want to be able to have announcements and
15:10 you know it was really a lot of these different little features and those kind of became sub teams you know that would or
15:16 individuals that would maintain those modules you know within dnn
15:21 and i'm kind of sticking high level here but you know you you get it it was like let's figure out this cool new feature
15:28 and let's implement it and it becomes part of the product but there was also this
15:35 thing that was beyond the actual product itself it was like you know because dnn was extensible from
15:41 the get-go you know it was it was built on these ideas of extensibility you know and
15:47 being able to plug in your own solutions for things so there was a rich
15:52 ecosystem that evolved out of this i think how many he remembers snow
15:59 covered yeah i remember oh yeah having one of
16:04 the first few modules that were out there on snow covered and i missed it so much in fact for me that
16:10 was the i i had developed the oh i think i called it advanced html
16:16 editor or something like that you know and that was my claim to fame way back in the day
16:21 and you know put it out there on the store and was giving feedback to bryce snow you
16:27 know and his brother egan or egan right he yeah eagan i think it was
16:32 and uh great guys you know but they built this whole platform you know for selling extensions
16:39 and there was one kind of competitor in in that space but they kind of fizzled out and snow cover
16:45 kind of won the game right um but that really was a catalyst for
16:51 a great deal of e-commerce you know and and being able to start up companies
16:58 i mean some some of these vendors that are here today they got their start way back then you
17:04 know man deeps and um easy dnn solutions and uh dnn sharp and
17:12 you know some of these that we all know the names that's kind of when it all started was way back then they started
17:17 building their suite of modules and selling them so it was great it was
17:23 the the sky was the limit you could you know if you could dream it up and build it you know you could sell it and make a
17:30 good business out of it you know whether it's document management or a
17:35 blog module or whatever you know there was opportunity galore so
17:40 it was a fun time in exploring that you know in establishing new businesses is establishing the
17:47 platform itself and you know along the on the road though
17:53 when things start to grow to a certain point it begins to get a little bit more crazy
17:59 right you know especially for those that are behind the scenes on the project and
18:05 really kind of managing the project or stewarding projects i can only imagine some of the conversations sean walker must have had
18:11 back in the day is you know of well what do we do with this beast that's been you know created
18:16 and it's not like you have complete control but you kind of kind of do you know it was open source
18:23 but it was still there had been talks about where do we go you know from here as the core
18:31 team and you know eventually there were other people involved you know that were the
18:38 key players you know when it comes into the the platform itself and um they come to this point in the
18:46 river where they they got to make a decision who are we going to be where are we going to be when we grow up
18:52 you know and the choice is not always clear that left side of the river
18:59 looks pretty good over there but i mean the right side doesn't look too bad either it's got a few more rocks but
19:05 you know they both look pretty appealing and guess what you can't really see what's beyond the bend up there you know
19:12 you can only see so far on this and so decisions were made
19:18 and the project as a whole you know there's a decision to form a new corporation
19:26 and we even have people here that were employees of done a new corporation back
19:33 in the day could probably tell us some incredible stories of all that but
19:38 there was decisions made you know to figure out how to build a business around this but yet still stay true to
19:46 the you know the whole philosophy of the open source there so what happens in the universe stays
19:54 indiana in court ah come on that's not true that's not true will you can share some stories with us
19:59 um so you know those choices were made right and um some of the choices were
20:07 where are we going to be purely open source are we going to go to more of a closed
20:13 source but make it freely available are we going to become i think i've heard the term
20:20 freemium kind of model you know where there's this free aspect of the product but there's also this
20:29 paid for aspect of the product and that's ultimately you know the decision that was
20:34 made and evolved into i think the first days was like dnn
20:39 professional right you know came out and uh eventually became
20:44 evoque when it was rebranded you know but a suite of modules that sit on top of
20:51 dnm platform and modifies it to a certain degree as well and kind of becomes a new
20:57 product offering but still has the same underlying you know base uh
21:03 code base as being in so it's really just kind of both you know it sounds like a win-win
21:10 for everybody right um that that hey we could build a business off of this and offer some
21:15 professional services or enterprise level kind of services but still maintain this project that we
21:21 love and people use to build their own businesses and you know provide services to others so
21:29 you know be that right or wrong that's the choices that were made so then there becomes you know
21:35 the whole funding and all that kind of thing and what all that dynamic brings to the to the table uh
21:42 for that so eventually things grew and grew and grew right
21:47 but at some point the open source aspect of it or the
21:55 free aspects of it starts kind of getting ignored because there's business
22:01 objectives and there's money that's driving the you know the things that are keeping people's salaries paid and and
22:09 you know a future for the for the company so it's very hard to maintain you know a
22:16 interest in all of those aspects right because at the end of the day it's about keeping the lights on and so forth so
22:23 you know some very i'm sure there's some very tough conversations but it kind of started becoming a ghost town
22:28 when it came to the actual part of it that was you know the open source aspect of it
22:35 you know and and i think back to the days you know it was out on complex right and you know it was very different than
22:42 uh github in the sense that it wasn't quite as easy you know to contribute or be a part
22:49 it was really kind of like well here's the source you can get it but there's no easy way for you to contribute to it so it was this kind of
22:56 this model if you weren't a part of the inner circle or having the connections to those it was very
23:01 difficult to be a part of the actual code base and really contribute to it so
23:06 you know many of you probably remember there were there were quite a few years where we were like um what's the future you know
23:15 of being in uh is it dying you know do we need to switch and
23:22 and go somewhere else do we need to look at other solutions and i'm sure many of you had
23:27 those kind of questions too you know and it's like well what's going on you know i mean
23:32 what is an mvp right what what does that mean anymore um what does what does it mean to be
23:40 opensort you know there were so many questions right well it eventually evolved into being it you know i'm not trying to paint a
23:46 gloomy picture but it's it's part of our past right this is something that it's
23:52 hard to talk about strategy of the future without recognizing some of the pain in the past we want to learn from
23:57 mistakes and things that you know decision points that you know we weren't even involved in but
24:03 you know we we need to watch out for those kind of things right so what happened next
24:08 well this is my perspective you know um but i'd love to hear your perspective
24:14 as well but you know to me community happened well
24:20 community was always there you know there was always this real camaraderie you know between the
24:26 people in the ecosystem and we had the events you know that came together i've got a
24:32 banner behind me from dnn world what was it dot net nuke world in
24:37 orlando 2011. i remember 2011 and i think it was 2012 that was
24:43 the big kind of corp ran events that were there and they were fantastic but i mean that was like
24:50 that was kind of the pinnacle of you know events for us back then you know it was it was
24:56 they were different right but it was the
25:01 community and the connections that we all have with each other you know the friendships that were built over the
25:07 years the the care about our own products our you know our own offerings our open
25:13 source projects our things that we do for our clients our projects and things like that you really
25:20 kind of connected us all plus we kind of genuinely just like each other and like to hang out right
25:26 real diverse group of people but you know there's a there's quite a few that kind of had
25:32 this mentality of well y'all can talk about dna and dying all you want to but yeah not on my watch
25:39 you know it's just not going to happen so you know there was still this undergirding activity in this
25:47 care for this this aspect that's so so differentiating i think with our
25:54 world with dnn from other platforms and communities is just there really is a sense of
26:00 community there is that deeper connection beyond just a code base and a tool that we use
26:08 so that's really kind of what happened you know in in my perspective is the community just didn't let it die
26:16 you know so ultimately you know the ending corp gets acquired um
26:23 by ews and you know that brings in even more uncertainty ultimately it became
26:31 the best thing that could have happened really uh for our community and for
26:38 the platform itself and it was it was a bit uncertain even for a couple
26:44 of years after that happened i mean this was will i don't know if you're on still or not
26:50 but what was it three years ago maybe when the acquisition happened and
26:55 the leadership team was uh i think we're moving on to four or four and a half at this point wow that's crazy so like i remember for
27:04 the first two years is like yeah okay we've established some community ownership you know of
27:11 things and kind of becoming the driving force behind things but
27:16 there was still a lot of uncertainty for this first couple of years but then i think it just started the light bulb
27:22 just it wasn't a an instant click on you know that happened over the over time
27:28 but ultimately it evolved to you know what we we really are in control of things you
27:34 know not from an egotistical standpoint but just from a just from a hey we we we do control the
27:40 destiny in the future of this great platform the code base i
27:45 mean we weren't sure right if we really could control it in the sense of not
27:54 you know really evolving it and taking it somewhere and doing really whatever the community
27:59 sees fit for things but i think you know over the last i guess year and
28:04 a half or so now it's become very obvious that that is happening and
28:10 there is no dictation happening from the corps side anymore i mean they're
28:17 hardly even involved you know and that's due to many reasons
28:22 but it's ultimately they really meant what they said you know andy triba who's not with them
28:29 anymore i mean he said listen you guys are in control of this do what you see fit he actually meant it
28:38 you know i think we all just were in such shock it sounded like lip service but it just
28:44 wasn't you actually meant it so um we've been enabled you know to to go forward so you know
28:52 that brings us kind of to now we have this oops in the wrong window
28:58 we have this canvas now that's it's a great starting point and it's
29:05 great to look at it from a starting point perspective because it's like well okay if we really are in control
29:12 as a community of this project well where do we go from here what do we do with it and i think some
29:19 really great things have already been happening uh for it and that will
29:25 continue to happen um for it but i say all this to really kind of set
29:31 the stage for strategy it's like well we can't really talk strategy
29:37 without understanding all of this and i it kind of amazes me i guess it's
29:43 because maybe i'm in whatever inner circle or whatever you want to look at it as where i know a lot that i guess a lot of
29:50 people just don't know but it still kind of amazes me that there are people that don't understand there is no
29:59 corp there is no seeking approval you know for changes and stuff that we
30:05 want to do with the platform it's really driven by the community you know and
30:10 through the leadership team kind of helps guide that and steward that but it's ultimately what the greater good
30:17 you know needs for things and that's so it's almost a blank canvas i mean we
30:23 have some baggage obviously with code that was written or so you
30:28 know that was architected in a certain way that had we were to do it from scratch we
30:33 wouldn't done that way but you know we don't have the resources either you know to do crazy stuff either i mean you know we would if more and more
30:39 people got involved but really kind of comes down to to us you know as a community
30:46 to you um and how how can you impact it you know maybe you're not a code
30:51 slinger maybe you're a designer or a ux person or something you know just there's so many different ways to get
30:57 involved in the project and to impact the both the product
31:03 as well as the ecosystem at large so you know as mentioned in snow covered
31:09 earlier there's a great opportunity for someone or some group of people out there to
31:15 re-establish that to rethink that to reimagine what the commerce might would look like
31:22 or distribution of things might look like in the community because i mean yeah we
31:27 have the dnn store but we don't have it we don't control that and there's nobody at corp controlling
31:34 that either there's some management of it that's happening but that has become you know a kind of a
31:43 dying proposition you know and i'm not sure of any vendors that are really kind of
31:48 publishing new things out there um maybe there are i don't know i'm not aware of them if they are
31:54 there's great opportunity there you know so it may not be directly with the platform itself it may just be
32:00 you know something something like that that might strike your interest there as a business opportunity
32:06 so let me get into just some of the specifics of where things have
32:12 been going and and all that i won't spend a whole lot more time but i'll go to high level some of the areas that
32:18 have been being worked on and that are being looked at and considered um they're kind of two main
32:24 areas that are under my purview i guess uh and in the strategy side of things
32:31 and one of those big areas is kind of issue management and how things flow through
32:36 um the github or repo out there for dn platform and associated
32:42 projects and there's been um quite a bit that's gone on over the past couple years there
32:50 one of the first things that got um done on on that was kind of reworking
32:57 the whole label system and how issues are kind of managed and it's it's
33:04 really still a work in progress i don't know that we have it perfect but i think the labeling system is kind
33:09 of working pretty well when we use it it helps us to kind of identify what area of the code an issue might
33:17 pertain to or areas that it might pertain to what the kind of high level
33:22 of effort that that might be involved um you know what the priority of that
33:28 may be but there's quite a few labels that are used for those purposes whenever we're able to
33:34 kind of manage issues as they're coming through we try our best to assign what we know
33:39 um makes sense to some of those um the other areas we we set up an issue
33:46 triage project out there and it's funny because like i it makes a lot of sense from a
33:53 from a high level in reality it's hard to manage it you know when it goes through and for those that haven't seen it i'll
34:01 kind of switch over to github here for just a second and and show you but
34:06 if you go out to the github project and you go to projects there's an issue triage project and some
34:13 of this is automated um through here and you can see that it's kind of working at a high level
34:18 it's just that we're missing a few key automation pieces and and we want to fix some of those through github actions
34:25 uh in the coming months but um when an issue gets posted on here it's supposed to be
34:31 automatically added to the awaiting triage panel and or board or layout whatever
34:37 you know these are kind of like kanban boards if you're familiar with agile methodologies but it kind of takes them
34:43 through statuses and when an issue is
34:48 needing more clarity it gets put into the awaiting either compliance like it's not really
34:54 enough information to be actionable or it needs some confirmation from
34:59 others that that is indeed an issue or not an issue it kind of goes into here
35:05 when it ultimately gets recognized as a viable issue that's
35:12 actionable it'll go into bugs and enhancements or features a column and then once
35:17 a pr or pull request is is submitted for it and closes the issue then it goes into
35:23 close so you can see from the numbers here i mean it's working at a high level we don't do a whole lot of manual
35:28 management of this most of it's automated through here but it's nice way to come out here and at least see
35:35 what's available to work on so like if you're a developer looking for a few things to to work on you can use the label system
35:41 to kind of find the right areas that are your areas of expertise or you
35:49 go through what was i saying oh yeah or you know kind of just look and say
35:56 okay i want to squash some bugs today or i want to do some enhancements you can kind of browse through these right now there's
36:01 40 bugs in here 14 enhancements and eight feature kind of things features are probably bigger
36:06 kind of more epics that are being worked on for that but yeah it's a great way to at least view things
36:13 and so jump back over here but the other thing is well now let me go
36:19 back over here another thing is milestones that was a recent change that we made because there was a bit of
36:26 misperception that was happening with milestones a lot of times we would assign it to the next
36:32 patch release or minor release and it was being perceived that that was
36:39 a commitment that it was going to be in that release and we switched things up a little bit because that was never
36:46 really the intent you know it was like okay if somebody submits uh you know a fix for that or an
36:53 enhancement for that then it would get there but it wasn't a commitment from this you
37:00 know corporate team you know that was committing to actually doing it for that release so if it didn't get
37:06 done then it did the rock just kind of got kicked down the road a bit uh on that and
37:12 was you know just pushed forward a thing so it was kind of frustrating for some people that were thinking it were coming
37:17 in that particular release and ended up not uh getting there
37:24 so we switched it over to use this kind of naming convention here where we've got a future
37:30 patch future minor and future major so it puts it in these buckets you know
37:36 and this is another great way to come out here and see what's see what's you know available uh to be
37:42 worked on you know out here so there's you can look in the patch ones say okay well and what this means is like
37:48 there's some explanations on these but it's like well if a pull request came in for this we would
37:53 allow that in a patch release because it's not a breaking change so it's kind of looking at semantic
37:58 versioning a bit and really following those rules a bit and putting these issues into
38:04 buckets that we believe makes sense for pull requests to come in for those
38:09 so it's a great way to look at things that also doesn't commit to that particular release
38:16 for that so it's it definitely has helped with the perception because i haven't heard as many complaints you
38:21 know about things there so that's one area that things have improved a bit on the issue side of
38:28 things there's lots that can be done but as you can see our number of issues have actually gone
38:34 down significantly i think when we first started this process daniel you might be able to correct me if i'm wrong here but there were close
38:41 to 350 issues in the backlog when we first kind of started this process
38:46 and i think some of the organization has attributed to it being able to be
38:52 flowed a little bit better through here and really kind of squash those down but thanks to all the the get approvers that
39:00 go through here and manage these things and daniel i know you do a lot of work to kind of help organize things and validate things
39:07 and have conversations with people and and so forth and just appreciate everybody's effort
39:12 on that i think it's working but we definitely have areas for improvement here
39:19 moving on in there's a few github beta features that we're looking at uh one of which i'm i'm excited about
39:24 this this coming up and i think brian had pointed this one out to the team here but that there's a way to to now once they
39:32 approve us for the beta we should be able to break issues
39:38 into individual tasks so some issues come in that are a little bit bigger than a single
39:43 actionable item and this is always kind of been a kind of a complaint you know for for us
39:49 because it's like people are reporting the issue which is great but it's like what do we do about
39:54 it it's not one thing that needs to be fixed there it may be five things that need to be fixed related to that
40:00 issue so theoretically this is going to allow us to break some of the issues down into individual
40:06 tasks but still associated with the issue and really kind of track the relationships
40:11 as i go through there as well as the ability to add custom fields for various things i'm really excited
40:18 about that one because that could really be very beneficial for some automation and so forth that we could potentially
40:25 use with these so that's one area that's kind of excited to look into and
40:32 help a little bit more with automation can't automate everything obviously but the more we can automate that
40:37 is you know more manual menial kind of tasks would be great so that's kind of the
40:43 focus there so the other of the two areas that uh that kind of falls under my purview of
40:50 some special projects and this has a quite a bit of work that needs to be done in this
40:56 area too to be a little bit more intentional about this sometimes
41:02 special projects are a bit rogue in nature and individual driven which is is fine
41:08 um but sometimes that leads to a little bit of frustration too if somebody spends a lot of time working
41:13 on something that they think is going to be great but yet the greater you know community or the team doesn't
41:20 really feel that that's the right direction or the right way to do something it can lead to some frustration so
41:26 what i want to kind of do is put a little bit more structure around
41:31 this a little more intent in this and try to help people to think through their projects a bit
41:38 better you know and to really kind of think about the greater aspect of things sometimes than
41:43 than just be you know working in a rogue fashion so um a few that i just put in here just
41:49 to point out some more recent kind of special projects one is peter donker recently
41:55 um did some pull requests related to bringing back the whole update feature
42:01 um in the dna platform so that's was nice to see that come in so
42:06 now if you um starting with 9.10.0 you should be able to see when there's an update available in the
42:13 platform you can be able to access that so that's really good stuff um daniel vladis and i worked on uh
42:20 some new concepts that are kind of like precursors to some of the future stuff for dnn 10 but is actu
42:27 this stuff is actually going to be available in 9.10.0 that gives you some extendability from a
42:34 theming perspective and styling perspective as it relates to the persona bar and edit bar so now they have the
42:41 concept of theming so i'll be doing a few videos here about that but they leverage css variables
42:47 and it's kind of cool because you can just sit there in the browser and kind of play around with the colors and it
42:53 automatically changes right away and you can see oh okay so if i put this special file in
42:58 a certain place or one of these two files in a special place it'll just automatically update the theme
43:03 um the persona bar theme i'm sorry in the edit bar theme
43:08 and these are kind of in a separate world right from the site itself so this opens up possibilities
43:15 for let's just say you're an agency and you kind of want to put a a stamp of your own kind of look and feel
43:20 for your all your instances for clients you could do your color
43:26 scheme uh for the persona bar and edit bar as well as you can actually even replace the dnn logo
43:32 using this theme theming so you could in essence you know kind of brand it
43:37 as your your tool is there so that's a great possibility that's coming here in 9.10.0
43:46 another area i think daniel could speak for hours on this but is working a lot on some web components
43:53 capabilities that are potentially coming in to version 10. he has a project out there on github called
44:00 dnn elements as well as another fort that's kind of integration within dnn and how that's perceived so
44:07 that's really nice to to see coming in and web components bring out
44:12 a more standards-based approach to to components within dn rather than being tied to like
44:18 telrick and some of the react components or other types of components that would be
44:24 in there so that's really nice to see some talk has been happening on granular
44:30 permissions more granular permissions in dnn this gives a bit more flexibility for
44:36 those that are you know potentially looking at whether or not they want some of the
44:42 more advanced features like that are currently in evoke so this might bring some possibilities in that area
44:49 i'm just kind of more at a upfront kind of talking about it stage on this this is not meant to be
44:56 perceived as a commitment for these things but just some of the stuff that's been in conversation
45:04 structured content is another one just kind of keeps coming up and the need for some basic structure content capabilities within
45:11 dnn not sure if this one will really become you know fruition or not bring to fruition or not but
45:17 we'll see kind of where it goes but there's definitely some interest in that and i'm just realizing what time
45:24 it is i'm going to kind of roll things along a little bit here quicker
45:29 another special project it's really outside of the platform itself but i wanted to talk about it a little
45:36 bit being in docs because some changes have happened there recently under new leadership
45:43 for that team just due to some personal things that are going on and everything for for kelly he's still involved at some
45:52 level on everything but um leadership is has been shifted over to me and a
45:57 forming a new team for that so we're kind of at the beginning stages of the team
46:03 um jeremy ferentz i think is on here as well he's going to be joining a bit on this
46:09 and trying to help us move that project forward and daniel vladis i think you're going to help a little bit on this too we'll be
46:15 expanding the team out a little bit more as we get further along but some of the initial things that we're doing is really
46:21 getting some of the infrastructure changed on this one of which is the hosting it's
46:27 currently hosted on aws and that's in a personal or business account
46:34 over there so we really need to get that into more of an open kind of area so we'll be shifting
46:40 dna docs to be over on github pages it just kind of makes sense it's free and it's available it's easy to
46:45 integrate with github actions as our ci cd
46:51 process build process that is currently being managed in jenkins so we got to
46:56 kind of transmit transition that over to github actions which should be fairly straightforward but that's kind of the
47:02 work that's being done right now to try to transition us over to github pages and
47:07 then there's also will this is just a reminder that you and i need to talk about the domain
47:13 but we're thinking about switching this over to a sub-domain of
47:19 we just have to kind of talk through some of the seo ramifications of that and making sure we're doing that in a
47:25 way that makes makes the most sense and beyond that that's when we'll kind
47:31 of look at some of the things that people really care about you know and the organization of the content out there
47:37 there's been a lot of ideas that have been thrown out over time but let's try to move it a little bit into a
47:43 better structure moving forward and getting some improvements made there
47:54 the um there's some things about the um dna community org
48:01 on github some of the projects that are in there that been kind of thinking about for a
48:07 while but just started implementing some of it one on some of the projects
48:13 want to to implement a more consistent branching strategy across them
48:18 to kind of follow the way that things are done with platform not quite as complicated as that but
48:26 you know kind of basic stuff a lot of them still have the default branch out there as master
48:31 but they may have a development branch or a developed branch and it's not the default and it's confusing
48:38 as to what is the released version and all that so kind of want to get all that a little bit more cleaned up and
48:45 start implementing some of the documentation stuff that we gosh that was a long time ago daniel
48:51 that you know i worked on that jekyll theme for it but that's a great solution still
48:56 for any of those projects that want to have documentation on github pages that leverages a theme
49:04 that was built that is nice and branded for the dna community
49:09 and then also just recently did a graphic for the newsletter module
49:16 and i want to kind of do the same thing to give a little bit more branded look to all the other core modules is kind of the first step
49:23 on that one but may include some of the other ones as well
49:28 the community website there's um some things to be done there um a lot of this is i'll
49:35 cover in just a minute so i figured i'd break it up a little bit with a nice little
49:41 uh cartoon here of dilbert uh talking about kind of you know
49:48 change and how things are done but you can take a look at that
49:59 in the dna community a lot of times uh things will happen your conversation
50:06 will spawn and there's there's these cyclical conversations that we have every so often you know either whether it's
50:12 reminiscent about old programming languages or if it's about some hot spot feature like structured content or
50:19 something in dnn and it very quickly heads into this
50:25 chaotic state you know of oh my gosh could we ever be on the same page uh with any of this
50:32 you know it's fun when we're reminiscing about old programming languages but when it gets into
50:38 the actual functionality of something that's a hot spot in the in the platform it can become a debate
50:43 you know whether it's talking about frameworks versus no frameworks or structure content or you know just
50:49 one of these bigger areas i guess that are more philosophical
50:54 in nature you know or ux driven and everybody has their own opinions and
50:59 those opinions are valued but how in the world do we you know take all of that and
51:08 produce something that's this good out of that you know because a lot of times those conversations will
51:14 happen and there's some good debate there but in the end well what do we do about it
51:19 you know nothing really gets done so part of what i see my role in here is
51:26 to kind of organize the chaos a little bit find the little nuggets of things that could be
51:33 grasped onto and we could actually do something with that wouldn't upset the world you know but would move
51:39 us forward as a as a project so there's been a a project that's been
51:45 on the back burner for quite some time but a lot of planning has happened for it and
51:50 i have just started working on the actual code for this but it's the concept of
51:57 having most of you are familiar with user voice websites kind of a way to share
52:05 ideas out there about things that you would like enhancements or
52:10 new features or something and then people can vote on them you can talk about those things
52:16 and move them through some kind of cycle that ultimately could go into you know something that's
52:23 actionable you know or get to a point where something is able to be actually worked on um so looking forward to
52:31 working on that a little bit just to give you a glimpse of the wireframe for this this is early stages so it's going to probably
52:38 evolve into something much better moving forward but if anybody would like to be involved in
52:44 this project let me know this project is being built using one of daniel's
52:49 templates out there for module development and it's using web components so you know from a technical standpoint it
52:55 would be kind of fun to have some people learn a little bit more about web components you know either during the
53:01 project or even after the project once it kind of gets off the ground and running but you can really see how something like this could
53:07 be built in a pure standards-based way instead of being reliant on various frameworks and so
53:14 forth so make sure neil a vanilla what was that daniel vanilla i like
53:22 vanilla my my ears heard something completely different like really
53:28 that's what we're using yeah so that that would be a kind of a fun one um you know the the kind of the takeaway
53:35 messages that i would like to have here for all of this is that you're kind of wrapping it up here is that many hands
53:41 do make light work i've used this slide quite a bit um on my presentations but i
53:46 really mean it a lot like if if if there's some way that you can either report issues
53:52 or share ideas or help talk through or validate someone
53:57 else's issues or try to put somebody in their place if they're
54:02 acting stupid in the community or whatever you know that you can help with get involved out
54:08 there it's not just for coders but if you are a coder please consider
54:13 contributing code here and there for little areas that you can really make a big impact sometimes a
54:20 slight style tweak or something like that can really make a big difference from the perception
54:26 of something that's been broken for ages you know and then also do check out the github
54:32 sponsors program it's it's it's great and yep slash sponsors i think if you put slash somebody's
54:38 username on the end of it if they do have sponsors set up on theirs then that'll that'll
54:43 give them so if you want to you know motivate someone to
54:48 work on a feature in dnn or on some other open source project that's in the community
54:54 you know just this is a great way to kind of motivate people sometimes buying a coffee or something or
54:59 or five coffees will get a lot of output from that because it's really kind of
55:04 the principle of the matter that that motivates a lot of us on this not really about the money but it's kind of
55:10 neat to when somebody does something like this you know and and send you 25 bucks you know to to
55:17 encourage you you know and say thanks or to help with something that they really want so it's a great way to do it so i'll
55:25 wrap up here and just opened up for any questions anything that kind of popped out i really wasn't able to keep up with the
55:31 chats so if i missed something in there please please do point it out now
55:42 well that must have been really really boring hear that or i did a fantastic job right
55:50 being in diva you did a fantastic job fantastic job
55:58 well i've been i've been paid to say that
56:05 oh crap you are oh i just expect a drink on the next you
56:12 know event that we might eventually meet each other
56:20 well if there are any questions or i mean i will uh close this out know that
56:29 there's no real bad ideas um so really i mean there can be i know
56:35 daniel i see the look on your face there can be really bad ideas but it's all opinionated right it's the thing is if if an idea comes to
56:44 mind it shouldn't be shot down just because it's a bad idea we'll put it that way
56:49 let's throw out the idea because even a bad idea could promote a good idea of someone
56:57 else so you know it's it's how we how we work together and yeah let's get all the bad ideas
57:02 first you know so to rule them out yeah i guess the point is is that you know
57:09 it's it's an open door policy uh this is not um you know a leader sitting up here
57:16 dictating everything that's going on it this is really about the community so any help that you can provide
57:22 in in the area of strategy i am always open to having conversations about it and you
57:28 know learning ways that i could even be better at doing some of this stuff or if i'm just
57:33 really missing the mark in a certain area please do let me know because i'd love to be doing what really does serve the
57:40 greater good in this community i'll ask a question that could be a
57:47 discussion about a bad idea is um is there any if the dnn store doesn't
57:53 seem like it's moving forward anymore is there any talk of someone doing
57:59 something instead of it that's a great question jeremy i i there's been a lot of people that have
58:05 stated interest in it i think it ultimately comes down to the perceived economics
58:12 of it and whether or not it makes sense you know to invest what it would take to
58:19 have feature parity i guess with the existing store because you know i mean it as bad as we may
58:26 perceive the store it does have a lot of features in it that have grown you know that would kind of be what would be expected out of the gate
58:33 unless somebody just rethought the whole thing right you know and just took a completely different approach
58:39 which may be the smart way to do it um yeah and that's that's kind of what stymied me as i've been
58:45 given the impression that there's a lot that's been built and customized
58:50 that would be a lot of effort to reproduce that's not normally in other e-commerce systems yeah and you
58:56 know and just because something is a certain way doesn't mean that that's the way it should be um you know that's that's my perspective
59:02 on it you know that just because we have feature x doesn't mean that it has to be there um so like you know i guess one of the
59:10 main you know things is the notification feature i think they call it ion or instant
59:15 uh order notification that's in there that a lot of vendors in the past used
59:21 to help trigger licensing to be issued from their own systems for for
59:28 extensions so that's probably one of the hot ones there's probably a ton of others that i'm just not thinking of right now
59:34 you know but um i think the opportunity right away
59:42 you can you can immediately realize that me and aaron both think that that would be easy to build and too sexy
59:48 well there you go then there's a huge opportunity uh for you guys and i look forward to
59:54 the announcement of the let me see the merriment
1:00:01 [Laughter]
1:00:13 and hope that that corp will launch this you know mysterious new store uh that's
1:00:19 been in the works for several years but i just coming next quarter i mean next quarter
1:00:24 yeah exactly i mean in situations like this it's like yeah
1:00:30 you want to think the best you know but i just don't see it happening right you know it may i may be proven wrong i hope i am
1:00:37 proven wrong but um my guess is it won't evolve into anything
1:00:42 uh there because there's just not the resources to to implement that
1:00:47 but there's a great opportunity for someone so yeah for dnn it would be great because i feel
1:00:53 other cms platforms you know that's what entices people to to adopt them
1:00:58 to see what's available i feel like yeah ours has been stagnating a while yeah it really has uh alex because like
1:01:06 i i know i still have conversations with some clients and they're they're like hey we found this cool you know
1:01:12 uh module that we want to pull on the site you know and i go and look at them like oh that module no you can't install that you know on
1:01:19 your site um that's not gonna work you know uh either because of security issues or because it's so old it won't
1:01:26 even function you know or it has some old dependency you know it's that's a common
1:01:32 frequent conversation that i have with some of them and it's sad because there needs to be a
1:01:38 purging that goes on you know for a lot of those and really to help promote the platform as well and
1:01:44 upgrades and people being on the latest and greatest because you just should and
1:01:51 i think the store plays a key role in that unfortunately in prohibiting people or giving them the
1:01:57 perception that they don't have to upgrade yeah sorry i digress that i could easily
1:02:03 go off onto a tangent there i started it my fault well i mean it's a
1:02:10 big area it's a it's an area of opportunity but it's not trivial right so i think anybody that would be willing
1:02:18 to roll up their sleeves and do something on that would be great you know as a community there is no organization that could
1:02:24 really own that and funnel money through so it's just not it would have to probably be a business venture by someone you know to to be
1:02:30 able to to do that and be able to collect money and be able to manage all of that and
1:02:36 not yeah it gets complicated i can put all my clients on hold for a
1:02:42 year and be guaranteed to make money i would consider it there you go the guarantee is the par
1:02:47 hard part right it's like it's almost like a net new even though there's a store out there
1:02:52 you'd have to somehow get vendors that now sell on their own sites and probably will never
1:02:58 go to another platform like that i mean you know how do you attract enough to make making that really hard
1:03:04 no there's times where i wish the store would just be shut down you know so that
1:03:11 we could just move forward without it for a while and everybody could do their own thing
1:03:20 well thanks everybody i really appreciate it um i'll go ahead and stop my well no i'll switch back over to
1:03:27 this and introduce our next uh speaker for today and daniel i'm sorry if i spoke too long
1:03:33 here and didn't give you enough time but uh ah now you gave me some ideas actually
1:03:39 so gave me time to prepare my presentation
1:03:45 well next we have uh daniel vladis who's alright talk a little bit about ice cream so uh daniel i'm not going to go into uh a
1:03:53 crazy introduction here i'm just going to pass it over to you and let you rock and roll perfect
1:03:59 um um you guys see my screen
1:04:05 we do the right one i see get her profile okay perfect i don't have the green
1:04:12 border i usually get so my name is uh daniel valadis i'm in canada um i've been doing dnn
1:04:20 development i started more as an integrator you know building a couple websites and i needed
1:04:27 some sort of content management system and um one of the sites i had to build was
1:04:33 e-commerce with a very special requirement for taxes
1:04:38 and um localization and back in the day the the the
1:04:44 only solution i found that worked was catalog and because of catalog i needed dnn that's how i got into dnn
1:04:53 and i was more of an integrator than anything else back then although i was doing
1:04:58 development but not for web and with the years i started doing more uh
1:05:04 web development and i i fell in love with dnn and i've been doing this since uh i think dnn4
1:05:11 or something and i've been loving the platform um within dnn i'm part of the technology
1:05:18 advisory group my responsibilities include the release
1:05:24 management uh code review when people submit code um i help review that and other little
1:05:32 things here and there but mainly i've been known for the guy who publishes the releases
1:05:38 um i was always very active in dnn but like david said
1:05:44 we have some history where at some point it was very hard to contribute
1:05:49 and i was very active but you wouldn't see my name that much i became more known uh when i picked up on
1:05:55 the core modules project so those modules used to be part of the
1:06:00 platform and at some point they were uh severed right they're not dead
1:06:08 they're just not part of the platform out of the box so you need to install them separately
1:06:13 and um when dnn92 came up there was a
1:06:19 lot of braking changes and most of those models stopped working and would actually prevent
1:06:25 people from upgrading in a day and age where everybody wanted to upgrade because of
1:06:31 multiple security issues and because of multiple news events about security
1:06:39 people are more sensitive to maintaining software in general and a lot of people were
1:06:44 blocked because they had a lot of content relying on those core modules
1:06:50 so i became a bit more known in the community picking up those modules and just
1:06:56 revamping them enough so people can upgrade to help keep the n alive
1:07:01 because i was not seeing a bright future for dnn and since then i do see a very bright
1:07:07 future uh contributions have been coming in from people we never saw
1:07:12 um the community is growing i'm very happy where we're heading
1:07:19 so that's my introduction now today's talk and david has been talking
1:07:25 about ice cream but i don't have any ice cream i'm also known for those who know me a
1:07:32 bit more on a day-to-day basis the guy that hates frameworks
1:07:37 and it's not i hate frameworks it is i try to not use frameworks unless i
1:07:44 really need to so i'm trying to do plain javascript playing css i'm always trying to go
1:07:52 the w3c standard way of doing things before i get a framework and i will use
1:07:58 jquery if i need to i will use react if i need to but i don't start there right i'm going to try to go
1:08:06 vanilla and when i get to the point where i need a framework i'll get it
1:08:11 the reason for that is that i have some experience and i know how upgrades go i know
1:08:19 how dependencies don't age well so you rely on a project that becomes
1:08:25 unmaintained or on a project that has breaking changes in it and you need
1:08:32 to upgrade your stuff but you're going to break everything so it's very very easy no matter what
1:08:37 we're talking we're talking javascript or or even css frameworks it's very easy to adopt
1:08:45 something that you didn't write to get your work done quick and to learn
1:08:51 that framework and multiple years in the future all your content
1:08:56 was built for this and there's some breaking change and you just have to restart everything
1:09:01 right so that that's why i'm i frown up on frameworks i will use
1:09:07 bootstrap sometimes when it makes sense and when the the client is a bit more knowledgeable
1:09:13 or integrator familiar with bootstrap well okay you twist my arm i'll put it but
1:09:19 if i'm the one making the decisions i try to go as plain as i can for those reasons
1:09:26 so that's why the talk is called i like vanilla
1:09:31 so i'm gonna be talking about a new template so what you see here is my github page by the way what david was
1:09:39 saying it's a sponsor slash the username if you want to sponsor anything dnn related i am set up for sponsorships
1:09:46 either monthly or one time and it's very appreciated i would like to thank all my
1:09:52 current sponsors um if you go to my page you're gonna see
1:09:57 another organization repo called airware and in here well the most recent is
1:10:05 the minimal theme so the goals of this theme is to be minimal just what you need
1:10:12 you have all the search language picker everything you need
1:10:17 but it's minimal so you have your frames you have your colors you don't have like a ton of
1:10:24 um helpers and stuff like you would find in most of the commercial skins out there
1:10:30 those things are great but the team and dnn is very often the
1:10:36 biggest culprit for bad performance so i want to start with a clean team the
1:10:41 best performance possible still having all the dnn features in it and you build up on that if you need
1:10:48 more than that same philosophy as i go with frameworks so you have something that works it's
1:10:53 clean it's fine you want more you add to it
1:10:59 and this is by the way a template repository so if you come here and i'll put the link
1:11:05 in the chat boom just in case so it's a template
1:11:11 repository so if you want to build your own team for your own client it's a mit license
1:11:17 you're free to use it you wouldn't fork it right you would fork it if you would want
1:11:23 to submit a code change to this repository and it's explained a little bit here uh
1:11:29 if you want to use it for your own things well you will create your own repository for that so
1:11:35 you would click the use this template and then you give it the name you want so in this case i'm going to call it
1:11:43 sf demo for south and flight demos sf demo team
1:11:51 and you can even take this and make it a private repository if it's
1:11:57 for like commercial work or something you don't want to expose publicly and i really think you should use the
1:12:04 recommended name for the repo there psychic rotary phone
1:12:09 [Laughter] it's it's great though i love this new feature but i'm gonna go with this
1:12:18 so this will create your repository with the navy you gave it it's gonna the show that was was
1:12:23 generated from here but it's totally free from the original where it came from so it's different a little bit than a fork
1:12:30 and the first thing you'll notice this theme is already set up to build in the cloud so if you have a
1:12:36 github account even a free account you will see this yellow dot here and if you click on details it is
1:12:43 building the team right now on github so you have nothing to set up it's ready to go
1:12:49 and it will give you an artifact with your team build zip that you can install directly
1:12:55 in dnn so out of the box you could use the team as is
1:13:00 but it's not the goal the goal is to make your own thing so i will grab this
1:13:07 and i'll open up
1:13:15 powershell or your tool of choice and i'll just go to my websites
1:13:25 sf demo that i installed uh
1:13:32 sf demo okay uh website that i installed with nv quick team a tool i highly
1:13:38 recommend you but to save time i did it before and this is running on 9 10. um
1:13:46 and if time providing i'll show the persona bar customizations also that david mentioned so the theme is built
1:13:54 it's in the documentation there but it's built to go in the portal's default folder so i need to cd into
1:14:00 portals and default and i will do a get clone to my repository here
1:14:11 and i will open this and vs code or your tooling of choice
1:14:24 of course you want to say that you trust me i hope so that's new in the latest release of vs
1:14:30 code and i already opened the wrong one i need to cd
1:14:35 into cd
1:14:40 uh sf demo code dot so the folder we have here in
1:14:47 portal default this is the folder where we're gonna build the build system will automatically distribute the files in
1:14:53 the wrong place that's why it's relying on living in that place there are settings
1:14:59 you can change here if you have a different workflow of where you want to locate your files but
1:15:04 out of the box that's what it's assuming and you'll see a lot of config files
1:15:10 here and stuff that's all to configure the build and stuff like this most of what you're going to be
1:15:15 editing is going to be in the source folder right here and it's also in the documentation
1:15:23 right here but you will need a tool called yarn for now i plan to remove yarn but
1:15:31 basically if you don't have yarn you need to go to the yarn website
1:15:36 which i mentioned somewhere you need to go to the yarn website and install yarn once you have that
1:15:43 you could run yarn install and that will install all the dependencies now i just mentioned
1:15:50 that i'm like the no dependencies guy but you're gonna see that right now it's
1:15:55 downloading bootstrap and it's huge that's because it's an
1:16:00 option of the team so even though it's downloading it you have the option to take or not take
1:16:05 bootstrap it's just that i often have clients or integrator that hire me to build a team
1:16:11 and they do want bootstrap so it's still part of the template but you have a setup option to use it or not
1:16:19 and the same thing for font awesome which is really popular i have an option to get it or not so
1:16:25 it's pretty easy to get started with or without these things
1:16:31 and in the package json you will see the different
1:16:37 yarn scripts that you can run one of them is build one of them is start and one of them is settings
1:16:43 so as it says in the documentations the very next thing you want to do is yarn settings
1:16:49 and this will fire up a little wizard to ask you
1:16:55 uh what do you want to do with this theme right so here it's going to be your package name
1:17:01 it needs to be unique because this uniquely identifies the package within dnn so i recommend like
1:17:07 your company name in it and something like this you can use dots just no spaces
1:17:14 so i'm going to use a soutern southern fried dnn
1:17:21 demo team theme for it and then it's the team name this
1:17:28 is what will show two admins in the dnn ui i'll call it
1:17:34 demo team or sf demo team and then in the manifest you also have
1:17:41 the owner of that product and the company and email so i'm just going to keep these things here
1:17:49 and then you get to the part where it asks you about bootstrap so right now it's bootstrap 4. i don't plan
1:17:57 yet to upgrade it to bootstrap 5 if any contribution comes in and people are familiar with it it's a welcome contribution but
1:18:04 i'm not going to invest time and that unless someone
1:18:10 pays me to get to bootstrap 5 because i prefer not to use it
1:18:15 right now with bootstrap 4 with the team you have the option of not using bootstrap at all you have the option to use part of
1:18:22 bootstrap which are just the grid utilities the grid and responsive utilities
1:18:28 so you have the css to make your columns you have the css to size your images to your borders and stuff
1:18:35 but you don't have any components that have um behaviors that have javascript with
1:18:41 them so if you decide to go that route you have part of bootstrap and it adds 44k to your team right
1:18:50 if you want all of bootstrap it adds 221k plus it also means you need popper js
1:18:57 plus it also needs you need jquery so it's a huge dependency so
1:19:03 in this case i want nothing i want to save those 200ks same goes for font awesome i don't want
1:19:10 to add it so you you could add it or not but i don't want it
1:19:16 and now the theme will build with these settings
1:19:23 daniel you are so brave doing stuff like this on a live demo i am well you know how it goes nothing
1:19:30 you know nothing ever feels right it's fine um
1:19:37 so up until yesterday i had automatic versioning set up and i removed it
1:19:42 yesterday because one of the very small dependencies which is a package called get tag version
1:19:48 stopped working and i don't know what spend one day fixing that for today's
1:19:53 presentation so i removed that uh i might add something better but
1:19:58 right now what drives the version for the team is the version you have set in the package json here so i'm going to
1:20:06 bring that to 1 0 0 and save it next time i build it's going to be version 1.
1:20:13 in the install folder you're going to have the zip file that you would install in dnn but if you have a local site you don't
1:20:19 even have to because it's already distributing the files in the right place so i'm gonna go sf demo local test me
1:20:28 which is the url for the local site i set up for this demo and it's going to take a little bit to
1:20:35 load oh you're running 910 there of course
1:20:42 you always do demos with a beta nice so
1:20:48 that's another thing about me i'm always going to use rcs and betas and stuff during
1:20:54 development to help test to try to figure out issues before it becomes a real product
1:21:00 so yeah here you have what 910 will look like notice the persona bar colors are
1:21:07 different everything is the same in the persona bar it's just the styling and this is the out of the box
1:21:15 team but you can customize it time providing i will show you how um
1:21:22 but basically right now what we need to do is to go to uh teams
1:21:30 and pick the theme we just created
1:21:36 and your mileage may vary but sometimes you have to go to the home page because the home page has a
1:21:42 specific one set so you need to go here and also change it for the home page the rest of the site should be fine but
1:21:49 with the dnn templates the homepage come with the set okay
1:21:55 so notice the content no is no longer placed right that's because
1:22:01 this content relies on bootstrap and i decided to not take bootstrap right so that's what i mean when a
1:22:07 dependency changes and your content relied under those dependencies well you have to rewrite
1:22:12 everything so that's why it's usable but it's not it's using bootstrap classes to place
1:22:20 the things so now that part stopped working um i will just set up a couple of pages here
1:22:27 um add multiple pages let's do
1:22:34 let's do let's do i don't know uh products and under products will have commercial
1:22:42 products and we'll have resi residential
1:22:49 products what else services
1:22:56 and under that will have support
1:23:01 [Music] repairs parts
1:23:07 let's say and contact why not
1:23:12 add pages so out of the box you have a menu system
1:23:19 that is driven by pure javascript there's no menu library there's no bootstrap
1:23:24 involved it is responsive i did some changes yesterday i hope everything is still
1:23:29 fine it is so it's not super fancy menu but it's responsive
1:23:36 well just found a bug it's responsive and it's very very very minimal
1:23:42 dependencies cool now next step uh
1:23:48 you want to do changes to this thing right that's the out-of-box experience but that's not the colors i want very
1:23:56 often um low-budget clients they will they will want something
1:24:02 simple you know i want a menu i want my logo i want something in my footer and here's
1:24:08 the colors and my logo right they rarely have like very fancy requirements
1:24:14 so one of the things i want to make really really easy and it's part of how the idea came in for this
1:24:19 theme i had a client he has i think six portals they all need to use the
1:24:26 same logo but in different colors and he wants a very simple theme
1:24:32 just different um brand colors on each of the portals so the idea i got for this client is
1:24:40 i'll make you one team and for each site you'll customize just the colors
1:24:45 and the way i'm getting there is with css variables so each site will have an override for
1:24:51 css variables for your primary color secondary color light and dark versions of this and this
1:24:59 connects with the plans for dnn 10 to make css variables a first class citizen
1:25:05 um anybody here show of hands well there's not many people showing their
1:25:10 faces here but that attended the styles uh what was the name david the
1:25:18 presentation we did together harmonizing styles everywhere constant
1:25:24 web components styling everywhere or something yeah something something so it boils down to
1:25:30 that kind of idea so let's get to the theme one thing i want to do as a
1:25:38 developer is to see my changes live so i'm going to minimize this
1:25:44 to about about wee big
1:25:49 and another command that you have in the terminal here would be yarn start i'm gonna
1:25:57 close this window i don't need this anymore and here
1:26:04 you're gonna put the url where you would see the site so in my case it's going to be http
1:26:11 sfdemo dot local destiny
1:26:17 and that automatically opens up a browser window which i'll try to snap here
1:26:24 come on nah that was not it but i will try to snap here there we go
1:26:33 this fires up a proxy server that under the hood serves your dnn instance under it
1:26:41 just found another bug working progress
1:26:47 so notice the login screen and the colors of it
1:26:52 and we'll get that slightly different so one thing with the proxy this way is
1:26:58 that you don't get the persona bar i just logged in so we have the menu because these pages were visible only to
1:27:03 admins and you can also visit your site normally
1:27:12 on all my sites i usually disable pop-ups site settings
1:27:19 like behavior more uh this is new i don't know if it's in 910 or it was
1:27:25 already in 99 but you have a ui now to disable pop-ups which we didn't have until
1:27:30 recently okay just so i can show the login without the iframe issue
1:27:39 let's close this and now this will watch for file changes and
1:27:47 it will reload this page after about a second so i can go on and make changes so
1:27:53 first thing i want to change my brand colors so i'll go into styles and it's a
1:28:01 scss file so sas files the main file will load dnn things and skin things
1:28:10 one of the thing that's done here we're telling dnn do not load your default css i will
1:28:15 provide it to you and the dnn folder is basically a repeat
1:28:22 of dnn default css but a little bit cleaned up and
1:28:30 a lot of things that i've i judged deprecated like they're not using the
1:28:35 platform i didn't see those classes anywhere and they're not used by any of the core modules i move them into that file
1:28:42 so you have the choice to include it or not uh and in this case i'm not including it so
1:28:49 that reduces my default css by a lot and there is more coming to the platform
1:28:56 one of my plans for dnn 10 is to move a lot of things here that are not global
1:29:01 they they don't load on the default page while they should go into the module where they they belong if it's something
1:29:07 about login they should be part of the login module if it's something about um social features they could go should
1:29:14 go on the social model right so there's a big cleanup still to make here but it's going to be part of
1:29:19 platform not the theme but here you have a good cleanup and it removes a lot of unused stuff and the default css makes
1:29:26 it really really shorter and then it also imports dnn variables so that's the
1:29:32 part where the fun begins in my dnn css i have set
1:29:39 css variables consumed by everything here so if you change dnn color primary
1:29:47 that's going to change the button colors on all the web forms modules everything that was
1:29:53 styled by default css as blue now uses this so i have one place to go change it
1:29:59 and it's going to affect everything that was using the dnn blue so in my case let's say the client
1:30:05 wanted for his primarily primary color
1:30:11 delete this boom boom and i'm just copying from a real client
1:30:18 style guide which is kind of the green yellow nature color palette
1:30:27 and you just copy a couple of things here and then you have your secondary color and then you have
1:30:36 your secondary light color and you have your secondary dark color
1:30:42 and the ones that end with the word contrast well they need to be a color that contrasts
1:30:48 well over these three right um
1:30:53 also this one and the normal text
1:31:00 color right here is your text color for your paragraphs and stuff so
1:31:06 that's the color they wanted these css variables note that they are
1:31:12 all prefixed with dnn that's no coincidence these are the plans for dnn 10.
1:31:18 so a team developer putting those values here would affect
1:31:25 all of dnn controls also which is really cool so you now you can style your theme and also the login and also all the
1:31:33 little pop-ups from dnn and stuff to have a consistent styling
1:31:39 module developers they could also consume those and it's an opt-in if you decide to
1:31:45 consume that well i want my module ok button to use the site primary color well just consume
1:31:52 this and you have it so that's the plans for the nn10 to harmonize
1:31:57 the css fight between teams and modules and the dnn ui
1:32:04 is the way to solve them so if i just save this i probably need to open up dev tools
1:32:12 to avoid caching issues and just move it out of the way
1:32:18 but this should have reloaded there we go so i just changed those css variables and my team is already
1:32:24 in the client requirements for brand colors right now if i decide to log out
1:32:33 cpl equals log off and we log in
1:32:40 my login controls are set my active element here border is in my brand
1:32:47 colors i have highlights for when the the items are hovered or
1:32:54 accessed through keyboard same thing right so just with this i already have something
1:32:59 that doesn't look like the dnn colors out of the box
1:33:05 well that's the general idea with the css variables
1:33:13 this is done this is done [Music] okay next thing a team developer will do
1:33:21 very often is style
1:33:26 multiple things so as part of the theme template so that was styles uh scripts i'm not
1:33:33 gonna go through this right now in details but basically bootstrap is only
1:33:38 imported if you picked it in the settings if not it's just hanging there it doesn't get distributed
1:33:45 uh there's various utilities here that's kind of cool okay i'm going to go a little bit through the javascript
1:33:52 i have a little function called replace classes where you can pass it classes that you want to replace
1:33:58 with something else and that also was a requirement by a specific client
1:34:04 and basically they had font awesome for everywhere and they needed to upgrade to font
1:34:10 awesome five but all their content was using phantasm for so basically what i've done here is a
1:34:18 little method that will get
1:34:25 those are the old classes and those are the new classes for the equivalent icon between font
1:34:32 awesome four and four thousand five so this is not uh generated unless you import it but it's available there so if
1:34:39 you have that situation where you need to upgrade a theme and the content relies on 4004 uh
1:34:46 well it's there available for you another one that i did as a utility was
1:34:52 no that's the only one i did never mind the same logic could be done for bootstrap
1:34:57 let's say three to four you could just copy the idea but use the different class names
1:35:04 for instance img responsive versus img fluid or
1:35:11 something there was some breaking changes on a couple of class names so that's one way to kind of
1:35:18 avoid the um breaking change still have something that works
1:35:25 with the old content and one thing interesting about that method is
1:35:30 it will show up in the console log disregard that red thing that's a chrome
1:35:37 plugin but it will show for each class it had to replace it will show which element and you can
1:35:43 hover and it's going to highlight it on the page so a content editor would see that and say oh hold on i need to go change that
1:35:50 one hold on i need to go change that one so it's pretty cool feature for team upgrades
1:35:56 um that was the script and the other menu ps here so it's a typescript
1:36:03 by the way for those who might not know typescript is a superscript of javascript
1:36:11 a super language super whatever it's compatible with javascript
1:36:17 but it's better than javascript because it has typings that's the quick 30 seconds description of typescript but basically
1:36:24 my whole menu system is 113 line 114 lines right
1:36:29 pretty basic simple menu you can use it with mouse with keyboard and it's responsive
1:36:34 could be improved but it's uh what did i call my team basic not
1:36:40 basic minimal so it's minimal then in the html folder you actually
1:36:46 have your um your your different views for the theme right
1:36:51 so i only have one default ascx that's how i go usually unless there's more requirements than this
1:36:58 but you're going to see one here tests ascx dot resources it's rename that resources on purpose so
1:37:04 dnn doesn't grab it and know that and think that it's a theme view but if i just go and remove the dot
1:37:12 resources notice that it rebuild and if i go back
1:37:18 to dnn i should keep both opens here uh what was it sf demo
1:37:24 so that i have my menu so now that i remove the dot resources
1:37:29 i can go in my oops let's go directly here appearance
1:37:37 so now i have tests here and this is just for the skin developer
1:37:43 save little x it's reload boom you have a
1:37:50 bunch of things here so you're going to say well that doesn't look right
1:37:55 and the reason is these are bootstrap examples and i decided to not
1:38:01 get bootstrapped so i'll go in my testcs ascx
1:38:07 and this loads up includes partials uh
1:38:14 no sorry sorry not here i should have tests somewhere test ascx partials tests partials
1:38:22 tests so the all of these under the test folder are examples of
1:38:29 elements in dnn that that would be styled by default css and the likes so
1:38:35 bootstrap ascx is there just for bootstrap i don't want this one so i just want to change uh
1:38:43 tests dnn tests dnn and i'm gonna remove this line because i
1:38:49 don't use bootstrap save reload well it should reload okay so now i
1:38:57 don't have the bootstrap stuff anymore so for a team developer this is really really cool because you
1:39:03 see how the jquery resizable plug-in how it's styled so if you want to change
1:39:09 how this thing looks or feels you could do it you want to style your login well you
1:39:14 have a nice place to test it you don't have to log in log off login log off you have a little thing here you have
1:39:20 any older modules that use the dnn ux ui guide
1:39:26 which was by the way an idea to get everybody on the same page which never
1:39:31 worked but you're going to see a lot of modules that do implement this and i have a little bug with this one
1:39:37 for some reason well disregard the bug but this is where you could style these
1:39:43 things you know using your team if you want something different plain forms
1:39:48 that's how you would test it the primary secondary tertiary buttons you would see a preview right here how
1:39:54 the um the dnn table you want to style that special way
1:40:00 they go here the info and error messages those are driven
1:40:07 by these css variables here with a transparency
1:40:12 so that's how you would customize them and so on and so forth um this is a bad example because it has
1:40:20 a menu here but it's totally unstyled so disregard the example here but everything else pretty quick there's
1:40:27 stuff that you do very often you want to add it to your tests well you can add them here so it's easy to
1:40:34 quickly develop and when you're done you just rename back the test cscx
1:40:41 do not distribute it to that resources and if you do a bootstrap theme
1:40:49 then you don't remove the line i removed and boom you get all your bootstrap components examples by the way part of the build
1:40:56 system will apply these variables into the the bootstrap
1:41:04 colors also which is pretty cool um and this view
1:41:12 cool so it's a minimal theme the goal was performance let's see how we do on performance
1:41:26 so let's uh change back to our default here and save
1:41:31 right i don't need us code in the front anymore so let's go that way and let's just reload
1:41:39 so that we have this cool now performance don't do performance test with the proxy
1:41:45 because the proxy adds stuff so it's not a real good test
1:41:51 on your real site you're gonna do your performance another thing to be aware of is if you
1:41:57 have chrome plugins well those are counted in the performance so if you want to do a real performance
1:42:04 test you would have an incognito window let me copy the url first you would do
1:42:10 it in an incognito window right and not logged in we don't want to
1:42:18 count the persona bar and all these things right that's we're doing this for visitors and this is where you would run your tests so now
1:42:24 i'm going to open this let me bring that over here
1:42:29 and in chrome as an edge i think is it an edge well in chrome you
1:42:36 have one of the tabs it's called lighthouse it's the same engine that drives a lot of
1:42:41 clients go by google pagespeed it's the same engine it's just a little
1:42:48 tiny bit better because it doesn't give you the same what's a nice word for stupid
1:42:55 well stupid advice opinionated advice as google would give you for
1:43:02 instance complaining about their own scripts performance so it's a little better i find so let's
1:43:08 try and desktop first
1:43:15 and by the way i didn't minify anything so without magnification we're getting 99
1:43:21 performance which is pretty nice on desktop on a mobile without compression without
1:43:29 minification without merging the files we're getting 96
1:43:34 right that's the worst case scenario not not even a single consideration for
1:43:40 performance right now now if we go into the network panel
1:43:45 and we go look at our largest resources here uh this way so the biggest one is jquery
1:43:52 right followed by scripts and followed by the logo so we don't
1:43:58 have a huge dependency the big one is jquery now i've said i'm
1:44:04 the no dependency guy and i didn't do anything on my team to request jquery
1:44:09 what's wrong well that's another thing i'd like to improve for dnn 10. as soon as you include the search scan
1:44:16 object it has to load jquery that's the same reason why i disabled pop-ups by default
1:44:22 the pop-ups require jquery before the pop-up loads so it's a 20-something k
1:44:29 compressed just for jquery but then jquery ui ah that's huge i don't want jquery ui
1:44:38 we're not even using it so in order to solve that temporarily just
1:44:44 for the sake of the performance test here i'm going to go and just remove the
1:44:49 search skin object but it's something i plan to do for the n10 that the search skin object and
1:44:54 login don't rely on jquery because i find that jquery belongs in some places
1:45:00 but stuff like this that that are part of the theme loads on every single request i don't
1:45:07 want jquery there it's a huge dependency for no reason i don't need jquery to make a dialogue
1:45:13 i don't need jquery for the search
1:45:18 so in order to disable that i'm going to go in my html partials not tests
1:45:27 header and somewhere somewhere search i'm just i'm just going to kill
1:45:33 it for now we'll do something better obviously if you would
1:45:38 be doing a real theme um you might want to consider different
1:45:45 things but right now i just want this and uh registers i don't want to register
1:45:51 [Music] search kill this
1:45:57 boom and now let's do a hard refresh i i
1:46:02 didn't use the live thing but if i reload now my largest
1:46:09 resource is script resource which is the well i'm sorry no
1:46:16 this is the javascript and then my second biggest thing is the logo
1:46:21 and then i have my team so my team css is 15k 15.1 k this includes
1:46:29 the dnn the replacement for dnn default css plus everything i have on my team just
1:46:34 15k and my team javascript
1:46:42 my team javascript is 1.8 k
1:46:48 all the javascript for the menu is included there well i don't have a lot of javascript on
1:46:53 my team so it's kind of nice but if if you load jquery
1:46:59 just to query elements and stuff you're loading like 10 times of a dependency than the
1:47:06 code you're writing it that just doesn't make sense you know just learn vanilla so there's that lighthouse oh
1:47:15 okay so another thing that we should do
1:47:20 for a production site would be to go to servers and server settings and performance and
1:47:27 you would well adjust the cache and this and that but i'm more interested in composite files and magnification
1:47:37 and just increment the version here to be on the safe side say boom
1:47:45 boom and now my skin and javascript and oh i'm still
1:47:52 logged in log out this
1:47:58 oh now my skin javascript is now included in this script resource they're
1:48:04 all bundled together so with compression it barely grew
1:48:09 0.8 k because a lot of these things got compressed together with the rest so
1:48:14 it's really really really minimal and my second largest resource is this local png so
1:48:21 pink replay and the css right all of the css is now 12.4k all the css
1:48:28 and my biggest thing now is the logo that i could reduce and let's choose just that
1:48:39 ah let me switch my notes here do this
1:48:46 [Music] and let's go um site settings
1:48:52 and i have a logo here [Music]
1:48:59 uh um grab some logo here and
1:49:07 let's grab i had a five icon somewhere here no not this it's gonna be here
1:49:16 and this one
1:49:27 and now if i go to sources network well my logo went way down there because
1:49:34 now my logo is well is it that big ah there's text and
1:49:39 everything there's a lot of svg logos that are going to be way smaller than this
1:49:44 so bad example but yeah now obviously this logo is kind of larger
1:49:51 and less a lot of text so you would adjust the theme to have this a bit bigger and stuff
1:49:56 um i'm gonna quickly do it from notes because i want to show another thing
1:50:02 that's new in the n10 how are we on time david
1:50:07 oh we're good you go about nine minutes i have nine minutes yeah if you can't work feel free to have
1:50:14 a little bit more and if people need to drop they can drop we'll keep it recording okay cool um
1:50:21 so the logo and the styles uh in the
1:50:27 skin styles if anyone is really new here uh themes used to be
1:50:35 called skins in dnn so that's why all the developer oriented
1:50:41 stuff it's named skin and it was re branded renamed team
1:50:48 in the ui so if you see scanner theme it's pretty much the same thing so my logo is in the header and i have
1:50:56 some styles here so i could make it the minimum width 300 pixels which will help that
1:51:06 uh let me bring this out and bring this side by side
1:51:13 and if i reload and notice i'm i'm manually reloading because i have to keep going back and forth on the persona
1:51:20 bar here but usually i would use the live reload performance
1:51:26 let's disable this during development well i did all this to show you lighthouse but basically you get a
1:51:32 hundred hundred with the logo replaced and um using minification
1:51:38 and not having to load jquery it was the thing i wanted to show but
1:51:45 you you know what a green 100 looks like so i'm not gonna go back there okay that makes my logo a little bigger
1:51:52 now the example i gave you earlier that i had a client who needed multiple portals
1:51:57 and just the logo needed to be different colors right so i can do this here however
1:52:04 right now the logo is loaded as an image and i don't want
1:52:10 that i want my actual svg to be right here and that's a new feature in nine
1:52:18 nine i believe or nine ten nine nine i guess but you can pass something in your
1:52:24 logo uh html partials header
1:52:31 in your logo skin object right here let's get this a little bit more
1:52:37 visibility um you can add inject svg
1:52:44 inject svg equals true and what will this will do is instead of
1:52:51 loading it as an image tag it's actually going to read the content of the svg and split it on the page
1:52:56 so if i save this let it finish building and do a hard refresh here
1:53:02 and bring my dev tools here well c we don't see the logo anymore for one
1:53:10 and two um well it's gonna be easier to fix this
1:53:16 first or faster should i say uh let's go with
1:53:21 with with with the css of the header so because it's no
1:53:26 longer an image i need to style it differently so i know that my
1:53:32 um oh i forgot a little something which is to embed this in a
1:53:37 div called logo so i can target it with css
1:53:44 save let's go back here to header css okay so i have my
1:53:51 logo div right
1:53:56 and then for my logo i have uh let me give it let's use flexbox and
1:54:03 give it a flex basis of 400 pixels so that means it will try
1:54:09 to be 400 pixels if it can so if you get on a smaller device it's gonna squish by itself
1:54:15 right so it's gonna try and be 400. um then i'm just going to
1:54:22 copy css here just in the spirit of saving some time why can't i get here
1:54:30 um [Music] do i have anything huh
1:54:36 my mouse is locked i can't get to that why okay now it's going hey
1:54:44 okay i'm just going to copy a piece of css that i have already done yesterday because my so now what i'm doing
1:54:52 is i'm getting i know that my svg code right my svg element
1:54:58 has an id of logo and in there i have class one for some reason i just grabbed the svg from somewhere so
1:55:05 i didn't write it but i know that the thing i want to color as class one
1:55:10 and the text part as text and class four and when we hover and this is a
1:55:17 very very bad example it should be on hover or um active
1:55:25 always not active focus sorry because if you go by keyboard to
1:55:31 navigate to this thing it's going to be focused if you go by mouse it's going to be hovered
1:55:36 so people who always think on hover try to think together hover and focus it's
1:55:41 if you're using the keyboard you're focused you're not hovering and same goes for mobile devices there's
1:55:46 no hover on mobile so if i reload here i should see a logo with colors
1:55:55 i said loading browsers uh
1:56:00 hey finally the demo gods showed up
1:56:06 line two main css
1:56:14 since those are expected oh i have some invalid css copy paste will get you there
1:56:22 this is here this is there this is there and focus um
1:56:31 i am missing i think this
1:56:41 there we go boom so now i have my brand colors here right pretty cool so now you know how
1:56:49 each site has a custom css right so i could just
1:56:57 redefine my brand colors per site and be using the same theme for all my sites
1:57:02 which is pretty cool for a multi-site single client that needs different
1:57:08 styles for sales and support they have different sub domains or stuff like this
1:57:15 or for clients that they just want a site running they don't have crazy needs for a team so you put a
1:57:22 logo you style it with the brand colors boom you have a team working as future comes
1:57:27 they want to invest on the team well you expand upon it but you have something nice with high performance
1:57:32 out of the box and this talked about this talked about this
1:57:43 i am done with my talk now questions or demo of the persona bar
1:57:50 the questions is x minutes then move the persona bars five minutes because i have it ready
1:58:01 yeah for the ready one okay so persona bar what was done
1:58:09 by uh mr david poindexter here was a restyle of this thing and then we
1:58:16 came out with the idea of it's cool but why not make it customizable
1:58:22 and maybe even white labelable see i can invent words too
1:58:30 white labelable so let me get um on the site
1:58:36 and show you how it's done it's part of the pr and i think it's part of the nn docs is it
1:58:45 no not yet not yet okay it will be okay cool um so it's
1:58:51 sf demo now right now word of advice this is
1:58:57 for hosts so if you change it it's changed for all the sites
1:59:05 now in your dnn instance you need to go to portals
1:59:12 and because it's not for any specific portal but it's for the the host or the super user or the
1:59:19 instance then it's in portal default i prepared the files in advance here but basically
1:59:24 you would copy uh from the desktop modules admin persona bar and edit bar
1:59:31 you would copy the team css and put them here as edit bar team css or personabar
1:59:39 theme.css i named that resources so they don't apply now if i just
1:59:47 rename the css
1:59:55 and reload the site and boom i have a totally new um
2:00:02 color scheme and i still have like all my main is working fine and the edit bar is that theme also
2:00:08 and you can even change the logo now i did this very quickly as david was doing his
2:00:14 presentation when he mentioned this so i didn't take the time to find a nice
2:00:19 logo and everything and it's black so it's kind of strange but that's the overall idea so you can
2:00:24 even replace your logo right now what i have here is like really really
2:00:30 basic and i'm just redefining the colors however it's not limited to that if you
2:00:35 want to totally change everything you have access it's a css file that loads with the persona bar so you could go and change and make
2:00:43 everything totally different but right now i'm just like redefining the colors to match the
2:00:48 branding guidelines that client x provided me right
2:00:55 and maybe in dnn then i'm providing well the modules here
2:01:01 those components and those buttons will match with also the um the brand guide
2:01:09 that's plans for um the consistent ah that was the name
2:01:15 of our talk consistent styling everywhere so eventually this will consume the css
2:01:22 variables we we just defined and that's pretty much it any questions
2:01:31 yeah daniel you could probably just do an inspect there and show them where they can grab that the
2:01:36 the css so that it's not on oh totally um it's under webs
2:01:43 oops you can copy uh website um i've just been in the in the
2:01:49 browser inspection oh yeah sure you can see where the css variables are
2:01:55 injected uh for the persona bar and then if you open the edit bar you can see that as well so
2:02:03 and you can really just copy it from here and place it into a file that's named like he named them
2:02:08 and exactly uh not this one no that one not me not me not me not mean all the
2:02:15 way down at the bottom really yeah right there
2:02:21 oh there we go so if you don't have that file it's going to show the one
2:02:27 that comes out of the box in the in the desktop modules folder but if you put the file that's what the
2:02:32 things you're going to need to define are these colors and that's kind of a great way to
2:02:37 test your theme as well yeah so that way you can just change those values right and totally play with it right here yep
2:02:44 um and let's go and i'll work this on your whole design there and then place it into a
2:02:50 custom file and then the same is true for the edit
2:02:55 bar whenever it's shown it'll inject those there as well so oh this is perfect
2:03:00 purple and green that's a nice
2:03:05 that's purdy yep so other than that
2:03:14 everybody fell asleep that's a really good uh presentation there daniel i'd love to see how you
2:03:21 get things in such a vanilla way yeah cool stuff and it's open source you have ideas you
2:03:28 know as long as they go with the philosophy of the team you know like don't start sending all kind of
2:03:34 dependencies and you find a way to improve something that benefits the greater good
2:03:39 while contributing contributions are welcome uh one of the things
2:03:48 there's a couple of open issues if anybody feels like tackling this anybody has experience
2:03:54 with bootstrap 5 and wants to grab a bite at this thing and just needs
2:04:00 help with you know how should i do this and stuff like pick me up
2:04:05 still looking for a better way to manage automatic versioning to replace that failing thing and
2:04:11 um i want to remove yarn in favor of npm because really we don't need yarn here and npm
2:04:18 comes out of the box with node.js so that's things i have in my backlog but
2:04:24 if you find any issues like i found the little dialogue things were misaligned or you
2:04:30 know you use this team and you do some fix for your own work and you want to contribute back to fix
2:04:36 contributions are welcome excellent well thanks daniel for for
2:04:41 doing this i think that's very helpful for you these tools it's great to have options out there
2:04:46 on how to approach this stuff and this is a really good standards way of approaching this whole thing so thanks
2:04:52 for presenting well uh we'll wrap up the recording piece of this thanks for everybody for
2:04:58 joining and feel free to hang out after the recording if you want if you have uh things that don't need to be said on
2:05:04 air but we'll go ahead and stop recording thanks for joining us and next month um i think we have on the
2:05:11 docket mitch sellers uh presenting on uh the technology
2:05:17 uh group and things that are going on there and i'm looking to see who is joining
2:05:22 him uh that will be i could get to the right page here chris
2:05:29 hammond is actually going to join us we don't know what he's speaking about yet but uh be nice to hear from chris hammond
2:05:35 chris talk as many of you know him will be joining us so that'll be on thursday
2:05:40 october the 19th and we will go back to our evening schedule here on the east coast
2:05:46 which is a 6 30 p.m eastern daylight time so looking forward to that be sure to register out on the
2:05:53 meetup site if you haven't already and get that on your calendar i'll go ahead and end the recording and
2:05:59 thanks for joining everybody


Southern Fried DNN: FOLLOW-UP to GA4 + DNN Connect 2023 RECAP
Jun 15, 2023

This meetup will serve as a follow-up to last month's recorded-only meetup on Transitioning to Google Analytics 4 (GA4). Watch the replay on YouTube HERE and bring your questions/comments. Afterward, we will recap all the wonderful things from DNN Connect 2023. There were so many great takeaways, so you will not want to miss this - there's something for everyone!

Southern Fried DNN: Transitioning to Google Analytics 4 (GA4)
May 19, 2023

As many of you know, support for legacy Google Analytics will cease in July 2023. In this meetup, we'll discuss what it takes to make a smooth transition to Google Analytics 4 (GA4). We'll also cover the various methods for implementation within a DNN instance.

Southern Fried DNN: DNN Summit 2022 Recap + Community Project Highlights
Feb 17, 2022

This month, we'll be recapping DNN Summit 2022 and then we'll take some time to highlight a few exciting community projects. Trust us, they are worth knowing about and getting involved with!

Southern Fried DNN: Sebastian Leupold (Internationalization) & David Poindexter (Web Components...)
Jan 20, 2022

We all keep hearing about web components. We believe they must be cool or something. So, just show me the freakin' secret sauce already. Stop telling me about them and start showing them - in action - in DNN!

Southern Fried DNN: David Poindexter (DNN Strategy) & Daniel Valadas ("I Like Vanilla!")
Jul 15, 2021

Bringing overall strategic direction for the DNN Platform project and coordination between all leadership teams. As the DNN Platform and DNN Community evolves, new ideas and technologies will surface. These are great and it is essential to have a "gatekeeper" funnel to ensure all parties are in the loop, providing feedback, and are contributing to any proposed changes in direction or special project efforts. Learn more about the exciting special projects underway and on the horizon.

Southern Fried DNN: A Web Components DNN Future
Aug 17, 2018

Are you tired of JavaScript Framework Churn? Perhaps some of my latest development efforts will help brighten your day and improve your outlook for future DNN development possibilities. While this project is in the early stages, I am so excited about it and wanted to go ahead and share what I am working on for the DNN community. I believe this contribution will have similar, if not greater, impact to future DNN development as some of my previous open source contributions.

Southern Fried DNN: URL Redirects + What's Next with nvQuickSite + DNN Corp Webinar Post-Game
Sep 22, 2017

Have you ever had to install DNN? Did you do it with nvQuickSite? If you didn’t then you may have taken longer than needed. nvQuickSite is a great tool for installing DNN created by our very own David Poindexter of nvisionative. The DNN Community loves nvQuickSite and uses it all the time to help make installing DNN more efficient.

Southern Fried DNN: JWT in Action with DNN 9 & Ionic
Mar 17, 2017

This will be an exciting walk-through on exactly how to get setup DNN 8 or DNN 9 for authentication using JSON Web Tokens (JWT). Once we have have DNN configured properly, we will test using Postman. Then the real fun will begin as we integrate with a mobile app using Ionic. These will provide the fundamental building blocks for you to connect any outside application to a DNN instance using best practices.