<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Frontend Development on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/frontend-development/</link>
        <description>Recent content in Frontend Development on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 15 May 2026 09:00:52 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/frontend-development/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Prompt-Vault: a prompt specification library for testing AI coding ability</title>
        <link>https://knightli.com/en/2026/05/15/prompt-vault-coding-prompt-benchmark/</link>
        <pubDate>Fri, 15 May 2026 09:00:52 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/15/prompt-vault-coding-prompt-benchmark/</guid>
        <description>&lt;p&gt;&lt;code&gt;w512/Prompt-Vault&lt;/code&gt; is a small but useful prompt repository. It does not collect magic prompts; it organizes executable coding prompts into difficulty levels so they can be used to test LLMs and coding agents.&lt;/p&gt;
&lt;p&gt;Project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/w512/Prompt-Vault&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The repository is small, but the structure is clear: &lt;code&gt;Easy&lt;/code&gt;, &lt;code&gt;Medium&lt;/code&gt;, and &lt;code&gt;Hard&lt;/code&gt;. Each Markdown file is a standalone task. The README also says these prompts are suitable for testing language models or practicing small projects.&lt;/p&gt;
&lt;h2 id=&#34;not-a-prompt-scrapbook&#34;&gt;Not a prompt scrapbook
&lt;/h2&gt;&lt;p&gt;Many prompt repositories look large but are hard to evaluate. The titles are attractive, but the prompts lack acceptance criteria.&lt;/p&gt;
&lt;p&gt;Prompt-Vault is closer to a specification library. Each task tries to describe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What app to build&lt;/li&gt;
&lt;li&gt;Required features&lt;/li&gt;
&lt;li&gt;UI style&lt;/li&gt;
&lt;li&gt;Technical constraints&lt;/li&gt;
&lt;li&gt;Whether it must run as a single file&lt;/li&gt;
&lt;li&gt;Whether dependencies are allowed&lt;/li&gt;
&lt;li&gt;Whether data should persist&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is much better for testing models than &amp;ldquo;make a nice Kanban board&amp;rdquo;, because it reveals whether the model truly understands requirements.&lt;/p&gt;
&lt;h2 id=&#34;easy-basic-interaction&#34;&gt;Easy: basic interaction
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Easy/Bubble_Sort_Visualizer.md&lt;/code&gt; asks for a single-file &lt;code&gt;index.html&lt;/code&gt; that visualizes bubble sort with bars, start/reset buttons, a speed slider, comparison count, and a dark theme.&lt;/p&gt;
&lt;p&gt;It tests whether a model can connect algorithm state to UI, control animation timing, handle reset and running states, and keep the code readable.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Easy/ToDo_List.md&lt;/code&gt; starts from static HTML and gradually adds task creation, completed state, deletion, counters, Active / Completed stats, and &lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It is a simple task, but it tests whether a model can evolve code step by step instead of dumping a messy implementation.&lt;/p&gt;
&lt;h2 id=&#34;medium-state-and-animation-complexity&#34;&gt;Medium: state and animation complexity
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Medium/Sorting_Visualization.md&lt;/code&gt; upgrades the challenge. The same page must support Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort, and Heap Sort.&lt;/p&gt;
&lt;p&gt;It also needs algorithm selection, speed and size sliders, reset, start / pause, and a live stats panel.&lt;/p&gt;
&lt;p&gt;This catches many failures: an agent may implement one bubble sort animation, but multiple algorithms plus pause/resume and stats often break state management.&lt;/p&gt;
&lt;p&gt;Useful checks include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does every algorithm really sort?&lt;/li&gt;
&lt;li&gt;Does the animation match the algorithm steps?&lt;/li&gt;
&lt;li&gt;Can it pause and resume?&lt;/li&gt;
&lt;li&gt;Does reset stop old animation loops?&lt;/li&gt;
&lt;li&gt;Does changing array size break state?&lt;/li&gt;
&lt;li&gt;Are the statistics credible?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;hard-product-completeness&#34;&gt;Hard: product completeness
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Hard/Kanban_Board.md&lt;/code&gt; asks for a complete board: default columns, custom columns, double-click rename, delete empty columns, cards with title and description, priority, deadline, drag-and-drop, search, priority filter, &lt;code&gt;localStorage&lt;/code&gt;, footer stats, glassmorphism dark theme, and responsive horizontal scrolling.&lt;/p&gt;
&lt;p&gt;This tests product completeness, not just one feature.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Hard/Markdown_Editor_Desktop.md&lt;/code&gt; asks for a Tauri 2 cross-platform Markdown editor. It includes split editing and preview, sync scrolling, live rendering, preview mode, focus mode, open/save/save-as, unsaved title markers, formatting toolbar, shortcuts, themes, font settings, Vue 3, Pinia, &lt;code&gt;marked.js&lt;/code&gt;, &lt;code&gt;prism.js&lt;/code&gt;, and Tauri plugins.&lt;/p&gt;
&lt;p&gt;This is no longer a simple web prompt. It tests frontend state, Tauri plugins, filesystem permissions, IPC boundaries, and desktop packaging.&lt;/p&gt;
&lt;h2 id=&#34;why-it-is-valuable&#34;&gt;Why it is valuable
&lt;/h2&gt;&lt;p&gt;Prompt-Vault is valuable because it provides reusable evaluation samples.&lt;/p&gt;
&lt;p&gt;If you compare models or coding agents, you can run the same prompt repeatedly and observe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which model follows constraints&lt;/li&gt;
&lt;li&gt;Which model misses fewer features&lt;/li&gt;
&lt;li&gt;Which model handles edge cases&lt;/li&gt;
&lt;li&gt;Which output is easier to maintain&lt;/li&gt;
&lt;li&gt;Which model is better at UI details&lt;/li&gt;
&lt;li&gt;Which model is stable under single-file constraints&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is more reliable than &amp;ldquo;it feels smarter&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Frontend tasks are especially useful because many failures are not syntax errors. They are missing button states, broken animation, lost persistence, wrong drag targets, or stale statistics.&lt;/p&gt;
&lt;h2 id=&#34;how-to-extend-it&#34;&gt;How to extend it
&lt;/h2&gt;&lt;p&gt;The repository could become a stronger benchmark by adding acceptance checklists, failure cases, scoring dimensions, reference implementations, and cross-model result records.&lt;/p&gt;
&lt;p&gt;For example, a sorting task should include checks such as &amp;ldquo;rapid Start / Reset clicks must not create multiple animation loops.&amp;rdquo; A Kanban task should specify what happens when deleting a non-empty column.&lt;/p&gt;
&lt;p&gt;These details make the prompt useful for human review and automated agent evaluation.&lt;/p&gt;
&lt;h2 id=&#34;suggested-use&#34;&gt;Suggested use
&lt;/h2&gt;&lt;p&gt;To test an AI coding tool:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give one prompt unchanged.&lt;/li&gt;
&lt;li&gt;Do not add extra hints.&lt;/li&gt;
&lt;li&gt;Run the generated result.&lt;/li&gt;
&lt;li&gt;Check features one by one.&lt;/li&gt;
&lt;li&gt;Record missing features and bugs.&lt;/li&gt;
&lt;li&gt;Give one repair round.&lt;/li&gt;
&lt;li&gt;Compare time, token cost, and final code quality.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is closer to real development than simply checking whether a page appears.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Prompt-Vault is a lightweight prompt specification library. It is useful for AI coding tests and for frontend practice projects.&lt;/p&gt;
&lt;p&gt;It reminds us that a good coding prompt is not just a wish. It should define requirements, constraints, interactions, state, acceptance, and run mode.&lt;/p&gt;
&lt;p&gt;If you compare Codex, Claude Code, Cursor, Gemini CLI, or other coding agents, this kind of leveled prompt is worth keeping.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Pro vs GPT-5.5: After Testing Frontend, Writing, and Coding, the Gap Feels Bigger Than Expected</title>
        <link>https://knightli.com/en/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</link>
        <pubDate>Sat, 25 Apr 2026 11:12:00 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</guid>
        <description>&lt;p&gt;Comparisons between &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt; are getting more attention lately. The reason is no longer whether either model is usable. The real question is: &lt;strong&gt;when the work lands in frontend development, writing, and coding, which one is better suited to be your main tool?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When people compare models like this, they often start by asking which one is stronger.&lt;br&gt;
