sdx·studio
Back to blog

Devlog #1: Shipping the SDX Studio Website

Seifeldin Sabry·March 15, 2026·5 min read

First devlog. Let me explain what's going on here and why I built this.

SDX Studio is my independent software studio where I build SaaS products and take on consulting work for businesses that need clear technical thinking. The studio has existed for a while in practice, but until recently it didn't have a home on the web. That felt wrong. If I'm telling clients to establish a professional online presence, I should have one myself.

So I built this site. And since I'm going to be blogging here about the work, it made sense to start by documenting the site itself.

Why Build It

Three reasons, in increasing order of importance.

Credibility. When a potential consulting client searches my name, I want them to find something that accurately represents the quality of my work. A polished, professional website does more for that than a LinkedIn profile.

A home base. Products come and go, clients rotate, but the studio is the constant. The website is the place where everything connects: products, services, writing, contact. It should feel permanent and maintained.

Blogging as thinking. This is the most important one. Writing forces clarity. I have a lot of half-formed ideas about software, product decisions, business setup, and building in public. The blog is where I'll work those ideas into something coherent. Some posts will be technical, some business-focused, some just honest reflections on what it's like to build things independently.

The Stack

I made deliberate, boring choices here. This is a marketing site and a blog. It doesn't need a complex architecture.

Next.js 16. The obvious choice for a React-based static site. Server Components make sense here since pages are content-heavy and benefit from server-side rendering without the complexity of a separate API. The App Router is mature now.

Tailwind CSS v4. I resisted upgrading from v3 for a while, but v4's native CSS variables and @theme directive are genuinely better for design tokens. Defining your entire design system in CSS and having Tailwind consume it is cleaner than the v3 config approach.

Velite for content. Not Contentlayer (abandoned, no Next.js 15+ support), not a headless CMS (overkill for a personal blog). Velite compiles MDX files from content/ at build time, outputs typed JSON, and handles the Shiki syntax highlighting pipeline through rehype-pretty-code. The result is a zero-API content layer where posts are just MDX files in a directory.

Cloudflare Pages for hosting. Fast global CDN, generous free tier, and first-class support for static Next.js exports via OpenNext. The static export approach means no Node.js server to maintain. Deployments happen automatically on every push to main.

Design Philosophy

Dark-first. The site is dark-only. No light mode toggle, no system preference detection. This was a deliberate call. A dark theme matches the developer and technical audience I'm writing for, fits the minimal aesthetic I wanted, and removes the need to maintain two parallel design systems. Linear, Vercel, and Raycast all make dark mode feel premium rather than a fallback. I wanted that same feel.

Minimal. One font family (Geist, both Sans and Mono). A limited color palette: background, three text weights, accent blue, border. No shadows except on interactive elements. No decorative imagery. The goal was a site that doesn't get in the way of the content.

Fast. Static generation means sub-100ms Time to First Byte globally from Cloudflare's edge. No JavaScript needed for reading content. The interactive elements (newsletter form, navigation) are isolated client components that don't block initial render.

What's Live

The site launched with these sections:

  • Products: Arkive, with more coming
  • Services: consulting engagements I take on
  • About: who I am and what SDX Studio is
  • This blog, which now has real posts instead of placeholder cards

Getting the first real post live felt like the site actually existed. Before content, it was infrastructure. With content, it's a place.

What's Next

Contact form. The current "get in touch" links go to an email. A proper contact form with Resend integration is next.

Newsletter. I want to send a newsletter when I publish something worth reading. The signup form is on the site now (disabled while the backend isn't wired), but Resend audience integration and the send flow are the next major feature.

More blog posts. The backlog is long. Posts I want to write: thoughts on consulting rates in Belgium, notes on the Tailwind v4 migration, and more devlogs as the studio evolves.

Browser extensions for Arkive. Separate from this site, but Arkive's biggest missing feature is a proper save-from-browser experience. That's the next product sprint.

If you want to follow along, the newsletter signup is at the bottom of this page. I won't spam. Only when something real ships or when I write something worth your time.