MoreRSS

site iconMatt FantinelModify

Web Developer in Brazil.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Matt Fantinel

The Quest for a Good Arc Replacement

2025-08-03 08:00:00

If anything looks wrong, read on the site!

I’ve been a happy Arc user since 2022. It’s well-designed, significantly improved how I use a web browser, works well, and has (had) a team of passionate and talented people behind it that frequently pumped out some nice, weird, fun ideas. However, lately I’ve been trying to find a good replacement for it and got reminded of how hard it is to find a good option for a browser.

Why do I need a replacement?

Well, Arc has gathered a considerably big user base, and more importantly, a user base that loves the product. However, it’s always been free. You know what that means, right? It means the company operates at a loss, surviving off of VC money. And they have to pay that debt off eventually.

Personally, I’d be very happy to pay a subscription for Arc, and I know a lot of people would do so too. It’d be a far healthier business model, even if it meant the product would evolve more slowly. But you see, once VC money comes in, everything scales considerably. A loyal paying user base is not enough; you need to shoot for the stars or you fail.

Most tech companies go through this exact same route; and when they need to start paying off that debt, they enshittify; their product becomes a shadow of what it once was because it now needs to squeeze as much money as possible at every opportunity.

With Arc though, that never happened. They did some experiments with “Arc Max”, the AI offerings inside the browser, but the browser itself never got enshittified. Thankfully, I guess, it only got put aside. Arc is now no longer under active development, and is instead just receiving Chromium updates and security fixes.

My theory is that they figured out that they’d never be able to monetize a niche web browser as much as they needed, and just gave up on the product. And started working on Dia, an “AI-first browser” (that’s pretty much dead on arrival because everything it does is already being done by the big ones).

So, while Arc is still as good as it ever was, I know it’s not gonna be long before it’s sunsetted and stops getting Chromium updates. I’m trying to get a bit ahead and find a replacement to dip my toes in before I’m forced to make the jump.

Most options are just a no-no

Yes, I am especially picky with the software I use. But hey, I make a living on web browsers (and a lot of my hobbies also take place inside one), so I’m allowed to care this much about it, mkay?

When we’re talking web browsers, we have three “families”, defined by the three major browser engines available on the market:

  • Chromium-based browsers, that use the same engine as Chrome. Lots of options here, with main examples being Arc, Edge, Brave, Vivaldi, Opera;
  • Firefox-based browsers, which surprisingly use the Firefox engine. Not a lot of variety, but Zen is the standout;
  • Webkit-based browsers, which use the same engine as Safari. Besides Safari, I only know about Orion using this engine (on the Mac);
  • 🎗️ Reminder: on iOS and iPadOS, every browser uses the Safari engine, because Apple doesn’t want you to be happy (they don’t allow alternative browser engines in their App Store).

As a web developer and just someone that likes the web, I have a strong dislike for the WebKit engine, so using it willingly is just not for me.

Firefox has a really cool mission in theory (Mozilla sucks as a company though), but has been notoriously slow at adopting new web standards and has been behind even Safari lately (perhaps it has something to do with Mozilla forgetting what a web browser is for?). I love learning new things and implementing them on my work (with Progressive Enhancement, always), so it’d suck to be unable to learn new things because they don’t work on my browser of choice.

[!info] If the browser engine isn’t a dealbreaker for you, Zen browser is aiming to be pretty much a carbon copy of Arc, and it’s open source!

Which leaves me with Chromium-based browsers. Chrome, Edge and Opera are spyware (Edge has some cool features though) and Brave is owned by a bigot; leaving Vivaldi as the only real option in there.

Vivaldi (not the composer)

Vivaldi was founded by the same people who worked in the original Opera browser, back in the 90s. Since Opera was sold and became a shadow of its former self, Vivaldi was created to try and fill in the power-user-shaped gap in the browser space.

It’s Chromium-based, built in Europe, and seems to be very privacy-friendly, with a “make the web better” mission similar to Mozilla. Sadly, it’s not open source, so these claims are not verifiable.

It’s main selling feature is being extremely customizable, both visually and in how you use it.