But the more useful question is usually different: &lt;strong&gt;in a real task, which one is steadier, cheaper to communicate with, and more likely to produce something you can keep building on immediately?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If we simplify the conclusion first, it roughly looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When you want more balanced output and a more complete productized experience, many people still look at &lt;code&gt;GPT-5.5&lt;/code&gt; first&lt;/li&gt;
&lt;li&gt;When you need high-frequency iteration in Chinese, care more about cost, and want fast response cycles, &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; becomes a serious candidate&lt;/li&gt;
&lt;li&gt;What really determines the experience is often not the model name itself, but the task type, the prompting approach, and whether you need to keep revising afterward&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let’s break this down through the three most common comparison scenarios.&lt;/p&gt;
&lt;h2 id=&#34;1-frontend-tasks-the-real-question-is-not-whether-it-can-build-a-page-but-whether-it-can-keep-improving-it&#34;&gt;1. Frontend tasks: the real question is not whether it can build a page, but whether it can keep improving it
&lt;/h2&gt;&lt;p&gt;Frontend work looks ideal for model comparisons because the result is easy to see.&lt;br&gt;
Can the page run? Does it look good? Is the structure clean? You can judge all of that quickly.&lt;/p&gt;
&lt;p&gt;But the real difference usually does not appear in whether the first draft works. It shows up in questions like these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the structure clear enough?&lt;/li&gt;
&lt;li&gt;Is the component split natural?&lt;/li&gt;
&lt;li&gt;Does changing one part accidentally break another?&lt;/li&gt;
&lt;li&gt;Can it keep following the same implementation logic across multiple rounds of instructions?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is also why many frontend demos that look impressive in the first round do not necessarily stay ahead in real workflows.&lt;/p&gt;
&lt;p&gt;If your task is something like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quickly generate a runnable page prototype&lt;/li&gt;
&lt;li&gt;Draft a landing page idea&lt;/li&gt;
&lt;li&gt;Fill in required styles, buttons, cards, forms, and other basic elements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;then both models will often get you fairly close, and the difference is more about output style.&lt;/p&gt;
&lt;p&gt;But if the task becomes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Repeatedly revising the UI over multiple rounds&lt;/li&gt;
&lt;li&gt;Reading existing code and continuing from there&lt;/li&gt;
&lt;li&gt;Balancing component structure, style consistency, and maintainability&lt;/li&gt;
&lt;li&gt;Gradually turning a static page into real project code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;then what you should watch is no longer “who looks better in round one,” but “who is less likely to drift off by round five.”&lt;/p&gt;
&lt;p&gt;So in frontend work, the key comparison is not whether the model can generate a page. It is whether, after you keep adding constraints, it can still maintain stable structure, consistent naming, and manageable modification costs.&lt;/p&gt;
&lt;h2 id=&#34;2-writing-tasks-the-real-difference-is-not-how-much-it-writes-but-how-stable-the-style-stays-and-how-well-rewrites-go&#34;&gt;2. Writing tasks: the real difference is not how much it writes, but how stable the style stays and how well rewrites go
&lt;/h2&gt;&lt;p&gt;Writing is another area where people can misjudge models very easily.&lt;/p&gt;
&lt;p&gt;A big reason is that first drafts often look fine from both sides.&lt;br&gt;
The structure is complete, the paragraphs are there, and the tone is smooth enough that it is easy to think they are basically similar.&lt;/p&gt;
&lt;p&gt;But as soon as you push the task one step further, the differences show up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can it accurately understand your intended audience?&lt;/li&gt;
&lt;li&gt;Can it switch tone while staying on the same topic?&lt;/li&gt;
&lt;li&gt;Does it lose key points when rewriting?&lt;/li&gt;
&lt;li&gt;Does it stay stable when compressing, expanding, retitling, or restructuring?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The biggest problem in writing is usually not “it cannot write,” but “it wrote something that still needs a lot of fixing.”&lt;/p&gt;
&lt;p&gt;So when comparing &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt;, the more useful method is not to ask each to write one article. It is to run several rounds like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write the first draft&lt;/li&gt;
&lt;li&gt;Rewrite it in a different tone&lt;/li&gt;
&lt;li&gt;Compress it into a shorter version&lt;/li&gt;
&lt;li&gt;Rework it into something better suited for click-driven headlines or search distribution&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If a model can keep the key points intact, the wording stable, and the structure clean through those rounds, then it has much more value in a real writing workflow.&lt;/p&gt;
&lt;p&gt;In other words, what writing tasks really measure is not “literary flair,” but &lt;strong&gt;revision ability, instruction following, and the feeling of continuous collaboration&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;3-coding-tasks-the-real-gap-shows-up-in-long-chain-stability&#34;&gt;3. Coding tasks: the real gap shows up in long-chain stability
&lt;/h2&gt;&lt;p&gt;Coding tasks expose a model’s real level more easily than frontend work, because they are not just about generating output. They have to connect with reality.&lt;/p&gt;
&lt;p&gt;Very quickly, you run into questions like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can it understand an existing project structure?&lt;/li&gt;
&lt;li&gt;Can it modify multiple files at once?&lt;/li&gt;
&lt;li&gt;Does it introduce new problems after making changes?&lt;/li&gt;
&lt;li&gt;Can it keep debugging by following logs and errors?&lt;/li&gt;
&lt;li&gt;After several rounds, does it still remember what it already changed?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this kind of work, what users care about most is usually not whether a single code snippet looks elegant. It is: &lt;strong&gt;can this model keep moving the task forward, instead of leaving me to clean up the mess?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So when comparing &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt;, the most meaningful thing to look at is usually not isolated coding prompts, but a process closer to real work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read an existing repository&lt;/li&gt;
&lt;li&gt;Find a bug&lt;/li&gt;
&lt;li&gt;Modify several related files&lt;/li&gt;
&lt;li&gt;Continue fixing based on error messages&lt;/li&gt;
&lt;li&gt;Summarize the result clearly at the end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once the task enters that kind of continuous workflow, context retention, execution habits, explanation quality, and rework rate all matter more than single-turn answer quality.&lt;/p&gt;
&lt;p&gt;That is also why many users eventually do not settle on “using only one model forever” for coding. Instead, they switch their main tool depending on the stage of the task.&lt;/p&gt;
&lt;h2 id=&#34;4-what-is-really-worth-comparing-is-not-who-wins-but-which-tasks-are-more-cost-effective-to-assign-to-whom&#34;&gt;4. What is really worth comparing is not who wins, but which tasks are more cost-effective to assign to whom
&lt;/h2&gt;&lt;p&gt;If you put &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt; side by side and only try to pick one overall champion, the result is usually an empty conclusion.&lt;/p&gt;
&lt;p&gt;That is because real tasks are not one standard exam:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some are one-off generation&lt;/li&gt;
&lt;li&gt;Some are multi-round collaboration&lt;/li&gt;
&lt;li&gt;Some are Chinese writing&lt;/li&gt;
&lt;li&gt;Some are engineering changes&lt;/li&gt;
&lt;li&gt;Some prioritize speed&lt;/li&gt;
&lt;li&gt;Some prioritize stability&lt;/li&gt;
&lt;li&gt;Some prioritize cost&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the approach that is closer to real usage is usually to divide by task goal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you want a more complete overall experience, more mature interaction, and steadier general output, try &lt;code&gt;GPT-5.5&lt;/code&gt; first&lt;/li&gt;
&lt;li&gt;If you want high-frequency experimentation in Chinese, fast iteration, and better efficiency for the money, &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; deserves a serious place in your workflow&lt;/li&gt;
&lt;li&gt;If the task itself is long-chain, multi-round, and collaborative, do not stop at the first result—look at who stays steadier after five rounds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, the real question is not “who is absolutely stronger,” but this:&lt;br&gt;
&lt;strong&gt;for frontend work, writing, and coding, which model feels more like the most practical tool for your current stage?&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;5-how-to-run-a-comparison-that-actually-means-something&#34;&gt;5. How to run a comparison that actually means something
&lt;/h2&gt;&lt;p&gt;If you want to test &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; and &lt;code&gt;GPT-5.5&lt;/code&gt; yourself, a more reliable method is usually not to run a single round, but to do something like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give both models the same initial requirement&lt;/li&gt;
&lt;li&gt;Keep the same constraints on both sides&lt;/li&gt;
&lt;li&gt;Continue asking follow-up questions for three to five rounds&lt;/li&gt;
&lt;li&gt;Record output quality, drift frequency, and rework amount&lt;/li&gt;
&lt;li&gt;Only then compare speed, cost, and final usability&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That kind of test will get you much closer to real work than simply asking who looks more impressive in the first round.&lt;/p&gt;
&lt;p&gt;Especially in frontend, writing, and coding, what often determines the actual experience is not the starting line, but &lt;strong&gt;who can stay with you and help finish the work&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;6-a-simple-way-to-remember-it&#34;&gt;6. A simple way to remember it
&lt;/h2&gt;&lt;p&gt;If you just want a practical summary, you can remember it like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: more like a broad, productized, mainstream default workspace&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;: more like a strong competitor worth bringing into daily workflows in Chinese and in high-frequency trial-and-error work&lt;/li&gt;
&lt;li&gt;The real comparison point: not flashy first-round output, but who stays steadier and saves more effort after multiple rounds of revision&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So in this kind of comparison, what really matters is never just “who won.” It is this:&lt;br&gt;
&lt;strong&gt;for your frontend, writing, and coding tasks, which model makes continuous progress easier, reduces rework, and gives you more stable output?&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
