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

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
T
Troy Hunt's Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
T
Threatpost
G
Google Developers Blog
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
H
Heimdal Security Blog
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
T
The Blog of Author Tim Ferriss
Know Your Adversary
Know Your Adversary
Hacker News: Ask HN
Hacker News: Ask HN
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Schneier on Security
B
Blog
V2EX - 技术
V2EX - 技术
NISL@THU
NISL@THU
C
CERT Recently Published Vulnerability Notes
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Y
Y Combinator Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
Schneier on Security
Schneier on Security
F
Fortinet All Blogs
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
S
Security @ Cisco Blogs
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
Project Zero
Project Zero
I
Intezer
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
SecWiki News
SecWiki News
Martin Fowler
Martin Fowler

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 Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Vibecoding a Time Tracker: A Cynical Guide to AI Orchestration
Şehit Şamil · 2026-05-08 · via DEV Community

As a frontend engineer with over six years in the trenches, I’ve seen my share of over-engineered garbage. So, naturally, I slapped together a time-tracking app last weekend, relying almost entirely on AI agents and chatbots. Yes, I know. Another time-tracker. There is already an absurd amount of well-established competition in this space, backed by endless case studies and projects churned out before—and increasingly after—the dawn of AI coding workflows.

The primary reason I built it? My beloved fiancée needed something exactly like it. When I asked my developer friends for app recommendations, they hit me with the classic joke: "Why don't you just make one for her?" I laughed it off initially and gave it a hard pass. But then, as the weekend rolled around, I realized I needed a break from micromanaging my towns in Manor Lords, and frankly, I was itching to feel productive without trying too hard.

So, I started discussing it with Gemini, as I often do these days. It all began with a casual architectural debate: for a project like this, what makes more sense—lean React or Next.js? One hypothetical tangent led to another, and with a little artificial encouragement that "this would be a good exercise," I fired up the initial commit.

I headed over to bolt.new. After briefly reviewing a few AI mockup and wireframing tools, I decided they were too much of a hassle for a weekend fling. Instead, I just hit Bolt with a few sentences, describing the idea and specifying the stack: React, Vite, and shadcn. A few minutes later, Bolt spit out an expectedly good-looking UI masking an unexpectedly horrifying codebase.

_Result of the bolt.new_
The initial Bolt output. UI looks clean, code not so much.

I quickly turned it into a GitHub repo and switched back to my loyal AI coding pal, Cursor. After setting up some baseline Cursor rules, I selected Claude 4.6 Sonnet—Opus would have been a massive overkill for this. My first prompt was simple: scan the repo and find what’s completely broken. Boy, did it find a lot of garbage. After burning through some tokens to fix Bolt's problematic foundation, I was ready to dive into the details, expand the functionality, and morph this fast-tracked tech demo into an actual product.

The God Complex and the Generic Pot

I have to admit, it was dangerously fun to shape the frontend exactly as I pleased. Operating as a highly opinionated Product Owner with near-slave-level code generation at my disposal gave me a profound understanding of the psychology behind low-level managers in poorly run mid-sized companies—the kind of C-levels who micromanage every developer without even knowing their names.

Satire aside, I tried to give the UI a distinctive feel. We achieved it to some extent, though it begs the question: how unique can a product's UI truly be when you're relying entirely on pre-styled component libraries? A debate for another time.

I sprinkled in some color and added basic features missing from the Bolt demo, like Google Sheets integration. Slowly, the product took a shape I liked. I felt like a potter at a wheel, watching my spinning pile of digital dirt turn into something functional. Of course, it was going to be a pot just like a million other pots, but it was my pot.

WIP ui screenshot

I spent the weekend mapping out a roadmap with Gemini—brainstorming names, locking in the tech stack (Zustand for state management, a tally mark for the logo, etc.), and finally settling on the name Çetele. After throwing a few more API tokens at Cursor, I had a working platform sitting in front of me. It was almost entirely AI-written, with just a few manual tweaks here and there for the edge cases that weren't worth making my $20 Cursor subscription sweat over.

But this is the exact moment where you have to sprinkle in that "product-minded engineer’s fairy dust."
Gemini is fantastic for discussing technical details, but it rarely volunteers the critical, unsexy information unless you explicitly ask for it. It won't spontaneously offer the brilliant, defining architectural pivot that separates your end product from the digital landfill. I had to throw specific concepts and keywords at it to generate a secondary roadmap—the one that turns a "vibecoded" demo into a robust application.

