Good, fast code is always better than caching. But when you need to cache, make sure you can control it and turn it off. Anthony walks us through his perspective of caching in Umbraco, and offers an alternative caching pattern to help you gain better control of your cache.
Issue No 55
With Umbraco 8.1 out, more teams are confidant that it's the time to start moving clients over to v8. There is no upgrade path between 7 and 8, so we need to migrate instead. Having begun to do this himself with internal projects, Owain has a number of "look out for this" pieces of advice to offer for those beginning this undertaking.
Issue No 54
Umbraco 8 brought a huge overhaul its backoffice UI. For Callum, the experience is a "buttery smooth" update from v7. But with the changes came some situations of "moved cheese", where finding the new v8 versions of v7 functionality can trip folks up. Callum shares some common trip-ups he and others have found, providing a useful guide for locating needed features that have moved.
The Umbraco CMS and community pride themselves on their friendliness. For Jan, part of being friendly means making the Umbraco backoffice as accessible as possible, both in modifying the patterns in our own projects as well as helping out in updating the backoffice itself with best practices.
Issue No 53
GraphQL is a powerful tool for querying data for use in your client-side applications, allowing the client-side to define the data it needs from the server. Laura shows us how to use GraphQL with Umbraco to get bespoke data alongside Umbraco content from a custom dashboard, and does so to build a tool to track her own carbon footprint as part of her efforts to help contribute to saving the world.
As a woman from Aruba, Natasha faces two challenges in the tech industry in the Netherlands as part of a male-dominated career and as a foreigner who didn't speak Dutch as her first language. Now part of the team at Perplex, she discusses the difficulty of her "double negative", and how those became positive traits in an industry that benefits from diverse voices.
Issue No 52
Paul and Ben believe in Umbraco Cloud, but it lacks geo-redundancy for the service (AKA failover) and load-balancing for individual projects. Spurred on by (rare) outages in early 2019, they've created a failover environment to use with Umbraco Cloud. Better yet, they've shared with us their solution, which is useful for cases such as zero downtime upgrades and blue-green deployments
Joke shares what agency life is like as a "Highly Sensitive Person" with a heightened sensitivity to the noises, sounds, and smells in the office, and uses her experiences to share advice on how to survive in an agency, whether or not you are an HSP, and take better care of yourself in the process.
Issue No 51
It's been a year since GDPR, which is the perfect time to look at how we as the Umbraco community, the Umbraco CMS itself, and other CMSs, can participate in the journey to better privacy and security. As a member of the Cross-CMS Privacy Working Group, Alan looks at all this and our opportunities to maintain momentum in privacy in a post-GDPR world.
One in three professional developers don't have degrees in computer science. Instead of suffering from the doubt of imposter syndrome, developers with backgrounds in different fields should take heart as Linda discusses the evidence that this isn't a predictor of your skill as a coder and the non-coding skills that make programmers of all backgrounds priceless.
Issue No 50
Paul walks us through five different ways of rendering reusable ModelsBuilder content, the pros and cons of each method, and how to do each one. You may already have a preference, but now you'll be able to recognize someone else's method if you inherit a project!
Hot off the heels after delivering her talk at Codegarden 2019, Tiffany Prosser discusses how web accessibility has come to the forefront of her role in web development; looks at how it can be considered one of the fundamental building blocks of creating modern high quality websites; and considers the role of accessibility within the back office environment of Umbraco.
Issue No 49
As we know, V8 is out. And for the go-getters out there that means it's time to upgrade those packages to work with the new version! But what about our clients still on V7? Andy is here to share a strategy for updating to V8 while dealing with the realtiy that is maintaining for V7 at the same time.
PDF generation in .NET can be a bit of a bear and it's something that most of us have had to deal with at one point or another. Anders talks about XSL formatting and how we can use it to remove some of that pain and generate PDFs on the fly.
Issue No 48
Burnout is a constant risk in our industry. One contribution that puts our work/life balance is taking on any clients that comes our way. But as David reminds us, having more clients isn't always the healthy way to grow our business. Instead, he he outlines the process to know which clients to fire, and guidance on how to do so.
One thing we all have (hopefully) don't have in common with flat-Earths is the mistaken belief that the Earth is flat. But more so, many of us Umbracians suffer from the opposite of the Dunning–Kruger effect that causes them to believe they're experts when they are not: and that is imposter syndrome. Renee discusses her own struggles with imposter syndrome and shares ways we can all combat it.
Issue No 47
When we build websites, we're most often laying them out with some form of building blocks. Umbraco's built-in Nested Content is perfect for this, and Dennis shows us how to utilize strongly typed models with them for a more maintainable code base.
Umbraco v8 is here! And with it comes content apps. Nathan tells us about this exciting new feature and how to get out there and start building your own content apps.
Issue No 46
Twelve years ago, Tim was diagnosed with cancer. He survived, and in the process learned valuable lessons that he's sharing with us that apply to both life in general as well as to our lives as web professionals.
Animations are the flare that everyone wants on their website (or app), but how do we approach them responsibly? Mike touches on everything from accessibility to performance in this follow-up article to his Umbraco UK Fest presentation.
Issue No 45
Starting a meetup can be rough but also incredibly exciting. Every new take we get on running and starting them helps new areas feel confident in building their own. Mike gives us some great tips and tricks that he's learned from the very new Minneapolis meetup!
It's not exactly a New Year's Resolution, but following an #Umbraco twitter conversation on conferences in December, Kyle has issued a "conference challenge" to the organizers of our varying festivals about how we engage with and compensate our speakers.
Issue No 44
What are containers? What is orchestration? With new technologies and buzz-words coming out every day, Callum discusses Docker and Kubernetes, how you can integrate them with Umbraco and answers our most important question - should you?
Umbraco, editor experience, user experience, and accessibility? Count us in! Matt walks us through how to empower our editors to take control of making their site as accessible as possible by using CSS3 variables that are integrated with the Umbraco back-office.
Issue No 43
We don't always want to store external data in Umbraco, but when we do, getting it from point A to point B can be quite a headache. Anders gives us an incredibly detailed real world example that not only helps us determine why and why we might want to import data into Umbraco but also how to do it.
Speaking at a conference can be exhilarating, intimidating, and potentially full of unknown hitches. Pete gives us insight into what presenters should pay attention to when giving a talk and how audience participation can make all the difference. Perfect as we dive into UK Fest this week!
Issue No 42
To some, the MVPs in the Umbraco community remain a mystery. Marcin is here to unveil his story and journey from zero to hero and show others how they can travel the path towards becoming recognized members of the community.
Migrating data from old versions of Umbraco to new ones with the ID to UDI changes can be intimidating, especially when you have large amounts of data. Benjamin takes us through using Umbraco Migrations and how to implement it to make your upgrades seamless and painless.
Issue No 41
One of Umbraco 7.8's coolest new features are Tours. Dave is back to show us what tours are capable of, along with some cool ways they can be used to help our clients get the best editor experience possible.
Issue No 40
It might be a bold claim that your choice of CMS can be good for your health, but Owain backs his assertion how aspects of Umbraco's back office, its community, and services like Umbraco Cloud do in fact make it a healthy CMS.
Before he became a world-famous Umbraco conference DJ, Adam was another hardworking digital agency owner doing what every agency did: make their own CMS. Then he discovered Umbraco. Adam takes us on the journey of how embracing the open source community changed him and motivated him to give back, encouraging you to do the same.
Issue No 39
What is "the Umbraco Effect"? Nik answers this question as he shares how the Umbraco community has influenced and positively inspired him.
From the outside looking in, the Codegarden Retreat can seem like a mysterious pre-festival event. What goes on there? What's its purpose? As one of the attendees this year, Emma got a first-hand look at what retreat was like, and shares her experience with a round-up of what was accomplished.
Issue No 38
Websites can be huge with hundreds of pages, which is one reason that Umbraco is so useful. It lets us create dozens of templates instead of hundreds of pages. But reusability can make us even more efficient when we think about template sections as components. Kevin will show us how and why to design our Umbraco sites on the component level to make them even more flexible.
The default media folder in Umbraco doesn't scale well across different Umbraco site instances, especially when you need to worry about whether teams have up-to-date media folders in their dev environments. Jimmy has a solution for this conundrum, arranging for a programmatic transfer of media assets via Azure with the UmbracoFileSystemProviders.Azure Umbraco Package and AzCopy.
Issue No 37
Paul is back with another look at managing a Team Development Workflow with Umbraco Cloud. This time, he shows us how to use Visual Studio Team Services as an alternate approach to Continuous Deployment, and discusses the approach's benefits.
When your editors want the flexibility to change their Document Types and the properties don't map, what do you do? Convert them, of course! Janae walks us through the process of migrating content when changing DocTypes.
Issue No 36
Umbraco is a well-protected CMS, but security is a never-ending battle in any web application. Cristhian shows us how Umbraco is vulnerable to timing attacks for user enumeration, what risks it might pose, and how well-protected Umbraco is against those risks.
One of Umbraco's most convenient features is the ability to create and host multiple websites from one instance. Maggy shows us how to use Umbraco's multisite feature to enable clients to manage their brands and content from one portal, with tips she's learned along the way.
Issue No 35
The SOLID best practice principles are frequently applied to object-oriented designs, but they have a place in any development. Emma Garland takes us on a deep dive on SOLID and how to apply it to CMS Development in Umbraco.
Overworking ourselves is a common thing in development, especially with the dreaded crunch time! Tim has some great advice on how to recognize when you're reaching burnout, mitigating it before it hits that point, and what to do when it's too late.
Issue No 34
Many of our clients have the need for more accessible websites, either to comply with regulations or to improve the ability of potential customers to access and use their sites. Accessibility is a complex topic, but Dominique and Catherine show us ways to make our Umbraco sites more accessible from the beginning, keeping the impact to clients minimal while allowing more users to access them.
Three years ago, Jeavon Leopold showed us how Crumpled Dog's projects were structured and why they were structured that way. Three years is an eternity in the web, so now he's come back to show how they've changed their process and the new tools and structure to show us all how to get up to date.
Issue No 33
The grid has been a great tool for Umbraco since its release in 7.2 right out of the box. But it's with the creation of your own custom grid editors that its true power shows. Anders shows us how to create our own property and grid editors with minimum effort to make the most of this powerful feature.
Sometimes, back-end developers don't want to bother with Visual Studio and sometimes front-end developers would like to do a build without having Visual Studio even installed. This can be done! Inspired by a virtual meeting with GLUUG, Janae talks us through setting up Grunt to run MS Build with some VS Code tricks on the side so you (almost) never have to touch Visual Studio again.
Issue No 32
Almost every worker in our industry has pushed themselves a little too far chasing that addictive rush of solving a problem with code, working too long of hours and living too little in the process. This holiday season Pete shares with us his past struggles and how he keeps that dopamine rush from making him a workaholic.
The EU's General Data Protection Regulation is coming in 2018, and with it guidelines on how to protect the personal data of European citizens. If you're making a website visited by Europeans, it applies to you and your site. Jeffrey has taken a hard look at the GDPR and what changes Umbraco and its community of developers should make to meet these guidelines.
Issue No 31
The Grid is great for giving content editors options for controlling their content, but migrating content into it from existing properties elsewhere on your site can be a painful experience. Jason shares their pain, and shows how to lessen it through the use of hybrid grid editors.
It can be difficult to decide on the best way to implement Inversion of Control in Umbraco. Emma shows us how, and why, the ultra lightweight IoC container LightInject might be the right solution for this kind of problem.
Issue No 30
The biggest challenge we all face as developers is time. Malcolm shows us one way to help manage time by drastically decreasing the time involved in the deployment process using Continuous Integration and Continuous Deployment with Jenkins and Github.
Umbraco Cloud is a great choice for new Umbraco sites. It's even better when it's integrated into an automated team development workflow. Paul and Ryan show us the build and development workflow they've established for this using Bitbucket, TeamCity, and OctopusDeploy.
Issue No 29
For an organization in a utopian society the user interface of Star Trek's Starfleet's user interface sucks. A lot. Taking a look at the lessons that can be learned by examining the shortcomings and challenges that such interfaces would create, anne gibson encourages us to think about our own interfaces, and where to start in making them usable in our era, let alone the future.
Umbraco is all about community. But "the Friendly CMS", like any group, possesses introverts who can feel their internal batteries draining at social events like CodeGarden and other meetups. Christie Pearson discusses introverts in our community and starts a conversation on easing the challenges for introverts in an industry reliant on collaboration.
Issue No 28
We might be Umbraco specialists, but when it comes to organizing local community events most of us are novices all over again. Callum helps us eliminate some of the pain points with solid advice on the important phase of preparing for a conference, using his experience in organizing The Cogwork's Umbraco UK and Umbraco Poland festivals.
When we're stumped by a particularly pernicious bug in our code, or can't get a design to gel properly, sometimes the best solution is to step away from the problem (and maybe even your desk) altogether and put our minds to something completely different to reset and gain a new perspective. Chriztian shares his experience doing just that, turning the dreaded YSOD into a song in the process.
Issue No 27
We live in a world where WordPress powers more than 27% of all web pages. As such, many clients have expectations formed from their Wordpress experiences, thinking that a great website is only a few plugins away with minimal fuss. Josh helps us examine what kind of expectations clients may have, and how to challenge those and show how experts with Umbraco can make a better web experience.
There are always several ways to accomplish the same task in Umbraco. And it's not always clear which is the right one. Querying content is one of the biggest examples of this, with many different techniques and levels of performance as a result. Tim walks us through the methods available and testing which is best.
Issue No 26
Unit testing Umbraco when doing test driven development can be challenging. But Gary guides us through how to write testable code much more easily thanks to his Umbraco Context Mock package.
Implementing Single Sign On in Umbraco using SAML is an effective way to integrate Umbraco into a larger estate of IT systems, making new sites for corporate clients of all sizes easier for their internal users to access securely. And with Paul showing us how, we can learn how easy it is to implement.
Issue No 25
Umbraco Forms is highly extendable with the ability to add both custom form controls and custom workflows. Richard walks us through his experiences and lessons learned, giving tips and tricks on how to get the best uses out of Forms for your business needs.
Sometimes you just want to override the Umbraco backoffice's functionality for a client, like adding a custom button into the content editing view. But you don't want to modify the core and it's not a feature to put in a pull request. What do you do? Dave is here to help, showing how you can override core functionality without the mess of touching core code.
Issue No 24
Making a delightful experience for content editors is one of the primary functions of Umbraco. With that in mind, Anders teaches us how to pull the primary colors from images and use a custom property editor to select which colors to use on their pages straight from the back office.
The websites we create can cause unintended consequences for our users, as some may encounter points of friction from barriers and setbacks that we may be unaware of from our own life experience. Kyle shares his recent challenges with eating, and how that has made him more thoughtful about the human cost of decisions we make with our code and design.
Issue No 23
Ismail has a good deal of experience with Examine and Umbraco's search and is partnering up with Umbraco HQ to provide the new Umbraco Examine course. In this article he shares his history with Umbraco and Examine, and what you can learn about in the upcoming course.
40% of people will abandon a website that takes more than three seconds to load. That could be a lot of missed conversions for your company or client! Google's Accelerated Mobile Pages (AMP) can help with that, and Alex Vilmur is here to help us get up to speed with AMP.
Issue No 22
The Umbraco community, with its tight-knit nature, can be fairly intimidating at first glance for those on the outside looking in. But as Carole learned last year in her first CodeGarden attendance the community is great once you give it a chance, and she's here with advice on how to break the ice and get involved, and for veterans on how to approach newbies looking to join.
The grid, one of our favorite tools, gets better by making it beautifully strongly typed, more extensible, and incredibly searchable. Anders is here to walk us through how to set up our models, render them, extend them, and use them with Examine.
Issue No 21
As the force behind the Umbraco UK and Umbraco Poland festivals, The Cogworks has learned a lot about what is needed to run an Umbraco Festival. Their very own Sam Bailey shares their experiences in running festivals, the role of community in them, and gives advice for those looking to operate their own.
It's a new year, and that means a new round of festivals to plan on attending. Erica walks us through why festivals are important, how you benefit from attending them, and tips on how to convince your boss to send you (or why you should send yourself!).
Issue No 20
Umbraco lets us build sites virtually any way we please, which can be both a blessing and a curse with an overwhelming range of choices. Nicholas is here to help with a technique he thinks virtually everybody can make use of: making websites with widgets using Archetype and Ditto.
The simplicity of Umbraco's backoffice UI can be quickly lost when we step outside of standard website content and into custom territory and "bespoke" development where inconsistent Bootstrap-based UIs and buggy editors raise their ugly heads. Thankfully, UI-O-Matic, now at version 2.0, is here to help, with Matt showing how we can all save us from ourselves.
Issue No 19
Adding personalisation to your site can be hard, creating an obstacle of time and money that keep many from attempting it. Ondrej walks us through some of the difficulties and shows us how to quickly set up A/B testing in Umbraco-hosted sites using Personalisation Groups and uSplit.
Adding an eCommerce store to an Umbraco website has become even easier thanks to FastTrack, a starter kit for Merchello, the open source ecommerce solution. Lee Messenger takes us through the steps to get a store quickly up and running using these two packages.
Issue No 18
Importing custom icons into the Umbraco backoffice isn't difficult, but updating your icon fonts can be a tedious procedure. Søren shows us how to use the Gulp task runner to do the heavy lifting when creating and maintaining your custom icon fonts.
Issue No 17
Working remote can seem like a dream to a cubicle coder. No commute. No pants. No boss over your shoulder. But when you work where you live, your "office" and your life can become a cluttered mess. Janae gives practical advice on how to declutter your remote work life in order to safeguard both your productivity and sanity.
Lars-Erik thinks developers might be too addicted to mapping content to view models, creating headaches in the process that we could avoid by using the adapter pattern instead. Follow along as he makes his case, showing how we can use adapters and stop mapping in Umbraco.
Issue No 16
Sometimes a project's Umbraco back office requires a good deal of extra functionality. So much so that you'd like it to have its own section. But how? Anders walks us through adding custom sections and trees step by step, with a little help from some familiar Umbraco animals.
What is the "Managed Extensibility Framework"? How do you use it with Umbraco? And will it make your life easier as a developer? Michael has the answers to all these questions, showing how this composition framework can simplify your code.
Issue No 15
Optimizing your site's web performance can be intimidating and sounds difficult. But as Matt shows us, there's several techniques that you and your organization can start implementing today to improve performance and make a faster, better web.
Umbraco Migrations aren't new, but since v7.3.0 custom migrations have allowed for more exciting use of them. Follow along as Jamie describes how fellow Umbraco community members inspired and helped him in the creation of his Umbraco Migrations Viewer package to track custom migrations without logging into a server.
Issue No 14
For some potential clients, the perception can exist that open source software's value is as low as its free price. Andy helps turn around that misunderstanding by describe the real source of value in products like Umbraco to clients.
As Darren Ferguson found out the hard way, there's been breaking changes in authenticating to Umbraco using the Active Directory since 7.3. Fortunately, his pain is our gain, as he outlines how to accomplish it in our brave, new world.
Issue No 13
Deserialization is hard, with a lot of tricky situations that can arise. Nicholas Westerby has walked through this dark land and faced its dangers firsthand, and fortunately for us he's willing to share the techniques he used to defeat the deserialization beast.
Third party solutions can make unit testing a painful experience for any developer. Umbraco is no different in this regard. But thanks to Umbraco's open source nature, there are some less restrictive solutions available than in many other projects, and Sam Sussman shows us how to make them.
Issue No 12.5
Coming all the way from Oxfordshire to San Diego, GrowCreate's Adam Weston shares some of the highlights from the sessions he attended at this year's uWestFest.
From boots on the ground in San Diego, to the pre-party, and summaries of the sessions she attended, Kendra shares with us her first experience attending uWestFest from the attendee perspective, as well as from the perspective of the coordinating organization, Scandia.
Issue No 12
There's something about code and a life in development that makes us strive for perfection. Sometimes, however, that way of thinking just makes us miserable. Pete shares how to find peace with yourself and put aside the craft of the industry to get projects out the door and have a happier view of your own measure.
It's no secret that many developers twitch at the thought of working with an SEO agency, and Tim won't deny it either. But what he will show you is how to painlessly set up an Umbraco site to be friendly towards these agencies and minimize their pain (and yours) when optimizing in Umbraco.
Issue No 11
We Umbracians love our community. But on the local level, are we practicing what we preach? Heather Floyd shares her lessons learned in co-running an Umbraco meetup in NYC with advice that you can apply to bring Umbraco to your community.
Creating an Umbraco project with separate authoring and delivery environments is no easy task. But once accomplished, it provides clients with benefits such as added security and quick recovery from a site being compromised. Thankfully, Brittany Dufort is here to walk us through the process step by step, telling us why, what, and how to set it up.
Issue No 10
As we face challenges and accumulate failures, it can be easy (especially in the dark winter season) to become negative, both to ourselves and to others. Chriztian Steinmeier shares his technique for combating this mentality, by collecting his successes and speaking positively.
In the U.S., 74% of elementary girls are interested in STEM. By the end of high school, less than 1% plan on pursuing a CS career. Sydney Cole shares her experience helping establish a junior high girls robotics club, and its incredible results, illustrating the impact that STEM role models and the removal of obstacles can have.
Issue No 9
Manually building a package to share your snazzy code with the Umbraco community can be a major pain. Thankfully, Tom is here in time for the holidays to show us how to automate the package process using grunt-umbraco-package.
The Skrift Team interviews LUX* Resorts & Hotels' online development manager Fuji Kusaka about what its like being an Umbraco developer in the Indian Ocean nation of Mauritius.
Issue No 8
Kyle shows us how to make a custom property value converter, which makes it easy to implement the values from a custom property editor in the razor with strongly typed models without having to manually parse the JSON. It's easier than sacrificing a chicken and ten times more effective!
Tim runs us through some of the dos and don'ts when it comes to upgrading Umbraco sites. He offers advice on common gotchas and pitfall, advice on when to upgrade versus when to scrap and rebuild, and resources from others who've been there, done that.
Issue No 7
Jeffrey takes a deep look at the User section in Umbraco, offering a detailed proposal on an overhaul to improve its security features and usability.
Lotte puts forward the case of using HTML Helpers when using strongly typed models in Umbraco, explaining why the extra keystrokes involved are a worthwhile investment.
Issue No 6
Many Umbracians don't work in agencies, and instead are part of companies where software isn't directly making the money. As such the team is often small, even just one person toiling all alone. Kevin teaches us how to survive as a lone Umbraco wolf.
You've mastered how to code in Umbraco, creating complex websites with an easy-to-use back office experience. But do you know how to sell them? Theo dives into the strategy behind selling Umbraco to clients, from one business to another.