you

Competitive analysis — What to do before you commit to your next great business idea

Planning a new online business? Conduct a competitive analysis to understand your market, beat your rivals, and position your brand for success.








you

Is your idea worth doing?

Have you ever been asked to get creative? Or told to think outside the box? If so, you might have had one of two reactions (or maybe a combination of the two):

  1. Hooray! No restrictions. Let’s go! 
  2. Yikes! The possibilities are endless. Where do I start?

Regardless of how you might react, it’s crucial to keep the original ask in mind — not “get creative,” but the reason you were charged with getting creative or thinking outside of the box in the first place. Losing sight of the goal or falling into the trap of thinking that a strategic approach isn’t actually “creative” are the fastest ways to the land of no progress and stifled creativity. 

I think the best ideas come out of a harmonious combination of strategic and creative thinking. I’m not the only one; product designers often have a foundations-first approach to their work where they consider a baseline strategy before jumping into high-fidelity mock-ups. Strategists leverage innovation workshops to both strategically and creatively problem solve. And developers weigh cost and functionality tradeoffs when designing and building reproducible and deployable systems.

Problem solving, creative thinking, and focus are universal components of work-life – and life-life. Leveraging a tool to help you do all three isn’t a cop out, it's a way to help you get to the fun stuff (the ideas worth doing) faster. 

One tool that can help you confidently pursue your idea is an Impact and Feasibility Matrix, which will help you focus and narrow in. Your focus will keep you on track, and narrowing in on what ideas are worth doing will illuminate the way forward. Let’s dive in… 

Focus

Step one is keeping your goal in mind. To do so, revisit these questions often:

  • How does this help solve the problem?
  • How does this contribute to an ideal outcome?

Narrow In

Step two is identifying which creative idea is worth pursuing. One way I like to narrow in and confidently move forward is by plotting ideas on an Impact + Feasibility matrix

Impact is:

  • Reach. What percentage of your audience or stakeholders will be impacted by your idea?
  • Relevance. Does your idea target your key audience? 
  • Longevity. How long will your idea impact your team? 

Feasibility is:

  • Costs. What are your hard costs? This includes both the time investment and monetary investment. 
  • Ease. How easy is your idea to execute? Is this something you can tackle on your own? Will you need to outsource your idea to a partner or vendor? 

The answers to all of these will be unique to your role, the problem you are trying to solve, and your organization. That said, somewhere between impact and feasibility, usually in the upper right quadrant of the matrix, is your sweet spot. This is true regardless of role, problem, or organization. Ideas in the sweet spot are usually worth doing. They reach a relevant audience for your targeted time frame, they are achievable, and within budget.  

Your impact and feasibility matrix will be unique to each problem you are trying to solve. Let’s take a look at some real examples. 

Examples

Problem: Help a newly distributed team settle in to working remotely. 

In the spring of 2020, many organizations (Viget included), were charged with supporting newly distributed teams. Throughout that year, we focused on surprising our team in new ways (think care packages containing branded sweatpants), removing barriers to communication, and improving access to resources (we implemented People Team office hours which we still keep to this day). We did send everyone their favorite candy and had local folks help deliver monitors to their teammates. We still don’t have Viget branded dog swag – maybe one day. 

Problem: Help team members get to know each other during weekly company-wide meetings. 

Each week, we host a company-wide all hands meeting. It’s a tradition we’ve kept since we were founded in 1999. The meeting has evolved over the years and so has our strategy for connection. This is a matrix we revisit often, some ideas we tweak and try again and others like requiring cameras-on or implementing a roll call isn’t something we would consider doing. 

To Sum It Up

The next time you find yourself spinning your wheels, or better yet, the next time you're tasked with thinking outside the box, focus first and plot your ideas on the impact/feasibility matrix. Doing so will help keep you on track and quickly narrow in on which ideas are worth pursuing. 




you

How Generative AI Can Add Human Delight to Your Virtual Event

We just celebrated 24 years of Viget. That’s two dozen years! This year, our Spring TTT in celebration of “Viget24” was a virtual extravaganza. We’ve put on a lot of virtual events over the years. Some with really strong themes and swag bags; some that focus on simple, meaningful time together; and others that let us enjoy learning something new as a team. Regardless of the rest of the experience, a key component of all of our virtual events is joyachieved often through intentional levity. We think it’s important to laugh together! We see laughter as a way to expedite connection, and connection leads to rapport which makes us better at collaborating — and in turn leads to more quality products for our clients. 

Experimenting and iterating is a critical way we try to continually get delight right. We’re pretty pleased with one of our experiments from Viget24 that we called “Lovely Spring Day”.

A Lovely Spring Day

As we were brainstorming for this TTT, we thought about how to throw some joyful levity pizzazz into the pieces of our virtual events puzzle that have become pretty standard. How do we add lots of delight without adding lots of time to the action-packed schedule? We zeroed in on the virtual backgrounds we’ve been creating for every event — they add a layer of specialness. Of place. This isn’t any old virtual meeting. This is a TTT! 

A small collection of past event-specific virtual backgrounds

Another key consideration for our team is figuring out creative ways to tie in inspiration from our industry and our work. AI has been an obvious contender —  we’ve discussed it and tied it in to some extent for the past several TTTs. But this time, we wanted to see how we could use AI for delight — marrying it with virtual backgrounds felt obvious. And so, a ”Lovely Spring Day” was born. 

The TL;DR is that we generated custom virtual backgrounds for every Viget employee that encapsulates their “ideal spring day.” We then played a 15-minute guessing game where people tried to guess who the background “belonged to.” Then, people had access to the full folder of AI-generated virtual backgrounds to look through. Vigets could then choose the background that spoke to them most and set it as their background. 

Read on for more on how we put this together!

Pre-Event Survey

To support all of our TTTs, we send out thoughtful pre-event logistics surveys 2-3 weeks before the big day. The survey lets us know where folks are joining from (where can we send their activity + snack packages?) and gives folks a chance to provide input on how the People Team can help folks enjoy and be present for TTT. This time, we also snuck in three questions, just “for giggles.”

  • In one sentence, describe your ideal spring day.
  • List three things that spark joy.
  • What color do you think suits you best?

We did not share why we asked these questions. Sneaky, sneaky! When it’s low-key like this, the element of surprise is often a quick way to level up the delight.

Asking for a Friend

