The same holds true for those of us who are currently employed in design and development. Having worked on the web for about three years at this point, I’ve seen the typical wax and wane of concepts, strategies, and systems. Every day we as developers and designers get into a routine pattern, a brand-new concept or technology emerges to shake things up and completely alter our planet.
How we got below
I built my first website in the mid-’90s. Design and development on the web back then was a free-for-all, with few established norms. For any layout aside from a single column, we used table elements, often with empty cells containing a single pixel spacer GIF to add empty space. We styled text with numerous font tags, nesting the tags every time we wanted to vary the font style. And we had only three or four typefaces to choose from: Arial, Courier, or Times New Roman. When Verdana and Georgia came out in 1996, we rejoiced because our options had nearly doubled. The only safe colors to choose from were the 216 “web safe” colors known to work across platforms. The few interactive elements (like contact forms, guest books, and counters) were mostly powered by CGI scripts (predominantly written in Perl at the time). Achieving any kind of unique look involved a pile of hacks all the way down. Interaction was often limited to specific pages in a site.
The beginning of website standards
At the turn of the century, a new cycle started. Crufty code littered with table layouts and font tags waned, and a push for web standards waxed. Newer technologies like CSS got more widespread adoption by browsers makers, developers, and designers. This shift toward standards didn’t happen accidentally or overnight. It took active engagement between the W3C and browser vendors and heavy evangelism from folks like the Web Standards Project to build standards. A List Apart and books like Designing with Web Standards by Jeffrey Zeldman played key roles in teaching developers and designers why standards are important, how to implement them, and how to sell them to their organizations. And approaches like progressive enhancement introduced the idea that content should be available for all browsers—with additional enhancements available for more advanced browsers. Meanwhile, sites like the CSS Zen Garden showcased just how powerful and versatile CSS can be when combined with a solid semantic HTML structure.
Server-side language like PHP, Java, and.NET took Perl as the primary back-end computers, and the cgi-bin was tossed in the garbage bin. With these better server-side instruments came the first time of online applications, starting with content-management systems ( especially in the blogging space with tools like Blogger, Grey Matter, Movable Type, and WordPress ). AJAX opened the door to asynchronous interaction between the front end and back end in the mid-2000s. Suddenly, pages could update their content without needing to reload. Developers created a crop of reliable client-side interactions across browsers with wildly varying standards support, such as Prototype, YUI, and jQuery. Techniques like image replacement enable the use of fonts by skilled designers and developers. And technologies like Flash made it possible to add animations, games, and even more interactivity.
These new technologies, standards, and techniques reinvigorated the industry in many ways. As designers and developers explored more diversified styles and layouts, web design flourished. However, we still relied heavily on hacks. When it came to basic layout and text styling, early CSS was a significant improvement over table-based layouts, but its limitations at the time meant that designers and developers still rely heavily on images for complex shapes ( such as rounded or angled corners ) and tiled backgrounds (among other hacks ) for the appearance of full-length columns. All kinds of nested floats or absolute positioning were required for complicated layouts ( or both ). The big five typefaces were initially influenced by flash and image replacement, but both hacks caused accessibility and performance issues. And JavaScript libraries made it simple for anyone to add a dash of interaction to pages, even at the expense of double, even quadrupling, the download size of basic websites.
The web as software platform
The balance between the front end and the back end continued to improve, leading to the development of the current web application era. Between expanded server-side programming languages ( which kept growing to include Ruby, Python, Go, and others ) and newer front-end tools like React, Vue, and Angular, we could build fully capable software on the web. Alongside these tools came others, including collaborative version control, build automation, and shared package libraries. What was once primarily a place for linked documents evolved into a world with endless possibilities.
At the same time, mobile devices became more capable, and they gave us internet access in our pockets. Mobile applications and responsive design opened up opportunities for fresh interactions anytime, anywhere.
This fusion of potent mobile devices and potent development tools contributed to the growth of social media and other centralized tools for people to use and interact with. As it became easier and more common to connect with others directly on Twitter, Facebook, and even Slack, the desire for hosted personal sites waned. Social media made connections on a global scale, with both positive and negative outcomes.
Want a much more in-depth account of how we came to this, along with some other suggestions for improvement? ” Of Time and the Web” was written by Jeremy Keith. Or check out the” Web Design History Timeline” at the Web Design Museum. A fun tour through” Internet Artifacts” is also provided by Neal Agarwal.
Where we are now
In the last couple of years, it’s felt like we’ve begun to reach another major inflection point. As social-media platforms fracture and wane, there’s been a growing interest in owning our own content again. There are many different ways to create websites, from the tried-and-true classic of hosting plain HTML files to static site generators to content management systems of all kinds. We lose essential infrastructure for discovery and connection because of social media’s fracture, which also comes with a price. Webmentions, RSS, ActivityPub, and other tools of the IndieWeb can help with this, but they’re still relatively underimplemented and hard to use for the less nerdy. We can create incredible personal websites and update them frequently, but without discovery and connection, it can feel as though we should be yelling into the void.
Browser support for CSS, JavaScript, and other standards like web components has accelerated, especially through efforts like Interop. In a fraction of the time that they once did, new technologies receive universal support. When I first learn about a new feature, I frequently discover that its coverage is already over 80 % when I check the browser support. Browser support is frequently the only obstacle to using newer techniques today, rather than the time it takes to train and adopt new techniques.
Today, with a few commands and a couple of lines of code, we can prototype almost any idea. With all the tools we currently have, it is simpler than ever to launch a new venture. However, as we upgrade and maintain these frameworks, we eventually pay the upfront costs that these frameworks may initially save in terms of our technical debt.
Adopting new standards can sometimes take longer if we rely on third-party frameworks because we might have to wait for those frameworks to adopt them. These frameworks—which used to let us adopt new techniques sooner—have now become hindrances instead. These same frameworks frequently come with performance costs, making users have to wait for scripts to load before interacting with or reading pages. And when scripts fail ( whether through poor code, network issues, or other environmental factors ), there’s often no alternative, leaving users with blank or broken pages.
Where do we go from here?
Today’s hacks help to shape tomorrow’s standards. And there’s nothing inherently wrong with embracing hacks —for now—to move the present forward. Problems only arise when we refuse to acknowledge that they are hacks or when we choose not to replace them. What can we do to create the web’s future that we desire?
Build for the long haul. Optimize for performance, for accessibility, and for the user. Weigh the costs of those developer-friendly tools. How do they affect everything else besides making your job a little easier today? What’s the cost to users? To future developers? To standards adoption? The convenience may be worthwhile in some circumstances. It’s occasionally just a hack that you’ve gotten used to. And occasionally, it prevents you from pursuing better options.
Start from standards. Standards change over time, but browsers have done a remarkably good job of staying current with outdated standards. The same isn’t always true of third-party frameworks. Even the most advanced HTML from the 1990s still function flawlessly today. Even after a few years, the same can’t be said about websites created with frameworks.
Design with care. Whether your craft is code, pixels, or processes, consider the impacts of each decision. Many modern tools have the convenience of making the necessary decisions that have led to its design and not always considering the effects those decisions can have. Use the time saved by modern tools to think more carefully and make decisions with care rather than rushing to “move fast and break things.”
Always be learning. If you’re always learning, you’re also growing. Sometimes it may be hard to pinpoint what’s worth learning and what’s just today’s hack. Even if you were to concentrate solely on learning standards, you might end up focusing on something that won’t matter next year. ( Remember XHTML? ) However, ongoing learning opens up new neural connections, and the techniques you learn in one day may be useful for guiding future experiments.
Play, experiment, and be weird! This web that we’ve built is the ultimate experiment. Despite being the single largest human endeavor in history, each of us has the ability to make our own money out of it. Be courageous and try new things. Build a playground for ideas. In your own bizarre science lab, perform bizarre experiments. Start your own small business. There has never been a more empowering place to be creative, take risks, and explore what we’re capable of.
Share and amplify. As you experiment, play, and learn, share what’s worked for you. Write on your own website, post on whichever social media site you prefer, or shout it from a TikTok. Write something for A List Apart! But take the time to amplify others too: find new voices, learn from them, and share what they’ve taught you.
Go forth and make
As designers and developers for the web ( and beyond ), we’re responsible for building the future every day, whether that may take the shape of personal websites, social media tools used by billions, or anything in between. Let’s imbue our values into the things that we create, and let’s make the web a better place for everyone. Create something that you are uniquely qualified to make. Then share it, make it better, make it again, or make something new. Learn. Make. Share. Grow. Rinse and repeat. Every time you think that you’ve mastered the web, everything will change.







