# Flash DS vs a Hand-Built Tailwind Theme > Hand-writing a Tailwind theme is free and gives total control. It also takes weeks, covers one surface, and starts drifting the day someone opens Figma. - Source: https://flashdsm.com/compare/manual-tailwind-theme - Site: Flash DS (https://flashdsm.com) - Updated: 2026-08-06 --- ## The short answer Hand-building a Tailwind theme costs nothing but time and gives complete control over every value. Its two real costs are the weeks spent getting to a coherent scale, and the fact that the theme only covers your codebase, so Figma and any AI tooling immediately begin drifting away from it. ## What a hand-built Tailwind theme does well It is free, it has no vendor in the loop, and the output is exactly what you decided it should be. For a developer who knows precisely what they want and has a strong opinion about scales, hand-writing the config is fast and completely adequate. ## At a glance | Capability | Flash DS | a hand-built Tailwind theme | | --- | --- | --- | | Cost | From $9/month | Free, apart from the time | | Time to a coherent system | About a minute, then editing | Days to weeks, spread across other work | | Control over values | Full, through the editor | Full, by definition | | Dark mode | Generated alongside light as one system | A second pass, often much later | | Figma stays in step | Plugin transport with reviewable diffs | Manual, so it does not | | Component specifications | Generated and mapped to tokens | Whatever gets written along the way | ## The honest case for doing it by hand Most teams should be able to write a Tailwind theme. It is a config file. If you know your brand colours and have opinions about spacing, you can have something workable in an afternoon, and it costs nothing. This page is not going to argue that is a bad idea. It is going to argue about what happens in month four. ## Where the time actually goes The afternoon version is not the expensive part. The expensive parts are the ones nobody estimates: - Producing a colour **scale** rather than a colour. Nine steps that stay perceptually even and hold contrast at every pairing is genuinely hard, and eyeballing it produces scales that look fine until a designer uses step 400 on white. - Dark mode, which is not the light theme inverted, and which usually arrives months later as a retrofit across every component. - Semantic naming. `blue-500` is a value. `--color-action-primary` is a decision. Teams that skip the semantic layer end up unable to rebrand anything. - Accessibility checks across the pairings people actually use. - Component specifications, which get decided implicitly, one pull request at a time, by whoever writes the component first. None of that is hard in isolation. It is just a lot of small decisions, made under deadline, usually by one person who is also shipping features. ## The drift, which is the real cost A Tailwind theme covers your codebase. That is its scope. Your designers are in Figma, working from a file whose colours were set by hand and which nobody updates when the config changes. Your engineers using Cursor or Claude Code get components with invented hex codes, because the model cannot read `tailwind.config.js` unless someone thought to hand it over. So you have three copies of the design system: the config, the Figma file, and whatever the AI produced last. They agree on the day you set them up and never again. ## What Flash DS changes The generation part is the obvious difference: a full scale, both modes, semantic naming and component specs in about a minute instead of across several weeks. The part that matters longer is that the Tailwind config stops being the source of truth and becomes an **output**. The tokens are the source. The config is generated from them, and so are the CSS custom properties, the Figma variables, the Tokens Studio JSON and the context an AI agent reads over MCP. When a value changes, everything downstream changes with it, and a Figma publish comes back as a reviewable diff rather than a message in a design channel. ## The lock-in question Reasonable objection: a hand-written config is yours forever, and a tool is a dependency. Flash DS outputs plain text. A `tailwind.config.js` extension, a `tokens.css` of CSS custom properties, standard JSON. No proprietary runtime, no import from a package you have to keep paying for. If you stop using it, you keep the files, and they are the same files you would have written by hand. ## Common questions ### Is it worth paying for a design system tool when Tailwind is free? It depends on which cost is larger for your team. Hand-writing a Tailwind theme is free but takes days to weeks to reach a coherent scale with dark mode and semantic naming, and it only covers the codebase. A generated system covers Figma and AI tooling from the same source, which is where hand-built themes usually start drifting. ### Does Flash DS lock me into a proprietary format? No. Exports are plain text with no proprietary runtime: a Tailwind config extension, CSS custom properties, Tokens Studio JSON and Figma variables. If you stop using Flash DS you keep the files, and they are the same files you would have written by hand. ### Can Flash DS generate a Tailwind config from my existing site? Yes. Paste a live website URL and Flash DS extracts the colours, typography, spacing, radius and shadows in use and turns them into structured tokens, which export as a Tailwind configuration. Scanning a URL does not require an account.