I had already tried Vivaldi out in the past, but it never stuck the landing for me. I don’t really need extreme customizability, I prefer a thoughtfully designed UX instead. Which is why Arc appealed to me in the first place. But since no other options feel like they’d appeal to that preference, I wanted to figure out if I could either mimic my Arc workflow in Vivaldi or maybe settle for a middle ground that I could adapt to.

I figured I’d start by thinking exactly what I liked about Arc:

  1. It looks good;
  2. The Command palette-thing (cmd+t) flow is wonderful. Opening an empty new tab makes zero sense, lemme use my keyboard and get straight to what I wanna do!
  3. The vertical tabs on the side and being able to swipe between spaces is great to keep tabs from getting out of control.

With that in mind, let’s analyse Vivaldi on three criteria: The Looks, The Clacks, and The Tabs.

Criteria One: The Looks

This is the Achilles’ heel of Vivaldi, in my opinion. It doesn’t look bad, but it’s far from being as good-looking as Arc is. Some of what Arc does is just not doable (since Vivaldi doesn’t use macOS’ native technologies to build its UI), and the focus on customization means a lot of compromises have to be made. That being said, some tweaks here are there made it look kinda good.

I’m using a Catppuccin theme because I like the color palette (it’s the same as this website) and used the sliders in the Theme editor to tweak colors, radii, and spacing a little bit.

Screenshot of the Vivaldi browser. It's a very normal looking browser, with a light pastel theme applied.

Criteria Two: The Clacks

(as in the sound a keyboard makes)

After thinking about it, the command-palette-thing as a replacement for the new tab is Arc’s unsung hero:

Screenshot of Arc's command palette. I typed "Vivaldi" and the command palette is displaying suggestions for the Vivaldi site, searching for Vivaldi, and some matches in my browsing history. My active tab is still visible in the background.

It’s so elegant; it works well, it’s fast, it doesn’t get in your way, it keeps your current context in view, and it’s keyboard-centric. After three years of using it every day I barely paid any mind to it, but trying to use a browser without it was a revelation. I didn’t know how good it was until it was gone.

You wanna know something cool? Vivaldi has it, too! It’s not as elegant visually, but it works just as well! It’s called “Quick Commands”, and by default is accessed with cmd+e (on a Mac).

Screenshot of Vivaldi's command palette. Similar to Arc's, it displays a search suggestion, bookmarks and history entries that match my query. My active tab is also visible in the background.

My muscle memory was using cmd+t (new tab) to open the command palette though, so I remapped it to that shortcut. A small issue was that, by default it opens URLs in the same tab you’re currently in, but hey, Vivaldi has a toggle for everything! A quick look into the Quick Command settings presented me with a beautiful “Open Links in New Tab” checkbox.

Criteria Three: The Tabs

The main thing you notice when you start using Arc: the tabs are on the left! And they’re displayed vertically!

Vivaldi, of course, allows you to do just that. You can keep your tabs on the top, like all the boring kids do; you can put them on the left or right if you’re cool, or you can even put them in the bottom of the window if you’re all about breaking society’s expectations.

Putting them on the left was the first thing I did. Here’s how it looks:

Screenshot of Vivaldi, with tabs on the left. Their look is not very polished.

You immediately notice that while the tabs are now indeed on the left, they don’t look right (hah!). The address bar and bookmarks are still on the top and take up a lot of space, and there’s just… something missing in there. No folders, no spaces, they don’t feel as clickable, I’m not sure how to explain it. It’s not fully collapsible like Arc’s, but you can drag it to make it small enough that it only shows the favicons.

This annoyed me because I couldn’t build an exact replica of my Arc workflow, initially. The lack of spaces so I could properly separate my work and personal tabs was almost enough to make me give up on using it. But I found out about the Tab Stacks.

Tab Stacks (and the portable rabbit holes)

Tab Stacks are available in Chromium and have existed for a while now. It basically allows you to group tabs together manually, assign them a color, and collapse/expand that stack like an accordion. However, in Vivaldi they have a (optional) much better UI. Instead of expanding to the sides, they just expand into a second level of tabs.

Screenshot of Vivaldi's tab bar, showing two levels of tabs.

