Subtopic: Design & CSS

Company and industry news, featured projects, open source code, tech tips, and more.

Website Builder Service Or Custom Website?

Michael Argentini Avatar
Michael ArgentiniFriday, May 9, 2025

There is a world full of "build your own website" services that allow just about anyone to stand up a new website in a few hours. Even organizations can leverage the simplicity offered by these services to set up an online store, community, and more. Here are a few examples of why people typically choose these services.

  • Quick setup and time to market
  • Reasonable up-front pricing
  • Design templates
  • Integrated services, like shopping carts and email
  • Managed hosting

Sounds great! But as with everything in life, there are tradeoffs.

  • Quick setup and time to market means giving up control over things like your domain name, web app design, email provider, and more
  • Reasonable up-front pricing usually means a tiered pricing model with add-on pricing for essential features like a custom domain name, additional bandwidth, and increased storage
  • Design templates mean your web app will largely look like a lot of other web apps that use the service, and may not match your vision, and custom designs can require service-specific web development
  • Integrated services also means no choice over the provider of the service, which could be missing features you need
  • Managed hosting means scaling (growing) is significantly more expensive, network bandwidth caps can apply, and true customer and data ownership are dubious

Regardless, these services can be a great way for individuals and small organizations to bootstrap their web presence, and in many cases, you can happily continue to use the service for years.

But there are also long-term lock-in issues that can be more serious, potentially impeding your growth, for example:

  • You may contractually own your data, but extracting it to migrate to another platform is usually not practical or possible at all; they don't want you to leave
  • When the service changes (features, pricing, etc.) or if the service is purchased by another entity, you usually have no choice other than rolling with it, for better or worse
  • If the service shuts down, you're going to struggle to replace everything they offered to your visitors in a relatively short period of time
  • Most successful businesses will outgrow these services anyway, so you could be missing out on long-term savings

Custom Websites

If the tradeoffs are too much to swallow, fear not! You can also go with a custom web app tailored specifically to your needs and budget. It can match your vision without compromises and scaling can be managed more easily as your business or traffic grow.

So how do you get started? With a builder service you first have to find one with the price and features you need, and then create an account and dig into their control panel to start configuring your website. Whereas for a custom website the first step is to find a web development partner you can rely on for advice and technical expertise, like Fynydd. Your partner can help gather your ideas, come up with a plan, and build your web app, all within your budget and timeline. They're usually experts in both new web app projects and migrations from other platforms and services. Most importantly, they fill the knowledge gap left by the "build your own website" service.

A web development partner will choose technologies that have a proven security track record. One way we do this is by consulting the CVE database; a publicly funded global resource for tracking common vulnerabilities and exposures. For example, a CVE search quickly reveals that WordPress has historically been a security nightmare.

Your development partner will help you with a design that matches your vision, a hosting service that meets your needs and budget, a security review, a backup plan and disaster recovery strategy, and more. When the time comes to grow your platform, they can help with that too. And throughout the journey you maintain full control over your brand, your website, your data, and your customers.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Animate CSS Auto Height Without Javascript

Michael Argentini Avatar
Michael ArgentiniSunday, August 4, 2024

Web developers rejoice! There's an easy way to animate the height of an HTML element even if the height is dynamic, determined by its content, with only CSS. This is typically used for navigation menus and the like, and now it's much easier to code and maintain.

The strategy is to actually animate the grid-template-rows not the height. For example, take the following HTML markup:

<div class="menu">
    <div class="inner-wrapper">
        <p>Here is some content.</p>
        <p>Here is some content.</p>
        <p>Here is some content.</p>
    </div>
</div>

The CSS for this markup would be:

.menu {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 100ms;
}

.menu.active {
    grid-template-rows: 1fr;
}

.menu .inner-wrapper {
    overflow: hidden;
}

Initially the outer div will be hidden since it has no overflow and the grid template rows are zero. When you add active to the outer div element's class list, the browser will animate the transition from zero row height to 1fr, which essentially means the height it needs for its content to render.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Open Source: Sfumato CSS

Michael Argentini Avatar
Michael ArgentiniThursday, July 25, 2024