With rich data in hand about what makes people happy in spring, we were ready to generate the backgrounds. I was stoked! I’ve been experimenting with ChatGPT for some time, so it was fun to be able to use the DALL-E 3 side of OpenAI’s GPT-4 model

Who knew Prompt Engineering would be part of my role as a recruiter-who-helps-support-TTT-planning? I played around with a couple different prompts to generate these background images. Ultimately, my goal was to create backgrounds that were meaningfully different from one another but still felt good (i.e., something you might feasibly want to set as your virtual background and nothing freakily AI, like uncanny valley hands).

Here are the prompts I landed on that got me to our set of virtual backgrounds:

  • Please generate an image (dimensions of a virtual meeting background) that encapsulates the vibe of a day with [ BLANK ].
  • Please generate an image (dimensions of a virtual meeting background) that features [ BLANK ].

In the blanks, I wrote the things people included in their surveys. Those blanks were filled with everything ranging from dogs, cats, and friends to beverages, specific temperatures, yard games, carbohydrates, hammocks and more! Sometimes, I’d include a detail I knew about that person myself, even if it wasn’t in their survey. Yes, I occasionally editorialized for both clarity and whimsy! This was for delight purposes, but also helped serve my goal of having the backgrounds be “meaningfully different from one another.” It’s amazing how many people’s ideal spring day is as simple as having 1) moderate temperatures and 2) no pollen!

I generated 55 images. Throughout the process, DALL-E nailed it. I only needed to regenerate 2 or 3 images with clarifiers (and only because they included AI-specific outliers like disembodied hands). Huzzah!

Here are some of my favorites, along with their prompts in the captions. Can you guess who they belong to?

Please generate an image (dimensions of a virtual meeting background) that features an outdoor brewery/taproom in the appalachian mountains. There's a playground with kids in the very distance. In the foreground, frisbee, soccer, volleyball, etc. with friends and family.
Please generate an image that encapsulates the vibe of a day ending with an outdoor dinner with lights near an outdoor shower. There should be some hiking boots scattered about.
Please generate an image that features a nice hot bath after a cold but sunny day, with a beautiful mug of green tea and a box of takeout that looks really good. The calendar shows April 25th.
Please generate an image that encapsulates the vibe of sitting outside in a nice purple adirondack chair with buc-ees paraphernalia around.
Please generate an image that encapsulates the vibe of a sunny, 65 degree day with a slight breeze at the ballpark watching a game. The image should feature cats, baseball, and art.
Please generate an image that encapsulates the vibe of being outside in a canoe along with carbs, bad jokes, and games (video OR board games).
Please generate an image that features endless mountain bike trails, a blue bike with a cup of coffee in the cupholder, and roaming cats.

IRL

Ok, so for the actual activity we had the images ready to go in a private Google Folder. I took twelve of the images and put them in a very simple deck. I shared my screen, introduced the activity, and invited people to guess who they think each image belonged to in Slack. It was so fun seeing people throw out guesses and then narrow in with any verbal hints I gave!

Each image took about a minute. Then, we shared access to the Google Folder, gave folks a couple minutes to choose a background that called to them (their own image or someone else’s), and set it as their background. It felt like a magical moment to witness people finding and resonating with their own image or delighting in the ridiculousness of their coworkers’. We saved about 5 minutes for this piece, which felt right.

The whole Lovely Spring Day activity took just over 15 minutes! It was a perfect way to transition from a long meal break into our next grouping of content. And, we got to see the different backgrounds throughout the rest of the meeting.

Oh, the humanity!

I think this activity was successful for a couple of reasons.

1. People laughed! 

Color commentary in the #ttt Slack channel

2. People felt seen. Some of these backgrounds were incredibly on point. Some of that was due to key folks having well-documented interests and a Slack-Famous Dog. 

Laura Sweltz has a famous love of books and an incredibly iconic beagle named Phoebe.

But some of it was due to the People Team knowing about our people — our coworkers — beyond the sentence they wrote in. This uniquely human involvement helped me call an audible as needed and tweak prompts slightly to make the backgrounds feel even more relatable.

Steven, Carolyn, and Laura Sweltz felt seen.

3. We could commiserate about our eventual AI overlords. (Did you notice that I say “please” in my prompts?!) Listen, Viget has plenty of practical, healthily skeptical people who are dubious about AI. GenAI is not always a fun, lighthearted thing. But using it in a fun, lighthearted way to do something it’s really good at was a nice use case and thought-provoking exposure even for people who are not into it.

4. We could see where we all align, and where we differ! It was amazing to see just how many people love picnics, covet their caffeine, and appreciate a bike ride. It was also cool to see some unique folks who simply crave a rainy spring day, or some beloved Buc-ee’s. What a rich tapestry of individuals — literally!




you

Self-Host Your Identity Provider with authentik

Authentication! What a hassle!

Evans, where's that SAML from Earth!?

You start off simple enough — username / password authentication in your application. Then, well, someone mentions that traditional passwords are a security vulnerability, so maybe we should use one-time passwords. That inevitably leads to discussions about magic links and multi-factor authentication. Next thing you know, one dev is in a corner, rocking back and forth and muttering something about SAML, and another dev just left — walked out the door, never to be seen again.

Well, not to worry, we've got just the tool for you.

authentik is an open-source identity provider written in Python. I'm going to focus on the self-hosted version, but they also offer a paid enterprise plan if you want some extra support.

Self-Hosting

The philosophy of open-source tools and self-hosting is a big, complex topic for another post. In the world of SaaS products, you likely don't need to self-host. I quite like hosted identity providers like Clerk and Auth0. They're good and appropriate solutions for different types of apps and companies.

But I just love to self-host tools. Tinkering and toying with Docker, reverse proxies, and sometimes even server hardware is a lot of fun to me. It does add complexity in some (or many) places, but a little extra complexity means you've got a little more control over your tooling.

Self-hosting also allows me to disconnect from the Internet and still be able to work on features and enhancements in my projects. As long as I've already installed the relevant packages or pulled the right Docker images, I can keep working if I'm in a place where I can't (or don't want to) connect to the Internet. This is a small thing, but really important to me.

authentik makes it really easy to self-host your application. Right out of the gates, they provide a Docker Compose example and a Kubernetes example. Getting authentik running took me about 10 minutes using the Docker Compose example. Most of that was reading. This can make authentik a great tool during the proof-of-concept or beta phase of your application, getting authentication out of the way so you can focus on building the cool and unique features of your app.

