Many of the projects that our UI Development team works on are content, marketing, and organizational websites that make use of a Content Management System (CMS), particularly Craft or WordPress. Craft and WordPress are incredibly powerful and offer ... more
The new View Transitions API is one of the most exciting updates for the web in years and is beginning to land in stable browsers. It introduces the ability to do smooth page transitions on the web – similar to a mobile app experience – in a simple and ... more
Astro 3.0 was released recently and it includes some great improvements, but the most exciting feature by far is its support for the View Transitions API (MDN)! In this article, I’ll briefly introduce Astro and View Transitions, and walk through a demo ... more
This article is part three of a series unpacking how we define and implement motion at Viget. The other articles in the Building Motion for the Web series are part one: In the 'Zone' and part two: Creating a Motion ‘Volume’ Scale. In the previous article, ... more
On large JavaScript or TypeScript codebases, imports can accumulate and, over time, become unwieldy. It isn’t unheard of to find a module with 15 or 20+ lines of import statements at the top of the file. These lines must appear before the contents of ... more
In a previous article, I addressed the wide range of costs associated with website projects. In this follow-up, I’ll go deeper into the individual factors we look for to determine, specifically, what makes a website more or less complex to design and ... more
I have witnessed many changes over the past 20-plus years that I've been building websites. One thing I have learned is to be cautious before jumping onto a bandwagon. This behavior has had both positive and negative results, but has ultimately proven ... more
At the beginning of our summer internship, our cross-functional team of seven was tasked to research, design, and build a product in just nine weeks. We started by brainstorming solutions to problems we face often in our daily lives, and one was common ... more
This article is part two of a series unpacking how motion is defined and implemented at Viget. The other articles in the Building Motion for the Web series are part one: In the 'Zone' and part three: Recipes for Design Success. In our previous article, ... more
Coming into Viget as an incoming sophomore, my goal was to be a sponge. Through my college organization, Hack4Impact, I had the opportunity to work on the front-end of web applications – utilizing software and languages like React, Tailwind, and JavaScript. ... more
Accessibility overlays are scripts that can be added to a website to allow a user to change parts and pieces of that site such as text color, letter spacing, and color contrast. There are a lot of accessibility overlay companies out there and each offers ... more
As a developer, your coding workflow likely includes creating a pull request (PR) on GitHub and tagging another developer on your team to perform a code review. If, like me, you’re a developer with anxiety, the code review process can be one you dread. ... more
About two and half years ago, React gave us our first glance into React Server Components. The original goal was to reduce the network waterfall – the series of network calls created by making several server requests sequentially. There have been a lot ... more
I don't believe there is a right way to do software; I think teams can be effective (or ineffective!) in a lot of different ways using all sorts of methodologies and technologies. But one hill upon which I will die is this: referencing tickets in commit ... more
What we're making # A themed file upload input field with a unique button label and icon leveraging only HTML and CSS. Intro # As the frontend landscape has matured over the years, frontend developers have some newfound freedom to stray away from reaching ... more
Modern software rarely gets built in a pristine, idyllic context wherein engineers have the luxury to construct every piece of every system by hand, character by character, line by line, program by program, until a flawless Da Vincian masterpiece emerges. ... more
A unified development toolkit for the web Rome Newer JS frameworks advancing modern ideas like partial hydration, islands architecture, minimizing JS sent to browsers, edge rendering, and more Fresh Qwik SvelteKit SolidJS End-to-end type-safe APIs powered ... more
Engineers tend to have a strong desire to automate all everything. Whether it’s worthwhile to do so or not depends on how frequent and time-consuming a task is. To the surprise of no one, there’s an XKCD for that. How code is formatted is one of the ... more
Introduction Good documentation is critical for maintainable software projects. It facilitates onboarding new engineers and makes ongoing contributions easier. A project with poor documentation will suffer over the long term inevitably becoming harder ... more
What A test coverage percentage is a feature of the automated testing tools we use. There are differences between language environments, but they all work approximately the same way. The coverage tool runs the test suite and counts which lines of code ... more
At Viget, we’ve invested heavily in TypeScript. It’s been a great boon to our team’s ability to ship reliable, maintainable software. In time we’ve developed some opinions about how best to employ this technology for our clients. This post assumes a ... more
Considering putting a Next.js site on GitHub Pages? It can be done, provided Next.js's static export meets your needs (see the docs for caveats). Netlify or Vercel are better choices for most people — like GitHub Pages they have free options, and unlike ... more
One of the things I love about the JavaScript ecosystem is the amount of options we have to solve basically every problem. We get to pick exactly what tools we use and there usually isn't one right way to solve a problem. However, that does mean you ... more
I started at Viget on the Front-End Development team, a few months before we reorganized to the Platform Development team and UI Development team. I moved to the UI Development team because I am passionate about the UI side of development and I love ... more
How are Components Typed in Svelte? First, some background. In Svelte, components exist as standalone files that declare an interface of props, slots, and events. When using TypeScript, it’s easy to type the first of these three without any special Svelte ... more
What is no-code? No-code is a development method that allows users to design and build a CMS, website, or app from scratch without the use of code. This usually comes in the form of drag-and-drop functionality that allows the user to select from a set ... more
The problem at hand At the beginning of 2021, I was part of the Viget team tasked with creating a website that displayed availabilities/appointments for COVID vaccines in Massachusetts. As a whole, this project was very complex. In this article, I will ... more
Here at Viget, Docker has become an indispensable tool for local development. We build and maintain a ton of apps across the team, running different stacks and versions, and being able to package up a working dev environment makes it much, much easier ... more
I recently had a fun problem to solve. We needed an embedable web app that a client could either pull from a CDN or install via NPM. Originally, we reached for the tried and true React, but size concerns pushed us in another direction. We needed up using ... more
Projects hosted on GitHub can implement continuous integration (CI), continuous deployment (CD), and continuous delivery (the other CD) with GitHub Actions workflows. This works in public and private repos . (There are tiered limits for storage and time.) ... more