In a world drowning in JavaScript frameworks, where a simple blog post requires megabytes of code to render, I decided to do something different: create a suckless version of my website.
If you haven't noticed yet, you're reading it right now. This is `/s/` - a brutalist, terminal-style version that runs on pure HTML and CSS. No JavaScript. No bloat. Just content.
What Does "Suckless" Mean?
The term comes from suckless.org, a community focused on creating software that sucks less. Their philosophy is simple:
"Our software sucks less than other implementations."
Key principles:
- Simplicity: Code should be simple and readable
- Minimalism: Only include what's necessary
- Performance: Less code = faster execution
- Hackability: Easy to understand and modify
While they primarily focus on system software (like their famous `dwm` window manager), the philosophy applies perfectly to web development.
The JavaScript Bloat Problem
Let me paint you a picture. The average website in 2025:
- 3+ MB of JavaScript
- 10+ frameworks loaded
- Hundreds of HTTP requests
- 5+ seconds to interactive
- Requires a modern browser with V8 engine
For what? Often just to display text and images.
The Modern Web Stack
User → React → Redux → Router → Webpack → Babel → TypeScript
→ GraphQL → Apollo → styled-components → animations
→ analytics → ads → tracking → GDPR banner
= 5MB download, 10 seconds load time
The suckless approach:
User → HTML + CSS = 15KB download, 0.1 seconds load time
Why I Created /s/
1. Performance
The suckless version loads in milliseconds, not seconds. No JavaScript parsing. No render blocking. Pure HTML.
Comparison:
- Main site: ~800KB, 2-3 seconds initial load
- Suckless version: ~15KB, <0.1 seconds
2. Accessibility
Works on:
- Lynx (text-only browser)
- Screen readers
- 10-year-old phones
- 56k dial-up (remember that?)
- JavaScript-disabled browsers
- Literally any device with HTML support
3. Privacy
No JavaScript = No tracking. No analytics. No third-party scripts. Just you and the content.
4. Archival
In 20 years, when React 18 is ancient history and Node.js has been replaced by something else, the suckless version will still work.
Pure HTML from 1995 still works today. Will your React app from 2025 work in 2045?
5. Focus
No animations. No fancy effects. No distractions. Just pure content.
Sometimes that's exactly what you need.
The Technical Implementation
What I Used
- HTML: Semantic HTML5
- CSS: ~200 lines of brutalist styling
- JavaScript: 0 bytes
That's it.
Design Choices
Typography:
- Monospace font (system default)
- Black text on white background
- No custom fonts = no FOUT/FOIT
Layout:
- Max-width: 800px
- Centered content
- Natural line-height
- Plenty of whitespace
Colors:
- Black: #000
- White: #fff
- That's it
Interactivity:
- CSS :hover states
- No JavaScript needed
Blog Posts
The main site uses marked.js to render Markdown client-side. The suckless version?
Static HTML files.
Every blog post is pre-converted to HTML. No client-side processing. No JavaScript. Just HTML.
Who Is This For?
1. Users with slow connections
Not everyone has fiber optic. Some people still use mobile data with limits.
2. Privacy-conscious users
People who disable JavaScript for security/privacy reasons shouldn't be excluded.
3. Developers who appreciate minimalism
If you use `dwm`, `st`, or `surf` - this is for you.
4. The future
Archivists, historians, and anyone accessing this site decades from now.
5. Myself
Sometimes I just want to read without distraction.
The Philosophy Behind It
Complexity is the Enemy
Every line of code is a liability:
- More code = more bugs
- More code = more attack surface
- More code = harder to maintain
- More code = slower execution
The suckless version has ~300 lines of code total (HTML + CSS).
The main site? Thousands of lines when you count frameworks.
The Best Code is No Code
Every feature you don't add is:
- One less thing to maintain
- One less thing to break
- One less security vulnerability
- One less performance bottleneck
Progressive Enhancement vs. Graceful Degradation
Most sites today:
- Build for the latest Chrome
- Add polyfills for older browsers
- Fall back to "please upgrade"
The suckless approach:
- Build for basic HTML
- Add CSS for styling
- Add JavaScript only if absolutely necessary
Common Objections
"But users expect modern interactions!"
Do they? Or have we trained them to expect bloat?
Most users just want to:
- Read your content
- Click a link
- Maybe fill out a form
You don't need React for that.
"But it looks ugly!"
Beauty is subjective. The suckless style is intentionally brutalist.
It's not ugly - it's honest. Form follows function.
"But I need analytics!"
Do you? Or do you just like watching numbers go up?
You can have analytics on the main site. The suckless version is for people who explicitly want no tracking.
"But my app has complex state management!"
Then the suckless version isn't for your app.
But your marketing site? Your blog? Your documentation?
Those don't need Redux.
How You Can Do This
Step 1: Create a /s/ Directory
mkdir s
Step 2: Write Semantic HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Your Site</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Your Content</h1>
<p>Pure HTML. No JavaScript.</p>
</body>
</html>
Step 3: Add Minimal CSS
body {
font-family: monospace;
max-width: 800px;
margin: 0 auto;
padding: 20px;
line-height: 1.6;
}
a {
color: #000;
text-decoration: underline;
}
a:hover {
background: #000;
color: #fff;
}
Step 4: Link From Your Main Site
Add a link in your navigation:
<a href="/s/">Suckless Version</a>
That's it.
The Results
Since launching /s/:
- Faster load times: Sub-100ms
- Better accessibility: Works on everything
- Zero JavaScript errors: Can't have bugs in code that doesn't exist
- Lower bandwidth: ~15KB vs ~800KB
- Happy users: Especially those on slow connections
Conclusion
The suckless web isn't about rejecting modern technology. It's about being intentional with complexity.
Ask yourself:
- Do I really need this framework?
- Will this feature significantly improve the user experience?
- Can I achieve this with simpler technology?
Sometimes the answer is yes. Web apps need interactivity. Complex dashboards need state management.
But your blog? Your portfolio? Your documentation?
Maybe they just need HTML.
The /s/ version of my site will outlive any JavaScript framework. It will work on devices that haven't been invented yet. It will be accessible to everyone, regardless of their connection speed or browser capabilities.
That's the beauty of simplicity.
You're experiencing it right now. This page loaded in milliseconds. No JavaScript. No tracking. Just content.
Inspired by: suckless.org, motherfuckingwebsite.com, and the Unix philosophy of doing one thing well.