

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234567Default to using Bun instead of Node.js.89- Use `bun <file>` instead of `node <file>` or `ts-node <file>`10- Use `bun test` instead of `jest` or `vitest`11- Use `bun build <file.html|file.ts|file.css>` instead of `webpack` or `esbuild`12- Use `bun install` instead of `npm install` or `yarn install` or `pnpm install`13- Use `bun run <script>` instead of `npm run <script>` or `yarn run <script>` or `pnpm run <script>`14- Bun automatically loads .env, so don't use dotenv.1516## APIs1718- `Bun.serve()` supports WebSockets, HTTPS, and routes. Don't use `express`.19- `bun:sqlite` for SQLite. Don't use `better-sqlite3`.20- `Bun.redis` for Redis. Don't use `ioredis`.21- `Bun.sql` for Postgres. Don't use `pg` or `postgres.js`.22- `WebSocket` is built-in. Don't use `ws`.23- Prefer `Bun.file` over `node:fs`'s readFile/writeFile24- Bun.$`ls` instead of execa.2526## Testing2728Use `bun test` to run tests.2930```ts#index.test.ts31import { test, expect } from "bun:test";3233test("hello world", () => {34 expect(1).toBe(1);35});36```3738## Frontend3940Use HTML imports with `Bun.serve()`. Don't use `vite`. HTML imports fully support React, CSS, Tailwind.4142Server:4344```ts#index.ts45import index from "./index.html"4647Bun.serve({48 routes: {49 "/": index,50 "/api/users/:id": {51 GET: (req) => {52 return new Response(JSON.stringify({ id: req.params.id }));53 },54 },55 },56 // optional websocket support57 websocket: {58 open: (ws) => {59 ws.send("Hello, world!");60 },61 message: (ws, message) => {62 ws.send(message);63 },64 close: (ws) => {65 // handle close66 }67 },68 development: {69 hmr: true,70 console: true,71 }72})73```7475HTML files can import .tsx, .jsx or .js files directly and Bun's bundler will transpile & bundle automatically. `<link>` tags can point to stylesheets and Bun's CSS bundler will bundle.7677```html#index.html78<html>79 <body>80 <h1>Hello, world!</h1>81 <script type="module" src="./frontend.tsx"></script>82 </body>83</html>84```8586With the following `frontend.tsx`:8788```tsx#frontend.tsx89import React from "react";9091// import .css files directly and it works92import './index.css';9394import { createRoot } from "react-dom/client";9596const root = createRoot(document.body);9798export default function Frontend() {99 return <h1>Hello, world!</h1>;100}101102root.render(<Frontend />);103```104105Then, run index.ts106107```sh108bun --hot ./index.ts109```110111For more information, read the Bun API docs in `node_modules/bun-types/docs/**.md`.112
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| K-Mistele/opensearchAGENTS.md · 30 | AGENTS.md | buildtestlint-formatstyle+2 | 94/100 | 14 days ago | |
| K-Mistele/opensearch.cursor/rules/baml.mdc · 30 | Cursor rules | style | 44/100 | 14 days ago | |
| K-Mistele/opensearch.cursor/rules/default.mdc · 30 | Cursor rules | buildtestlint-formatstyle+2 | 94/100 | 14 days ago | |
| K-Mistele/opensearch.cursor/rules/opensearch-project-structure.mdc · 30 | Cursor rules | setupteststylearch+4 | 81/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/k-mistele-opensearch-cursor-rules-use-bun-instead-of-node-vite-npm-pnpm)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.