Integrations

One of the great things that authentik has waiting for you is a bunch of documentation on integrating with a lot of tools you probably already use. These integrations range from other self-hosted apps like Outline (another favorite of mine) to cloud providers like AWS and even platforms like WordPress.

authentik's integration docs show you how to set up authentik for your existing providers and applications, so no need to dig around for the right configuration. Sure, if you're building your own application, you don't have the luxury of a README (until you write one, of course!), but don't worry — all the documentation you'll need for your choice of providers is at your fingertips. Personally, I'm fan of the OAuth2 provider for most my pet projects, but I also find the Proxy Provider to be a really great tool if you want to secure a static site that doesn't have any means of authenticating users.

Customization

This is a pretty nice default login screen, but maybe a mountain road isn't your vibe. You can change this background, add your own company logo, and add your own CSS. Just add your static files to your authentik deployment and modify to your heart's content.

But actually, that's not even the cool part of the customization to me.

authentik has the concepts of Flows and Stages that are used to determine what steps a user should take to log in, log out, and more. First, you define Stages that represent a single step of authentication — something like requiring a user to enter their username or a password. There's a whole lot to choose from. Once you've set up your Stages, you'll create a Flow, stringing those Stages together until you have a complete process to authenticate, register, or even delete a user. Flows can be imported and exported as .yaml files, making it easy to keep your Flows and Stages synced between different environments.

authentik comes with a pretty reasonable set of default Flows and Stages. If you're setting authentik up just to try it out, you might not need to add anything. They do have a couple of example Flows to get you started, though.

Flows and Stages can feel pretty intimidating. On your dev server, I'd recommend basically deleting all of the default Flows and Stages and building up new ones from scratch. It's the easiest way to learn how these pieces fit together. If you accidentally break something in dev, you can always just drop your database and spin up a fresh install.

Conclusion

authentik is an awesome tool and I've only scratched the surface of what it can do for you. As a self-hosted identity provider, it gives you a lot of control on how your services are authenticated. It's great for local development and beyond, and it has a lot of ready-to-go integrations for services you might already use.

If you're interested in further reading, I'd definitely recommend checking out the docs on Outposts and External Sources.

Hopefully this has given you some inspiration to spin up a local instance of authentik and try it out! It will definitely simplify your authentication needs.

Here's your SAML, Mr. Horrible Gelatinous Blob!




you

Fluid Breakout Layout with CSS Grid

So you're building a site and you've got a nice containing element around your content — but wait! Not all the content is the same width! That nice, neat tube of content is not so much a straight tube as a pile of different sized bricks.