Surprisingly, this approach aligns much better with how I like to manage my tabs than Arc’s ever did! Very often at work I have to put whatever I’m working on on hold and quickly jump into something else for a few minutes. Being able to just stack relevant tabs together and hide the irrelevant ones makes tab management much less overwhelming.

With Arc, if I had to context switch like this, I’d often get the tabs mixed up (creating a separate space for it meant I lost the important tabs pinned to my general “Work” space). With Tab Stacks, going back to that context is just a click away, and the tabs reappear at the second level of tabs.

Something that makes Tab Stacks even better though: a checkbox in Vivaldi Settings that makes all tabs opened from within other tabs to spawn in a stack. Or, as I’d like to call it, the Portable Rabbit Hole setting.

Let’s say you’re enjoying a short break and reading the latest post of Cool Links on a beautiful website. There are so many links to click on and so many tabs to open, but you need to get back to work in 10 minutes and those tabs will get lost amidst the Jira tickets. Well, with your Portable Rabbit Hole, you no longer have that problem!

All the tabs you’ve opened by clicking on those cool links will be neatly stacked together so you can come back to them later. You can even add some color and a name to that stack if you want.

Screen recording showing the flow of opening links in a new tab and having them all stack together in a single group instead of getting mixed up with other tabs.

So, did I make the move?

Yes… and no.

I’ve been using Vivaldi pretty much daily for about a month now, and using Arc less and less. But I still miss it sometimes. So I’ve had a few days where I “relapsed” and went back to Arc for a bit.

And then something weird happened. The Arc workflow became weird to me again. Something about having bookmarks mixed together with open tabs started feeling weird. The loss of Tab Stacks also felt like a downgrade.

It’s funny how I was so afraid of not being able to get used to a “normal” browser after so much time using Arc, and now I got so used to Vivaldi that Arc became weird again. It’s still nice to use though, and I might use it as my main browser again if I feel like it.

In the end this just makes me feel better that when Arc inevitably dies, I’ll just handle it and everything will be fine. No point in not enjoying it now while I still have it.

Cool Links Vol. 13: July, 2025

2025-07-31 08:00:00

If anything looks wrong, read on the site!

Hi there! This month’s Cool Links are all about the web.

Fun

Draw a Fish Dot Com, by fifteen.games

This is what the web was made for. Just draw a fish. Then watch your creation swim with fishes from all over the world. Beautiful.

Deep Reads

Netstuck, by Mark Pitblado

This article talks a bit about the Netstuck effect, when you feel forced to use a service or platform just because everyone is there, and how that’s different from a monopoly.

As someone with no commercial social media accounts, I relate to this a lot. And even though I can live without a Facebook or Instagram account, I tried not using WhatsApp in Brazil for a couple years and just had to concede at some point, because there’s just no way of getting in contact with anyone (especially businesses) in here without it.

Dev

new Date(“wtf”)

This game tests your knowledge on JavaScript’s Date class. It’s funny because it’s sad.

Don’t animate height!, by Jim Fisher

Neat article in which Jim explains why a seemingly harmless CSS transition property (using height) was spiking up CPU usage. It goes through the thought process of identifying the issue, understanding it, and solving it. (spoiler: animating transform is much cheaper!)

A Friendly Introduction to SVG, by Josh W. Comeau

I know SVGs are amazing, and I’ve done some cool things with them. But I never really knew what I was doing. This fantastic post by Josh Comeau goes over the basics and focuses on SVGs you can create yourself through code, instead of relying on vector editing softwares like Figma or Illustrator.

I haven’t tried these tips in practice yet, but hopefully I’ll have a neat idea I can use them on soon 👀

Tech

(pt-br) Como eu salvo links e preservo conteúdos no mundo pós-Pocket, by Augusto Campos

This article (in Brazilian Portuguese) was a huge inspiration to me in reworking how I save my Cool Links, starting this month. I’m using the Obsidian Web Clipper instead of the custom solution the author had, but the principles are still the same.

Building up a weekly routine to organize things has also been a good change, as I don’t have a lot to do at the end of the month when I’m putting this post together.

Wrapping up

I hope you enjoyed the links this month! Life’s been busy with all the move preppin’, but I’m glad I was still able to grab some links.

