Skip to main content

The Supremely Dumb Thing

Just when you thought it couldn't get any dumber. I start a new web browser project. You're welcome.

I’ve been on the “build dumb things” soapbox for a while. Hobby code can be a relief valve. In the Day Job™, everything can feel binary: one wrong move and the week catches fire. That’s probably dramatic, but accurate if you ask me. But I digress.

Dumb Things.

In the scraps of time between everything else, I’m building something properly dumb, I mean really dumb, and I want to introduce it here; what it is, why it’s Mac-only, and what “done” even means before things go off the deep end.

Look it’s a browser, I know, I get it. Another one. But this one is MINE.

First, some context

If you live on a Mac you’ve probably picked a lane: Safari, or Chrome, or Arc, or something that’s Chromium with better window dressings. Those apps are fine. They’re also carrying baggage: years of compatibility fixes, security debt, and “if we change this, half the web breaks.”

Someone should absolutely pack and carry those bags. It’s not going to be me, not with this project, but someone should DEFINITELY do that.

The app is called browse, lowercase, because all my creativity is going into the actual thing, not the marketing. It's a greenfield project, which I will explain in a sec, and I loves it, I love it so much.

The idea is almost insulting in it's simplicity:

  • SwiftUI for the shell, window, toolbar, open file, all the Mac stuff, and Rust behind it for an HTML/CSS pipeline that actually draws the page.
  • Not a WKWebView holding the document. Not “ship Electron and go home.”
  • The content area is supposed to be parse → style → layout → paint from this codebase.

Stupid? Absolutely. Do I care? No, no I don't. It makes me giggle.

Why not “ship everywhere”

I like native, tightly integrated software that is narrow in its platform focus. This isn’t a rant about Windows (eww) or Linux (I love Linux btw). I just don’t want to spend years of my life fighting a Lowest-common-denominator UI Toolkit Super Monkey Force Alpha Battle.

SwiftUI on top, Rust in the middle, Apple APIs where the pixels and text actually happen. One platform, one set of opinions. All mine, all suspect.

As it should be.

What I mean by “Greenfield”

Ah yes, I did say I would explain this.

I'm not forking Blink, WebKit, Gecko, or Servo. I’m also not trying to invent a parallel web. Over time I still want standards-shaped behavior; real HTML/CSS semantics, tests that act like a contract, blah, blah, boring, blah!

The code will be new, seriously!

You know people will tell you browsers are a trap. They’re right. I’m walking in anyway.

v0, or how I keep from lying to myself

I need a finish line I can actually touch. Right now that looks like:

  • A real window with Back, Forward, Stop, and Refresh that act like it: history works, Stop cancels work in flight, Refresh reads the file off disk again so edits show up.
  • Local HTML and CSS only for this cut.
  • A small corpus with solid, specific tests so “looks right” isn’t a mood, but quantifiable.

Explicitly not in v0:

  • JavaScript. Terrifying.
  • Flex/grid as a gate.
  • HTTPS as a requirement.
  • Tabs.
  • Bookmarks, may they burn in hell!

Etc.

Speed (without the TED talk)

Every side project secretly wants to be the fastest thing alive. I don’t have a press release, and a speed claim without a spreadsheet is just noise. What I actually want is one story end to end: navigation, memory, traces when something gets worse.

The bet isn’t “I’m smarter than everyone else.” I'm obviously not. The bet is “one weird integrated app, tuned to files I care about, might feel great on the hardware on my desk.”

I might be wrong, I guess we'll know soon!

After v0 (no promises)

The docs sketch a different way to think about “where did I leave off”—threads and moments instead of bookmarks, history, tabs, and session restore all pretending they don’t know each other.

Host-level, deeply and meaningfully integrated Apple Intelligence stuff, not a page widget bolted on the side. That’s the part that excites me as a Mac user. It’s also not in the v0 contract, which is how I stop the project from eating itself. And Me.

JavaScript

I’m not writing a VM in my evenings. For now I'll integrate a mature, sane VM, but leave the door open for replacing it with one I write that is just as integrated into the hardware and experience as the rest of the app.

So

browse is a very dumb thing™:

Native shell, Rust renderer, no WebKit painting the page, and a first milestone so small you might ask why bother. Same answer as iterator and the rest: because I want to, because it’s mine, and because “too hard” is easier to say yes to when the only stakeholder is me and a folder of test fixtures.

It moves when I can steal minutes. No clue when there’s something worth sharing. I’ll post here when there’s something to show.

Comments are open if you want to yell at me.

Discussion

Login Required

You must be signed in to post to this board.

Registered users only · No anonymous posting

No messages in this thread yet.