I'm talking about the stuff every seasoned engineer instinctively looks for: proper error handling with visual toast components, subtle UI UX refinements that users actually feel, and ensuring API security is locked down (even without a traditional backend, you absolutely cannot leave a Google API exposed for abuse). I added debouncing logic here, and edge-case handling for Google connection timeouts there. This checklist might sound painfully obvious, but let's not forget that these AI workflows are currently being weaponized by non-technical idealists and juniors with zero real-world product experience to launch incredibly vulnerable software. For a seasoned engineer, this is an automatic mental checklist; for an AI, it's an afterthought.

Premium Tupperware and Finding a Soul

Even after checking all those boxes, a technically sound project still isn't a product. It needs one more thing: a soul.
Cheesy reveal, right? But it's true. A tech project with all the right implementations is still just a demo until you add branding, themes, localization, mobile responsiveness, and a live deployment.
To achieve this, I crawled back to my everything-assistant, Gemini. I described a logo idea, had it generate an image prompt, fed that prompt to Nano Banana, and voilà—a beautiful logo. A few minor Photoshop tweaks later, I had my favicon, Open Graph images, and the core branding needed.

_Cetele logo_

Next, acting purely on impulse, I asked Gemini for a prompt to generate an "absurdly modern and good-looking animated landing page." I pasted that prompt into Cursor, and it one-shotted the exact page I was yearning for.

But here is the inherent problem with these pages: they look fantastic, but they look like they rolled off a mass-production line. That’s exactly why AI is so good at creating them—they all look and feel the exact same. AI-generated landing pages are the digital equivalent of premium Tupperware. They look expensive, they make you feel special for having them, but at the end of the day, you just put leftover pasta in them, and everyone else in your neighborhood has the exact same set.

But you know what? I took the Tupperware (both figuratively and literally). It saved me five hours of CSS debugging, and it was a nice touch; I’m admittedly amazed every time I look at it.

_A delightful page indeed_

From there, I knocked out the remaining list. I implemented an EN/TR language switch with proper i18n support, defaulting to Turkish since my fiancée is the target audience (and it’s always better UX when an app opens in your native language). I ended up regenerating the Turkish locale files with Gemini, as it handles contextual translation far better than a blind Cursor operation. I slapped on a clean Google Font—it is endlessly remarkable how much a single font can dictate whether a frontend looks modern or generic. Finally, I polished the mobile responsiveness, knowing full well that any developer friend I sent this to would open it on their phone.
The final leg of branding was the domain name. Naturally, cetele.app and cetele.com were already squatted on. I usually check availability before settling on a name, but this time I genuinely didn't care enough for the name since there were none that I really liked. On the bright side, it saved me the domain registration fee. I bypassed certain genocide-backing cloud infrastructures and deployed it straight to Netlify in a few clicks. So far, so good.
You can give it a go from here.

The Death of the Code Monkey

The site is live. It received solid reviews from developer friends who don't hold their tongues on matters like this—which is a pretty neat quality that separates phony hype-men from actual friends. The fiancée is impressed. Mission accomplished.

It’s another showcase proving I can take a product from zero to hero. Granted, it wasn't a tough nut to crack—there's no incredibly complex business logic or enterprise scaling plan to handle massive concurrent traffic—but it is still something. It is alive. It sits in its cold cloud, waiting to be used. It was excellent practice, and I am happy with the result, which is all that matters.

_Current state of the app_
Current state of the UI

I briefly entertained the idea of writing a sanitized, corporate LinkedIn post about this to attract recruiters or throw a stone into a still lake. Then I thought: fuck the LinkedIn post and fuck being a sellout. Why not just write a cynical, sarcastic blog post instead?
Long story short, I built an entirely unnecessary app over the weekend using AI, and it felt dangerously good. It’s so easy that it almost feels like it should be illegal. But when you look at the trajectory of the industry, this is exactly where we are heading. As models and tools become increasingly expensive, the era of bosses and financial backers approving unlimited API budgets for developers will inevitably end.

The fact that a standard $20 Cursor subscription worth of AI tokens can code a functional product in a lazy weekend proves that the definition of a "developer" is changing—or rather, it already has. A developer is no longer just someone who writes code; they are an orchestrator of AI tools. This brings us to the modern reality of the "Product Engineer," a title I suppose I now hold, which is really just a fancy way of saying I successfully babysat AI bots for 48 hours to build a glorified timer.
AI has evolved enough to write the code for us. Therefore, developers must evolve to become full-circle product engineers, or risk remaining coding monkeys in an era that no longer needs them.

Peace out.

Live Demo: https://ssg-cetele.netlify.app/
Source Code: https://github.com/ssamilg/cetele