I’ve changed how I save the links to make it easier to organize them at the end of the month, and I’m planning to build an archive of all links I’ve posted so far, in a single page. No promises as to when though; my August looks really busy already 😵

Anyway, see you next month!

Quick Review: Skeletá

2025-07-21 20:00:00

Skeletá
2025, Ghost

My rating: Loved it!

Every single Ghost album improves on the last, and this is no exception. Every single song in this is a banger, with special mentions to Lachryma, Satanized, De Profundis Borealis and Umbra. These might just be the top 4 Ghost songs ever for me.

I gotta say though, the album as a whole is not as cohesive as IMPERA was. It has better songs individually, but IMPERA felt like a better album (at least on first listen) because every song complements each other. Skeletá doesn’t have a single musical identity like that, but whatever it’s doing, every song works individually.

New Website Section: Quick Reviews!

2025-07-20 08:00:00

If anything looks wrong, read on the site!

For a little over a year, I’ve been writing quick reviews of movies and TV shows I’ve watched. I was inspired by Matt Birchler on Mastodon and his own Quick Reviews web app, and while I initially used his app to write my own and post to social media, I decided to give my reviews a home in here.

So, after gathering my reviews as Markdown files in Obsidian, they’re now in a new section here. Meet Quick Reviews!

The review cards are not images, but just web elements like everything else. Which means they are responsive and lightweight. I made it as easy as possible to publish them on my side, and there’s even a download button to allow me to quickly post them to social media!

The Technical Part

If you’re interested in how I made it work, it’s actually not that complicated.

This website already uses Markdown files for the blog posts, and since it uses Astro, fetching data for the Quick Reviews was as easy as declaring a new Content Collection, pointing to the right folder, and declaring its schema. It will all make sense in a bit.

Data Schema

First of all, I needed to define what a review would look like. Its main pieces of information are the movie/show’s name, the rating, and the content of my review. Some metadata is also nice to help tidy things up, like the date I reviewed it, the year the movie came out, and who the director was.

In Markdown, this kind of data is all part of the file’s Frontmatter, a special section at the top of the file. The only exception would be the review’s content, which is just pure Markdown, right below the frontmatter. It looks like this:

---
type: (movie/tv show)
metadata: (year, director, etc)
image: (movie poster)
rating: (my rating)
date: (when I reviewed it)
---

(what I have to say about it)

With just that, I’m able to display it however I want on my site. I added two extra properties that are specific to how I want to display them on my website: theme, with a light an dark option that mainly control the color of the text, and customBg, which allows me to set any color I want as the background.

On the Astro side of things, I declared this same schema, so Astro knows what data to look for:

import { z } from 'astro:content';
import { QuickReviewRating, QuickReviewType } from './quick-review-types'; // These are enums that match to what's in Obsidian

export const quickReviewSchema = z.object({
	type: z.enum([QuickReviewType.Movie, QuickReviewType.TvShow, QuickReviewType.Game, QuickReviewType.Album]),
	metadata: z.string().optional().nullable(),
	image: z.string().optional().nullable(),
	rating: z.enum([QuickReviewRating.DidntLikeIt, QuickReviewRating.Decent, QuickReviewRating.LikeIt, QuickReviewRating.LovedIt]),
	date: z.coerce.date(),
	theme: z.enum(['dark', 'light']),
	customBg: z.string().optional().nullable()
});

And then, on content.config.ts, I used that schema in my new Content Collection:

~filename content.config.ts

import { quickReviewSchema } from "@schemas/quick-review";

const quickReviews = defineCollection({
	loader: glob({ pattern: "**/*.md", base: "./public/cms/quick-reviews" }),
	schema: quickReviewSchema
});

export const collections = { quickReviews };

And with that, I can already use Astro’s getCollection to fetch and use that data however I want!

Saving reviews

This system is only as good as its ease of adding new reviews to. If adding reviews is too much of a hassle, then my lazy self will just stop doing it.

Obsidian has a built-in Template feature that allows you to quickly add a pre-set structure to a file, like the Frontmatter above. That already makes it better, since I can just create a file, apply the template, and just fill the missing fields. However, some steps were particularly annoying.

Finding a movie’s image, year and director usually required either a web search or opening its page in IMDB. That’s not really a big deal, but it’s still annoying to have to make that trip every time I want to write something.