Sfumato is a lean, modern, utility-based CSS framework generation CLI tool. It is compatible with the Tailwind CSS class naming structure and has the following additional features:

  • Cross-platform multi-threaded native code; much faster than Tailwind's javascript code
  • System-wide CLI utility; one install works for all your projects
  • Embedded Dart Sass gives you all the benefits of using Sass/SCSS as part of your workflow
  • Additional utility classes for adaptive and scalable layouts
  • System theme matching as well as classes that include “light”, “dark”, and “auto"
  • Integrated form element styles (class compatible with Tailwind forms plugin)
  • Supports redirected input for use in automation workflows

Visit the repository to see how you can install this tool to begin using it right away.

How To Use

Create one simple sfumato.yml file (manually or using the Sfumato "init" command) for your web-based app or website project and run the Sfumato CLI "watch" command. It will watch your project files as you work, keeping track of your markup changes, and will transpile your SCSS files into custom, tiny CSS files based only on the Sfumato features you use.

Use the following command for more information on Sfumato commands and options:

sfumato help

Installation

1. Install Microsoft .NET

Sfumato requires that you already have the .NET 9.0 runtime installed, which you can get at https://dotnet.microsoft.com/en-us/download.

2. Install Sfumato

Run the following command in your command line interface (e.g. cmd, PowerShell, Terminal, bash, etc.):

dotnet tool install --global fynydd.sfumato

Later you can update Sfumato with the following command:

dotnet tool update --global fynydd.sfumato

Uninstall

If you need to completely uninstall Sfumato, use the command below:

dotnet tool uninstall --global fynydd.sfumato
Screenshots

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Good User Interface Design Is Always Subjective

Michael Argentini Avatar
Michael ArgentiniSaturday, October 7, 2023

The iOS-ification of macOS

Michael Argentini Avatar
Michael ArgentiniTuesday, March 7, 2023

Apple's decision to make macOS look and feel more like iOS is aspirational, certainly. If users could seamlessly switch between operating systems and retain muscle memory it would be a big win. It's no wonder that Apple decided to do this with macOS 13 Ventura.

But in practice, Apple's zeal for consolidation has created some real problems for users. In many cases it feels like one step forward and two steps back. I can see how iOS power users may welcome most of the changes to macOS, but that position smacks of Stockholm Syndrome to me.

One of the best examples of this is the redesigned System Settings, which is a mess. I've given it months to “grow on me” and it has… like a fungal infection. The settings are (dis)organized into a single column of top-level categories in a seemingly random order. Devices running macOS have wide screens, so restricting the top-level categories to a single narrow column is an artificial limitation. And it can’t be remedied by resizing the System Settings window because only its height can be changed.

And the organization? macOS has a much deeper and more broad collection of settings than iOS. So as difficult as specific iOS settings can be to find on an iPhone, it’s near impossible on a Mac. And making it worse is the fact that some settings have been organized out of existence, spread out into disparate, counterintuitive categories. Want to tune all your power and sleep settings? You may have to explore a dozen settings categories to find them when they could have been put into an “Energy” category or something similar. Luckily there is a search feature. Without it I’m sure users would be surrounding the Apple Campus with pitchforks and torches.

Also part of this convergence initiative is the Apple decision to make physical keyboards work more like the iOS virtual keyboard, which changes contextually. The difference is that the iOS keyboard changes in appearance so you can infer what's expected. This means that, for example, sometimes you can use the delete key to remove characters to the right of your cursor, and sometimes you can't. It's like an infuriating game. And now when you press and hold an alphanumeric key it no longer repeats, in favor of a popup with extended characters (e.g. foreign characters with accents and ligatures). I suppose that’s handy for people who write in a foreign language. But you would assume that it would be an option, not a change to the original default key behavior. Your keyboard isn’t broken. Apple made it better YOU'RE WELCOME.

© 2025, Fynydd LLC / King of Prussia, Pennsylvania; United States / +1 855-439-6933

By using this website you accept our privacy policy. Choose the browser data you consent to allow:

Only Required
Accept and Close