惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Jina AI
Jina AI
C
Check Point Blog
V
V2EX
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
A
About on SuperTechFans
D
DataBreaches.Net
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
博客园_首页
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I Spent 2 Months Building a 150+ Tool Website with $0 Ser...
Mark · 2026-06-01 · via DEV Community

Mark

Mark

Posted on • Edited on

📚 This is Part 1 (Opening) of the UtlKit Tech Series


As a frontend developer, I've used countless online tools. And almost all of them suck:

  1. Sign-up required — just to format a JSON string?
  2. Ad overload — the actual tool gets squeezed into a corner
  3. Privacy concerns — your JSON might contain API keys, and the tool sends it to a server
  4. Fragmented — formatters on one site, Base64 on another, hashing on a third

So I decided to build one that doesn't: no sign-up, no ads, pure client-side computation, data never leaves the browser.

The goal was simple — if I need this tool, someone else does too.

The result is utlkit.com: 150+ tools, 8 categories, zero server costs.

Requirements

Requirement Meaning
Pure client-side All logic runs in the browser
Zero server cost Static hosting, no Node.js backend
150+ pages One page per tool, SEO-friendly
Bilingual (EN/ZH) i18n support
Dark/Light mode User preference
Mobile responsive Works on all devices

Why Not Other Frameworks?

Option Pros Cons Verdict
Vanilla HTML/JS Simple Managing 150+ pages is painful Too slow
VuePress / VitePress Fast Docs-oriented, not for interactive tools Not flexible enough
Nuxt SSR Powerful Needs a server Violates zero-cost principle
Next.js 15 + output: 'export' SSR SEO + client interactivity + static hosting Has pitfalls (covered later) ✅ Best balance

The Key Decision: output: 'export'

// next.config.js
const nextConfig = {
  output: 'export',       // Static export
  trailingSlash: true,    // Required for static files
  images: { unoptimized: true }, // No image optimization server
}

This means:

  • ✅ Build output is plain HTML/CSS/JS files
  • ✅ Deployable to any static host (Cloudflare Pages, Vercel, GitHub Pages)
  • ✅ Zero server cost
  • ❌ No API Routes, no Server Components, limited dynamic routing

Deployment: Zero Cost on Cloudflare Pages

Build output: out/ directory, ~14 MB
Hosting: Cloudflare Pages
Domain: utlkit.com
Monthly cost: $0

Build Pipeline

npm run build
  → next build (output: 'export')
  → Generates out/ directory
  → clean-index-txt.js (removes index.txt)
  → Outputs 150+ static HTML files

Cloudflare Pages CI/CD: git push → auto build → auto deploy, ~3 minutes to production.

What's Coming Next in This Series

Above is the story and the tech choices. The following articles cover real-world pitfalls:

Part Title Core Problem
1 Architecture and Trade-offs Structure, reusability & trade-offs
2 React 19 Hydration Mismatch in Static Export SSR/CSR inconsistency
3 Cloudflare Pages Blank Page: the index.txt Bug Content negotiation mechanism
4 Why Node.js Libraries Fail in the Browser fs dependencies, ESM/CJS interop
5 Sentry Source Maps: From 0% to Full Resolution Tree-shaking, HTTP API, region detection
6 Client-Side Encryption with Web Crypto API MD5 gap, AES-GCM, HMAC
7 Free Performance Monitoring: PageSpeed CI Zero-cost Core Web Vitals monitoring
8 Cloudflare Cache Hit Rate: 7% → 90% 3 Cache Rules + localization optimization
9 Perfect Dark Mode: From Hydration Error to Zero Flicker Troubleshooting 8 pitfalls
10 6 Pitfalls of Multilingual Sites query string → path prefix, 3 rounds of redesign

Each article includes full debugging process, code examples, and lessons learned.


📚 This is Part 1 (Opening) of the UtlKit Tech Series — > - Next: Architecture & Trade-offs →


Project Info

  • Website: utlkit.com
  • Stack: Next.js 15 + React 18 + TypeScript + Tailwind CSS
  • Hosting: Cloudflare Pages
  • Tools: 150+ tools, 8 categories
  • Cost: $0/month

Part 2 will cover architecture design: directory structure, component abstraction, browser-only trade-offs, and i18n approach. Follow along for the full series.