Luckily, Obsidian has a gigantic ecosystem of plugins that can fill any possible niche. There is a community plugin called QuickAdd that adds a bunch of possibilities to templates. And, guess what, the plugin author even has an example of how to setup a template that automatically grabs info from IMDB into a note! I just followed the guide for the Movie & Series script and, voilà, I could have that info in my Quick Reviews in seconds!

I didn’t need all that data on my quick reviews, so I just added the ones I needed to my template. The end result looks like this:

~filename quick-review-template.md

---
type: "{{VALUE:type}}"
metadata: "{{VALUE:Year}}, {{VALUE:director}}"
image: "{{VALUE:Poster}}"
rating: 
date: ""
theme: dark
customBg:
---

And this is what the flow looks like:

Screen recording showing the flow of adding a new review in Obsidian. I use a keyboard shortcut to invoke the Quick Review dialog, type in "Kill Bill", select Kill Bill 2, and write that it's pretty good, setting the rating to "I like it"

Future Plans

Honestly, I don’t want this section to be complicated at all. It is above all a place to dump my thoughts about specific pieces of media on. I added some quick filtering for media type, but that’s it. I might revisit the layout of the reviews at some point and maybe add a special RSS feed for them, but besides that, I think I’m done.

Let me know if there’s anything you think would be cool, though. As long as it’s fun, I’m not opposed to it!

Cool Links Vol. 12: June, 2025

2025-06-30 08:00:00

If anything looks wrong, read on the site!

Hey there! Happy Pride 🏳️‍🌈!

I hope you’re comfortable and keeping chill/warm depending on which side of the world you are. This month, aside from finally launching v5 of my website, I’ve gathered up a few cool links for you to read.

Fun

Nic Chan’s Website

Came across this website on Mastodon and oh wow, it’s so nice! I’ve seen a bunch of websites trying to mimic the old Windows vibes, but this one did it in a way that makes sense. Content is well laid-out and it doesn’t go too far into the “mimicking Windows” aspect.

Deep Reads

The Internet Used to Be a Place, by Sarah Davis Baker (video)

Amazing video about the internet we’ve lost (or rather, was taken from us), and how we can rebuild it.

Absolute fan of Sarah’s storytelling here, the way she weaves through the topics and links (hah!) them to that Hypnospace game is amazing!

Dev

The New Separation of Concerns, by Brad Frost

I learned about separation of concerns over a decade ago, when I was still learning how to code. On the web side, it would very often be related to what language you were using; HTML is for markup, CSS for styles, JS for interactivity, whatever-backend-language-you-use for business logic. That made sense back then but now the lines have become much blurrier.

Brad Frost goes a bit into what a more modern version of that separation of concerns might look like. I haven’t tried out his course, so I can’t comment on how good it is. But I’m a big fan of his atomic design principles so I’d say it might be a good one!

Web Weekly newsletter, by Stefan Judis

I’ve been subscribed to this newsletter for over a year and it never occurred to me to recommend it here. Stefan Judis does a weekly roundup of web dev-related things and puts them out in a nice, easy-to-read, lighthearted newsletter. It’s been one of my favorites for a while and if you’re reading this, chances are you’ll enjoy his content too!

Wrapping up

This is volume 12 of Cool Links, which means I’ve been gathering links like this for a year!

It was the first step in my plan to write more. I figured that by commenting on what other people wrote, I’d feel more comfortable with writing myself. Even though I haven’t actually written more posts here during the last year, I feel like it’s working. I have a few drafts that I haven’t developed enough to post, and some that I just discarded after a bit. But what matters is that I actually wrote something; posting it is just a consequence. 😅

Overall it’s been fun collecting links like these every month, and it’s a way of keeping the spirit of the web alive. It is, after all, a bunch of sites that link to each other. And if at least one person discovers a neat website because of posts like these, then it’s mission accomplished. 🫡

See you next month!

Quick Review: Jojo Rabbit

2025-06-29 20:00:00

Jojo Rabbit
2019, Taika Waititi

My rating: Loved it!

A beautiful movie about innocence during a time that wanted nothing but to prey on it. I’d love to say it’s all in the past.