It's a common layout problem, but how do we account for these 'breakout' widths in the layout? There's a couple ways we could go about it:

  • Encapsulate each component and set widths and margins. (Works fine if you have full control but can be fiddly).
  • Force the component out of the containing element with negative margins. (Works fine if there's only a little deviation).
  • Use CSS Grid to build a fluid universal grid! (????).

That last one is what we'll be exploring: how to use CSS Grid definitions to allow for consistent component sizing across all breakpoints — no media queries required!

This is a technique that's based on Ryan Mulligan's 'Layout Breakouts' which is based on Josh Comeau's 'Full-Bleed Layout' and is especially useful when creating a fully fluid layout. This also pairs well with fluid type techniques resulting in layouts that TRULY scale with the viewport size.

Setting Up the Grid #

Here's the layout we're going to be building:

If we break apart the design, we've got 4 possible widths for components:

  • Full-Width
  • Feature
  • Popout
  • Content

We've also go some special side-anchored elements that 'stick' to one of the screen edges but also honor the other element widths. We'll come back to these later on.

Now that we've categorized the widths, lets start drawing column edges and defining areas:

  1. Left margin / Full-Width
  2. Left Feature
  3. Left Popout
  4. Center Content
  5. Right Popout
  6. Right Feature
  7. Right margin / Full-Width

That's a lot of columns!

Yet on mobile, we only need 3 columns, just left margin (1), center content (4), and right margin (7). We want some of these intermediate columns to disappear!

Fortunately, CSS Grid gives us some powerful tools to create the measurements needed—yes, even for the disappearing columns! We won't even have to write any media queries for this one. We can make just ONE definition that works at all sizes.

We'll store our measurements as CSS variables for easy use later on:

:root {
  --gap: clamp(1rem, 4vw, 2rem);
  --full: minmax(var(--gap), 1fr);
  --feature: minmax(0, 12vw);
  --popout: minmax(0, 2rem);
  --content: min(clamp(30rem, 52vw, 60rem), 100% - var(--gap) * 2);
}

Let's break these down.

--gap: clamp(1rem, 4vw, 2rem);

gap will be our side margin, allowing it to stretch up to 2rem at max, with a preferred width of 4vw, but never going below 1rem.

--full: minmax(var(--gap), 1fr);

We're going to use the minmax() function for these next three measurements to say: "If there's room in the CSS Grid, you can expand out to here but then don't go smaller than the minimum".

The full area is going to expand from left edge to right edge (remember we have to split the areas to allow for the other columns) and will double as our margin, so we'll pop in our gap value as our minimum and tell it that it can expand up to 1fr, or basically as much space as the rest of the grid will allow it.

--feature: minmax(0, 12vw);
--popout: minmax(0, 2rem);

The feature and popout both have a minimum value of 0. This is what powers our disappearing columns! As other areas of the grid expand, these will collapse when there's no longer any room for them, essentially taking up no space.

--content: min(clamp(30rem, 52vw, 60rem), 100% - var(--gap) * 2);

And then finally, our content area is our most complex measurement. It's saying, take the minimum value of either:

  1. A fluid measurement that can be 30-60rem (with the help of clamp())
  2. OR full width minus our gap value (but doubled for both left and right values).

These measurements can be changed to fit the needs of your layout. Specifically the feature and popout maximum values and the first content value. For example, our use of vw for the feature means it will fluidly expand out as the screen grows whereas the popout will remain only 2rem larger on each side than the content column.

Now we can assemble these measurements in a CSS grid column definition. We'll name our column edges with [custom-ident] and use the -start and -end endings to help make assignment easier later on.

.grid-breakout {
  display: grid;
  grid-template-columns: [full-start] var(--full)
    [feature-start] var(--feature)
    [popout-start] var(--popout)
    [content-start] var(--content) [content-end]
    var(--popout) [popout-end]
    var(--feature) [feature-end]
    var(--full) [full-end];
}

The definition is complex, but if we visualize the start and end lines of our columns as well as the measurements, it looks like this:

You can see we have our middle content column, our disappearing feature and popout columns, and finally our full columns that double as our margin.

To finish off the definitions, we need to create column assignments. Because we named our columns with custom identifiers and specified the start and stop lines, we don't have to fiddle with grid numbers. We can assign them directly like:

.full {
  grid-column: full;
}

.feature {
  grid-column: feature;
}

.popout {
  grid-column: popout;
}

.content {
  grid-column: content;
}

And if we want to create a default assignment for elements in the grid (which is especially useful if you don't have full control over the markup) you can create one like this:

.grid-breakout > * {
  grid-column: content;
}

Now you can attach any of these classes to components in your grid and have them snap to the width you want.

Watch the screen capture below as the grid scales down. You can see the feature and popout columns disappearing as everything transitions to a mobile width, and then expands back up.

You can see a demo of the base setup here:

Nesting Grids #

Now let's go back to our header element. You can see that though the header is full-width, we actually want its inner content to honor the feature width.

Fortunately, because of the flexible nature of this grid definition, we can repeat the definition and then continue using the same column names on the inner structure. Because our grid only goes one layer deep we're free to replicate as much as we need or even break out and use different layout methods for the component interiors.

<main class="grid-breakout">
  <section class="full grid-breakout">
     <div class="feature">
        <!-- inner content -->
     </div>
  </section>
</main>

You can see it in action here:

Anchoring Left and Right #

Remember those side-anchored components? This is where we need to get a little tricky to line everything up.

Going back to our diagram, we want an element to span MOST of the way across the page, but end at the opposite feature edge. We can reuse our column definitions for the first part.

.feature-left {
  grid-template-columns: full-start / feature-end;
}

Great! That gives us exactly what we want... except for when we try to nest the grids.

Our original grid definition assumes that our content, while different widths, is centered in the window. We have to rethink our inner grid definition a little bit.

We're shaving off one end of the grid, specifically a full definition. So two things need to happen:

  1. We need to adjust our content width to now account for only having one gap.
  2. We need our new grid end to stop at the edge of the feature column.

We can achieve this with a new measurement and a new grid definition:

:root {
  /* previous definitions... */
  --content-inset: min(clamp(30rem, 52vw, 60rem), 100% - var(--gap));
}

.grid-breakout-feature-left {
  display: grid;
  grid-template-columns:
    [full-start] var(--full)
    [feature-start] var(--feature)
    [popout-start] var(--popout)
    [content-start] var(--content-inset) [content-end]
    var(--popout) [popout-end]
    var(--feature) [feature-end full-end];
}

We've replaced the inner content measurement with the new value and combined the feature and full ends with the final line of the template column definition:

[feature-end full-end]

This will allow redefinition inside the new side-anchored component. You will notice that you'll need to supply your own padding for the inner as they no longer have that final margin to prevent it from reaching the new grid edge.

<main class="grid-breakout">
  <section class="feature-left grid-breakout-feature-left">
    <div class="feature">
      <!-- inner content -->
    </div>
  </section>
</main>

If you want to reverse this to be anchored to the right, you can flip the grid definition, moving the double start to the top like:

.grid-breakout-feature-right {
  display: grid;
  grid-template-columns:
    [full-start feature-start] var(--feature)
    [popout-start] var(--popout)
    [content-start] var(--content-inset) [content-end]
    var(--popout) [popout-end]
    var(--feature) [feature-end]
    var(--full) [full-end];
}

You can see a demo of the side-anchored component here:

But What About Tailwind! #

We love using Tailwind at Viget as a Team Accelerator™, and it's straightforward to implement these measurements and definitions in your Tailwind config.

/** @type {import('tailwindcss').Config} */
import plugin from "tailwindcss/plugin";

export default {
  // the rest of your other definitions
  theme: {
    // the rest of your theme definitions
    extend: {
      gridColumn: {
        content: "content",
        popout: "popout",
        feature: "feature",
        full: "full",
        "feature-left": "full-start / feature-end",
      },
      gridTemplateColumns: {
        breakout: `[full-start] var(--full)
            [feature-start] var(--feature)
            [popout-start] var(--popout)
            [content-start] var(--content) [content-end]
            var(--popout) [popout-end]
            var(--feature) [feature-end]
            var(--full) [full-end]`,
        "breakout-feature-left": `[full-start] var(--full)
            [feature-start] var(--feature)
            [popout-start] var(--popout)
            [content-start] var(--content-inset) [content-end]
            var(--popout) [popout-end]
            var(--feature) [feature-end full-end];`,
      },
    },
  },
  plugins: [
    plugin(function ({ addBase }) {
      addBase({
        ":root": {
          // grid sizing variables
          "--gap": "clamp(1rem, 4vw, 2rem)",
          "--full": "minmax(var(--gap), 1fr)",
          "--content": "min(clamp(30rem, 52vw, 60rem), 100% - var(--gap) * 2)",
          "--popout": "minmax(0, 2rem)",
          "--feature": "minmax(0, 12vw)",
          "--content-inset": "min(clamp(30rem, 52vw, 60rem), 100% - var(--gap))",
        },
        // force unspecified content blocks into 'content' grid
        ".grid-cols-breakout > *": {
          "grid-column": "content",
        },
      });
    }),
  ],
};

Everything is effectively the same, but you'll call your grid classes like grid-cols-breakout to set the grid, and your columns like col-feature per Tailwind naming conventions.

Forwards to a Fluid Future! #

And there you have it! A media-query-less fluid breakout layout defined with CSS grid!

While the setup is more complicated at first glance, I've found that the more fluid your layout rules are, the FEWER rules you have to write overall! Especially when paired with fluid type, dynamic viewport units, and all the amazing features that are landing in CSS — it's truly a fluid future!



  • Code
  • Front-end Engineering

you

Your Website Transition Checklist

When onboarding a new partner to redesign your website, take over maintenance, or rescue a project going sideways, you'll need to carefully transition access to a variety of critical systems and tools. And if you're navigating a contentious relationship or onboarding into a new organization without documentation, you might not know where to start.

Does that sound scary? It doesn't have to be. 

Here's a comprehensive checklist to ensure that you retain full control of your website and avoid any potential hiccups during a transition.

  1. Codebase access. Ensure you have ownership or administrative access to the existing codebase or code repository. Popular platforms like Bitbucket and GitHub are often used for this purpose.
  2. Content Management System access. Ensure you have the highest level of access (super admin) for your Content Management System (CMS). 
  3. Hosting information and access. Gather all hosting information and ensure you have access to the account that owns the workspace. This is crucial to prevent unauthorized updates or changes to your site. For hosted platforms, you’ll need Owner access, not just Administrator access. 
  4. Additional services information and access. This might include your domain registrar (e.g., GoDaddy), DNS settings, email services, your content delivery network (CDN), if applicable. This could also include any third-party services that are integrated with your website. Common examples might include: Algolia, Hubspot, Stripe, etc. 
  5. Analytics and Data. Make sure you have access to all analytics tools used to monitor your website traffic and user behavior. This might include both old Google Universal Analytics data and current GA4 data, Google Tag Manager, or any other analytics services used on your website (e.g., Mixpanel, Hotjar, Adobe Analytics, etc.). 
  6. Backups. Secure a full backup of your site, including the file system. Plugins like UpdraftPlus for WordPress can be very helpful for this process. Also, ensure you have backups of shared files, such as those in Google Drive, Box, or Dropbox.
  7. Design Assets. Retain copies of raw design assets (e.g., Figma files). We always transfer ownership of Figma files to our client teams to ensure they have the ability to extend the design system in the future.
  8. Licenses. Make sure you own any required licenses, such as font/photo licenses, CMS licenses, API keys, or premium plugins. We insist that our client teams purchase any required licenses/subscriptions using their corporate information so we’re never blocking access to those critical resources.

Transitioning website partners can be a smooth process with foresight and preparation. While ideally there would never be gaps in access to these critical resources and services, by following this checklist, you can ensure that you’re not missing anything when offboarding old partners or getting your bearings with a new team or organization. 

Do you need help figuring out how this checklist might apply to your situation? Be in touch, and we’d be happy to discuss your current status and suggest next steps for your website transition. 




you

Use Behavioral Analytics Data to Make Your Site More Effective

Behavioral analytics are a great way to get a sense of what users are or are not doing on your website or app. While behavioral analytics may not provide insights into why users are behaving a certain way, this method does provide a quick and cost-effective way to see what your users are currently doing at scale. Knowing how your users are engaging with your website or product can help you make informed decisions that have a positive impact on engagement and conversions.

Here at Viget, we use behavioral analytics data for a number of use cases:

  1. Our client has a specific question about a certain aspect of their website or app (e.g., a specific user flow or content type) and wants to learn more about how and when users are engaging. 
  2. We are redesigning a client’s website and want to get a sense of where the current experience is excelling or falling short.
  3. We are conducting an annual analysis to help clients keep an eye on potential areas of growth or stagnation. 
  4. We are reviewing behavioral changes on a site or app after launching a new experience or feature to assess performance.

But what kind of insights can you expect to find from behavioral analytics data? 

It ultimately depends on the website or app, the users, and the kinds of questions you are asking, but let’s go through a few different examples of what kind of information you can gain from behavioral analytics tools.


Who is using your website or product?

Understanding who is using your website can provide helpful context on your user base and potentially unlock growth with new user groups you may have been unaware of. To investigate this, we may look at geographic location, language, device type, and any other demographic information that may be available. Sometimes this kind of data provides what I like to call descriptive information—information that often doesn’t feel immediately actionable but can become more useful relative to other data points. This could come from comparing your data to last year, to industry standards, to other content on the website, or it might come from comparing it to an assumption that an individual or organization holds. 

Here are some examples of findings that shed light on who was using the website or product:

32% of sessions were from users outside the United States. 
  Through a previously conducted survey, we were aware that some users were looking for content that was not specific to the United States. This metric helped us better gauge the size of that need.
97% of Canadian sessions interacted with the website in English, with only 3% of Canadian sessions using French.
  We were unsure to what degree French content needed to be prioritized and this metric helped provide a sense of scale.
15% of searches were conducted on a mobile device. 
  Although 15% may seem low, this metric was actually higher than expected because there were known issues with the mobile search experience. This demonstrated that even though the mobile experience was harder to use than the desktop version, users were still inclined to use it, further illustrating the importance of improving the mobile experience. 

How do users get to your website or product?

Knowing how users navigate to your website or product can highlight what traffic sources are particularly effective in driving conversions, but it can also help to provide important context on user expectations or goals. To understand this, we look at both the source/medium that brought them to the website as well as the first page they viewed. 

For example, users might:

  • Come from google and land on a blog article
  • Go directly to your home page
  • Come from an email referral to a donation page 
  • Learn about you from ChatGPT and land on your About page

From there, we might look at engagement rate, conversion rates, or other metrics to get a sense of what these users are doing and whether anything stands out as particularly effective or ineffective. 

Here are some examples of acquisition insights that informed our understanding and approach:

Only 10% of sessions started on the home page, with most users starting much deeper in the site on content-specific pages.
  Because only a small portion of users entered on the homepage, we could not solely rely on homepage messaging to orient users to the site. This highlighted the importance of providing sufficient context on any page of the site to ensure that users navigate to their desired content, regardless of what page they land on.
Although the paid ads were effective in driving users to the website, those sessions had abnormally high bounce rates, with one traffic source having a 95% bounce rate. 
  This indicated a potential mismatch between what users expected based on the ad, and what was actually on the page.
Organic search brought in a large amount of new traffic to their site through the blog pages and while users engaged with the blog content, they were not engaging with the CTAs. 
  Because these new users were potentially learning about this organization for the first time, the donation CTAs were likely not the best fit, and we recommended shifting the CTAs on those pages to focus more on learning about the organization.

What content or features do users engage with?

Here is where we start to get to the meat of what your users are actually doing on your website or product. Knowing what users are doing and what they’re not using can help to establish priorities and inform decisions. You might be surprised to learn that users are actually engaging with specific features or content quite a bit, but others are barely used. If the content or feature is surprisingly popular, then we likely don’t want to outright remove it and may instead consider iterating or leveraging that offering more. If users aren’t engaging with content or a feature, it may be worth considering the effort to maintain and iterate on that offering. 

Here are some examples of engagement insights that helped us identify opportunities related to content or features:

Less than 1% of users were engaging with a particular feature. 
  These same users were showing high engagement with other features though, indicating that users either didn’t know this feature existed, knew the feature existed but didn’t understand the value add, or the feature was simply not something they needed.
For a highly engaged audience, there wasn’t a standout page that most users visited. These users viewed a variety of pages across multiple sessions, typically viewing highly specific content pages. 
  This indicated that instead of relying on a single page to drive conversions, getting users to the specific details they needed was likely a better approach in getting users to try the product.
Nearly 84K sessions engaged with a particular content type. 
  While this was lower than other content types, it was much higher than expected. It was largely organic traffic and the sessions were highly engaged. We recommended doing some additional research to better understand the potential opportunities with that type of content.

What is the user journey or path?

Another major area of investigation is the sequence of steps users take when viewing content or completing certain actions. This could be perusing content on the website, going through a signup funnel, or checking out to make a purchase. 

This helps us identify:

  • the actual paths that lead to conversions (which is not always the path we assume it is) 
  • areas where users drop off at key points in the funnel
  • moments where users have to “turn around” in the journey, because the path laid before them doesn’t align with their needs 

This information can help you build towards a frictionless experience that encourages users to sign up, complete a purchase, or find the resources they need.

Here are some examples of user journey insights that helped us understand where there were existing points of friction for users:

While the CTA to demo the product appealed to users and they were quick to engage with it, it often resulted in users backtracking to the previous page. 
  We hypothesized that users were eager to get to the demo, but were moving too quickly and missed important context, resulting in them having to go back to a previous page. We were able to confirm this with user testing and recommended transitioning some of that context to the CTA page.

What “turning around” in the user journey can look like:

A select few products had abnormally high drop off rates, but at different stages depending on the product. 
  For one product, there was an abnormally high cart-abandonment rate, and for another product, there was an abnormally low add-to-cart rate. Based on these findings we recommended looking further into what is impacting a user’s purchasing decisions.

What dropoff can look like at different stages:

The Ecosystem at Large

Some clients have a larger ecosystem of products or services, and it’s important to look at how users engage with and navigate across the ecosystem. This might include subdomains for a shop, a marketing site versus the product site, help documentation, etc. By looking at the larger ecosystem we can reveal important connections that are missing or connections that could be strengthened.

Here are some examples of insights that demonstrated a need for changes in those ecosystem connections:

For sessions where a user was looking for a particular kind of resource, 95% of the searches were done exclusively in a single subdomain or microsite.
  Through user interviews we were able to confirm that this siloed experience was intentional for experienced users but unintentional for less-experienced users, who were largely unaware of the other parts of the ecosystem that were available. We recommended making changes to improve discoverability of those other areas.
For sessions where a user navigated between two domains, 75% of sessions navigated to the other domain to view documentation specifically.
  Yet, depending on the product, sometimes the documentation was hosted on a subdomain specific to documentation and sometimes it was available on the product domain. This created an inconsistent experience where for some products, users could find what they needed on the product website, but for other products, users were sent to an entirely different subdomain. We recommended creating a more consistent experience for users, where regardless of the product, the documentation would be found in the same location. 

Here at Viget, there are a wide variety of insights we may discover for any one project through behavioral analytics. These insights can help to identify new user groups, help to prioritize content or features maintenance and updates, or bring to attention moments in the user journey that are causing friction. These opportunities can help you bring in new users and retain your existing users, by providing an experience that aligns with their needs, whether that is finding resources, getting involved in a community, or making a purchase.  

If you’re interested in making your website or application more effective for your users by leveraging the power of behavioral analytics data, we’d love to hear from you




you

5 Ways to Make Your Next In-Person All-Hands Event Worthwhile

In recent years, as distributed work has become the norm, all-hands trips have become more commonplace. Even companies that have always done them now see their importance in a new light. They are expensive and demanding for everyone involved, but when they’re done well they can be incredibly impactful. Are you bringing your team together and feeling the stress of getting it right? Designing the time together takes strategic thinking, logistics planning, and the confidence to ask everyone to contribute to the event’s success.

Last week, we came together to connect, celebrate each other, and look forward to a bright future in our quarterly all-hands event we call Third Third Thursday or TTT. It was our first in-person all-hands event since May 2023. At Viget, we actively build our culture together. The responsibility doesn’t fall on just a few individuals' shoulders. Our events are successful because individuals show up, speak up, listen, and honor the limited time we have together in-person. This is evident in the chats over breakfast pastries, the all-in approach to competitions breakout sessions, and the peer talks and discussions throughout our events. This connection and camaraderie doesn’t just happen, we work hard to make it happen. 

Reflecting on last week’s event (and 7 years of other events), I want to share these five key planning tips to help you craft a successful event. 

Leverage your physical space to help achieve your event goals. This fall we had a smaller number of attendees and we wanted to encourage discussion throughout the event so we set up the room in large U shape to foster conversation. We also made the most of our exterior space, which featured a fire escape staircase, by hosting an egg drop competition. 

Over communicate, especially around when team members can expect breaks and when they can expect to be fed. As the event lead, I share my phone number multiple times ahead of and throughout the event. We also make sure to communicate in dedicated channels, including an event Slack channel for all attendees, a behind-the-scenes Slack channel for presenters only, and an event website. We share important key information like bus schedules and flight confirmations via email. In advance of the big day, we shared this slide with our team to both inform and inspire. 

Leave room for unstructured time and connection. Over the years we learned that some of the best discussions and a-ha moments come from chats over a meal or a snack during the “unplanned” parts of the event. Now we plan ahead for these, leaving ample time for unplanned, impromptu a-has. We think about airport Uber rides, charter bus rides, morning runs, evening board games, or late-night drinks and look for ways to grease the wheels of serendipity. This was especially important for us this fall since it had been so long since the last time we all gathered together

Look for ways to celebrate what is unique to your company. One pretty fantastic thing that comes with a quarter century in business is the community we’ve built along the way. We make a point to keep up with previous Viget employees who we proudly call our alumni. We love our alumni and enjoy recognizing their contributions to Viget. One way we do so is with annual picnics, which we host when the most current Viget employees are in town for an event. These picnics are often a great mix of reconnections and networking.

Find ways to surprise and delight. Think big and small. For example, this fall we put colored pencils and butcher block paper out during our meeting time. Our autumnal decor included blue(ish) and orange pumpkins (Viget colors!). We made a subtle callout to an internal project by serving french fries as our afternoon snack. And we surprised our team with Unreal treats for their bus rides home. The treats served as dessert and a means for us to introduce our next in-person event, our spring TTT, aka Viget25. 

Some companies advocate for all-hand retreats to be social and relaxing, but not “productive.” They tout a meeting-free event. At Viget, we see the meeting time as crucial because that is when peers share knowledge, reflect on their recent work, showcase client impact, and highlight new ideas and personal growth. Similarly, our co-founders reflect on Viget’s performance and share thoughts on the upcoming business direction. The meeting sparks genuine inspiration and creates a time for us to remember what brought us to Viget in the first place – to build world class tech in support of our clients. 

On the heels of a successful gathering, it’s time to start planning the next one. For our next event we’ll head to the Allegheny Mountains where we’ll leverage a unique and memorable venue, offer plenty of unstructured time for connection (with each other and nature), loop in alumni where appropriate, plan inspiring meeting content, enjoy many meals and treats together, and of course find ways to surprise and delight. 

Work-related travel isn't for everyone, but if you know someone who appreciates the idea of dedicated time to connect with and celebrate their peers, we’re hiring. And to all the culture champions and event planners out there, good luck with your next all-hands! 




you

Top 8 Essential Marketing Trends You Need

The world of marketing is constantly shifting and adapting, making it essential for today’s marketers to stay in the know of the latest trends.  It’s important to have knowledge of digital marketing strengths like mastering SEO or using social media tools correctly- but that alone isn’t enough to make your business stand out to customers […]




you

How to Keep Your Digital Design Studio Running Smoothly?

If you want your design studio to succeed in a crowded market, it has to run smoothly and effectively.




you

6 Tactics for Promoting Your Local Business

As a small business proprietor, you must establish connections with local patrons, integrate into the community, and differentiate yourself from your rivals. However, understanding how to market your business locally requires clever marketing techniques. Given the limited pool of potential customers in your vicinity, prioritizing local marketing endeavors is essential, especially when considering that your […]




you

A Guide for Writing Brochures and Uploading Them to Your Website

Even though digital types of content have taken over the marketing landscape, brochures still hold an enduring relevance as a powerful communication device. These portable companions, often overlooked in the modern age, hold the potential to inform, inspire, and captivate, which is why they’re an indispensable asset for any business. Exploring the Evolving Role of […]




you

How to Grow a Forest in Your Backyard

By Shubhendu Sharma TED Forests don’t have to be far-flung nature reserves, isolated from human life. Instead, we can grow them right where we are — even in cities. Eco-entrepreneur and TED Fellow Shubhendu Sharma grows ultra-dense, biodiverse mini-forests of … Continue reading




you

Best WordPress Plugins for Boosting your Email Marketing Efforts

Being a modern business owner, you can’t overlook the effectiveness of an email marketing, especially when it comes to generating quality leads and higher ROI. It is one of the most easy ways to reach a large number of targeted web audience. It doesn’t matter how big or small your marketing campaign is, email marketing … Continue reading Best WordPress Plugins for Boosting your Email Marketing Efforts

The post Best WordPress Plugins for Boosting your Email Marketing Efforts appeared first on Design Shard.




you

Spring Cleaning: Five Ways to Improve Your Ecommerce Site

Spring is on the horizon, so you know what that means. Spring-cleaning time is coming soon too. This yearly refresh is more than just a reminder to dust your home; it’s also a chance to revitalize your ecommerce business, attract new customers and delight loyal shoppers. Here are five easy ways to improve your ecommerce … Continue reading Spring Cleaning: Five Ways to Improve Your Ecommerce Site

The post Spring Cleaning: Five Ways to Improve Your Ecommerce Site appeared first on Design Shard.




you

Can Your Logo Maker Do This: A Real Designer vs A Logo Maker

  Every business needs a logo and all major ones will view it as a key aspect of their brand building. A logo is the first impression a customer will get of your brand, so it has to look clean, professional and tell a story about who you are and what you do. Which is … Continue reading Can Your Logo Maker Do This: A Real Designer vs A Logo Maker

The post Can Your Logo Maker Do This: A Real Designer vs A Logo Maker appeared first on Design Shard.




you

How to Alert Your Customers of a Price Drop in WooCommerce

Are you looking for a way to alert your customers about a discounted price in your WooCommerce store? Price drop campaigns show popup notifications when your brand reduces the price of a product. Sending your visitors alerts allows you to improve engagement and maximize sales on your website. In this tutorial, we’re going to show […]

The post How to Alert Your Customers of a Price Drop in WooCommerce first appeared on IsItWP - Free WordPress Theme Detector.




you

7 Best Divi Builder Alternatives for Your Website (Compared)

Are you looking for Divi alternatives to help build your website? Divi is one of the most popular WordPress builders, but some users may find Divi’s interface to have a bit of a learning curve, making it harder for beginners to catch on. There are other builders that are more user-friendly and designed for anyone […]

The post 7 Best Divi Builder Alternatives for Your Website (Compared) first appeared on IsItWP - Free WordPress Theme Detector.




you

Turn your RSS feed into a shortcode

Last week I wrote how to “Use WordPress to print a RSS feed for Eventbrite attendees“. It was pretty popular, but then I found myself in a place that was more annoying. Trying to incorporate that into a blog post or page. Without having to download a plugin that will allow PHP to be executed […]

The post Turn your RSS feed into a shortcode appeared first on WPCult.




you

SEO Tricks and Tips for Your Blog Content

Source: https://www.pexels.com/photo/woman-laptop-office-friends-4960323/  People start blogs for different reasons, personal and professional. Improving writing skills, educating, writing reviews, and journey documentation are some of them. Every blogger understands the importance of blogging and the SEO benefits it offers. However, not everyone knows how to optimize their blog posts and make them friendlier for search engines.  Most […]

The post SEO Tricks and Tips for Your Blog Content appeared first on WPCult.




you

WordPress: Provides a Great Framework for Your Website

It doesn’t really matter in what kind of business you are; it is human behavior to have an urge of standing out of the crowd, of its kind. The same story goes with online business and for an online venture, you need a blog or website of your own. The website you tend to own […]

The post WordPress: Provides a Great Framework for Your Website appeared first on WPCult.




you

Grow Your Real Estate Business With Pinterest

Pinterest is a social media website where users share their favorite images from around the web with their followers. Rather than using words to express themselves, Pinterest users use images and photographs instead. Like other forms of social media, Pinterest offers a unique opportunity for real estate agents looking to grow their businesses. With so […]

The post Grow Your Real Estate Business With Pinterest appeared first on WPCult.




you

Rethinking The Role Of Your UX Teams And Move Beyond Firefighting

Many UX professionals often find themselves working alone, and usually face more projects impacting user experience than they can handle. In this article, Paul Boag explains how UX teams can be transformed into a significant driver of customer-centric innovation within organizations.




you

How To Defend Your Design Process

Ever felt pressure to speed up your design process? Here’s how to address unrealistic expectations and foster a shared understanding with stakeholders, ensuring everyone is aligned on the path to a successful delivery. Part of [Smart Interface Design Patterns](https://smart-interface-design-patterns.com) by yours truly.




you

Build A Static RSS Reader To Fight Your Inner FOMO

RSS is a classic technology that fetches content from websites and feeds it to anyone who subscribes to it with a URL. It’s based on XML, and we can use it to consume the feeds in our own apps. Karin Hendrikse demonstrates how to do exactly that with a static site you can use as your personal RSS reader.




you

Using Multimodal AI Models For Your Applications (Part 3)

In this third part of the series, you are looking at two models that handle all three modalities — text, images or videos, and audio — without needing a second model for text-to-speech or speech recognition.




you

Why Optimizing Your Lighthouse Score Is Not Enough For A Fast Website

Feeling good with your Lighthouse score of 100%? You should! But you should also know that you’re only looking at part of the performance picture. Learn how Lighthouse scores are measured differently than other tools, the impact that has on measuring performance metrics, and why you need real-user monitoring for a complete picture.




you

13 Year Old is “America’s Top Young Scientist”

Maanasa Mendu, a Ohio 9th grader, developed an inexpensive energy-producing device inspired by systems observed in plants, winning the 2016 Discovery Education 3M Young Scientist Challenge. Maanasa hopes her invention will help to provide energy to the world in an … Continue reading




you

Streamline Your Design Workflow with Adobe’s Creative Cloud Libraries and New AI-Powered Tools

Thanks to the AI-powered Adobe Creative Cloud Libraries, creatives can now simplify workflows and design processes in seconds!




you

Increase Your Home’s Energy Efficiency

By Paul Kazlov While being environmentally-conscious might not always be the prettiest or flashiest way to improve your home, eco-friendly upgrades are one of the best investments you can make. After all, you can save huge money on your energy … Continue reading




you

See you on Bluesky

Bluesky, maybe best pitched as a place for those who liked Twitter and…




you

I Love You Mom - Rest in Peace


I Love You Mom - Rest in Peace, originally uploaded by !efatima.




you

Lost without you Mummy


Lost without you Mummy, originally uploaded by !efatima.




you

Mojave National Preserve – Find Your Voice

By The National Parks Conservation Association In 2016, to celebrate the National Park Service centennial, 150 people experienced the wondrously dark night skies of Mojave National Preserve. Since 2008, these bi-annual star parties — courtesy of NPCA, Mojave National Preserve, … Continue reading




you

Marketing Automation for B2B: Strategies to Boost Your Sales

Marketing automation has been a buzzword for years, and maybe you’ve tried it with some (or no) success, or maybe you’re just now ready to give it a shot. Either way, this article is for you. Marketing automation tools can be a game-changer for marketing and sales teams. Still, they need proper implementation to get […]

The post Marketing Automation for B2B: Strategies to Boost Your Sales appeared first on 3.7 Designs.




you

Easily Organize Your Photos with Post Order

There are many reasons why you may want to organize WordPress photos, or change the order of your photography store’s products. You can attention to older products, or increase conversions by showcasing popular items more prominently. Unfortunately, by default, changing the published date of each product is the only way to adjust the order of products in […]




you

How to Sell Videos Online Using the Sell Media Plugin on Your WordPress Site

Are you one of the 55% of people globally who watch online videos every single day? Video has become an incredibly popular format for consuming content, and it’s now as ubiquitous as images within our social media news feeds and timelines. Despite this, the ability to sell videos online is difficult than many other forms of static media – […]




you

5 Tips to Increase Checkout Conversions on Your Site

Arguably the most important part of your website is your store’s checkout page. This is where potential customers become buyers, but if your checkout page isn’t optimized correctly, they could end up abandoning their cart and spending their money elsewhere. While increasing checkout conversions is a worthy goal, it may seem like a lost cause because of a phenomenon […]




you

How to Set Up Test Purchases Using PayPal on Your Sell Media Powered Website

Setting up a trouble-free payment process can be nerve-wracking. It must be completely secure and fully tested before going live in order to give the customer zero problems and total confidence in their purchase. Any issues with the checkout process, and it could end up with a potential refund to the customer, or no sale at all. Sell Media incorporates a testing […]




you

How to Use the Right Keywords For Increased Sales on Your Photography Website

While there are a number of ways visitors can potentially find your photography, search is the most vital method. If your website doesn’t offer a keyword search function, visitors may head to other sites that do – and the drop in traffic could hammer your sales figures. Just as search is crucial for finding websites, having a way […]




you

Photo Pricing Guide: 7 Tips to Increase Your Sales

Many photographers jump the gun when it comes to pricing photos for sale online. Psychology plays a underestimated role when your customers are ready to buy, so it’s important to have an effective pricing strategy. Don’t blow pricing strategies under the rug. Your prices determine the success or failure of your business. If you apply the […]




you

How to Sync Your Photos in Lightroom With WordPress

There’s no doubt that we’re spoilt for choice when it comes to powerful photo editing software – for instance, Adobe Photoshop Lightroom provides astounding functionality at a relatively cheap price. The same can be said for creating websites, especially when using WordPress. However, combining them effectively as one solution for managing your photos is just […]




you

How To Run WordPress on a Subdomain to Power Your E-Commerce Online Store

Setting up your site on platforms such as Squarespace, Wix, and Weebly have their benefits – but they’re not necessarily set up for selling your work online. To do that, you’ll have to turn to a more powerful combination of tools. Setting up a subdomain to run an online store may seem like reinventing the […]




you

When to Redesign Your Website

The first impression that you leave on your audience today is based almost entirely on your website. Because your website plays an oversized role in the success of your business, it’s vital that you to take it seriously. Just like any real “brick and mortar” business, your website requires regular maintenance (like sweeping the floor and […]