Nginx is dead. Cloudflare killed it
Nginx terminates TLS, proxies, compresses, rate-limits, and serves static files. Cloudflare does all five at the edge — and Dulak handles the rest in-process. You don't need Nginx anymore.
Nginx terminates TLS, proxies, compresses, rate-limits, and serves static files. Cloudflare does all five at the edge — and Dulak handles the rest in-process. You don't need Nginx anymore.
bcrypt was designed in 1999 for a world without GPU mining. argon2id won the 2015 Password Hashing Competition by making GPU attacks economically impractical through memory-hardness. Dulak uses it.
JWT is sold as stateless auth. In practice you need a revocation list — which is server state. Dulak uses DB-backed sessions: one row in SQLite, delete to revoke.
PHP was great in 2005. In 2026, TypeScript has won, Bun has won, and AI writes code in any language. The language barrier that kept you in PHP is gone — so which ecosystem gives you less infrastructure to manage?
Next.js is the default choice for React apps — and the most complex one. Node runtime, RSC boundaries, a framework that re-renders on both sides, and a deploy target that nudges you toward a proprietary cloud. In 2026, AI writes the code — so which stack leaves you the least to wire?
Node needs five separate toolchains to ship a web app. Bun is one binary. Dulak picks the one that doesn't tax you from day one.
ORMs were built to help humans avoid writing SQL. In 2026, AI generates correct, optimized raw SQL on demand — the problem ORMs solved is gone. What remains is the cost.
PM2 is a Node process manager. Dulak runs on Bun. systemd and Docker already do everything PM2 would do — with zero extra dependencies.
SQLite is a file, not a server. No install, no connection pool, no credentials. 52K reads/s with WAL mode — enough for most apps, and a deliberate swap point when it isn't.
SSR ships HTML on the first byte — 50ms to content. SPA ships an empty div and a JS bundle — 500ms to 2s on a budget phone. SSR is crawlable, mobile-friendly, and has no hydration waterfall. Dulak does it in-process, no separate server.
Tailwind is powerful, but it adds a build step and a mental model. Vanilla CSS in 2026 has native nesting, custom properties, grid, and flexbox. The problems Tailwind solved are mostly gone — so Dulak ships vanilla CSS by default.
Files over 100MB fail on a single request — dropped connections, proxy limits, timeouts. The fix is resumable, chunked uploads via tus. Here's how to wire it: server endpoints, client upload, resume, and progress.
SQLite with WAL mode serves 526K reads/s and 95K writes/s direct — 52K reads/s even through the full HTTP stack. Adding Redis would be a dependency that solves a problem Dulak doesn't have.
Inertia gives you SPA feel without SPA architecture. No client-side router, no API layer, no duplicate validation. The server drives the UI; the client is a template engine.