Why another format?

Because config files should be easy for humans to write.

JSON has no comments, demands quotes on every single key, and crashes if you accidentally leave a trailing comma. It was built for computers to talk to each other, not for humans to write by hand.

JASD (Just Another Static Database) solves this. It keeps the familiar bracket structure of JSON, but removes the annoying rules. Plus, it comes with powerful tools to read, write, and search your files.

Simple Syntax

Keys don't need quotes. Trailing commas won't break it.

Native Comments

Use -- to write notes anywhere in the file.

Python Library

Instantly pip install jasd to filter data and do math.

Cross-Platform

Use it in Windows with the CLI, or in web browsers.

Quick Start

Everything you need to know to get started.

1. The Python Library

If you are building a backend, a Discord bot, or a data script, JASD is a native Python package. You can install it instantly using pip.

bash
$ pip install jasd

2. The Web Engine

If you want to load `.jasd` files into a website, you don't need Python. You just need the jasd.js parser file. Place it in the same folder as your HTML.

index.html
<!-- 1. Load the parser --> <script src="jasd.js"></script> <script> // 2. Fetch your data file fetch('data.jasd') .then(res => res.text()) .then(text => { // 3. Parse it into a JS array const data = parseJasd('data.jasd', text); console.log(data); }); </script>

3. The Windows CLI

If you want to view, format, and compile files visually, download the jasd-setup.exe installer from the top navigation. It adds the jasd command to your system.

4. Editor Syntax Highlighting

To make your .jasd files colorful in VS Code, Pulsar, Notepad++, or Vim, paste this single command into your terminal. It automatically detects your editor and installs the highlighting.

🛡️ Is this safe? Yes. Because the command is very long, it looks like a virus. All it does is look for your editor's folder and write a tiny .json or .xml file that tells the editor what colors to use. It does not download anything from the internet or run in the background.
Terminal
python -c "import os,json; h=os.path.expanduser('~'); g={'name':'JASD','scopeName':'source.jasd','fileTypes':['jasd'],'patterns':[{'match':'^\\s*--.*$','name':'comment.line.jasd'},{'match':'\\[|\\]|\\{|\\}','name':'punctuation.section.block.jasd'},{'match':'\\b[A-Za-z0-9_-]+(?=\\s*:)','name':'entity.name.tag.jasd'},{'match':'\"[^\"]*\"|\'[^\']*\'','name':'string.quoted.jasd'},{'match':'\\b(true|false|yes|no)\\b','name':'constant.language.boolean.jasd'},{'match':'\\b\\d+\\b','name':'constant.numeric.jasd'}]}; v=os.path.join(h,'.vscode','extensions','jasd-language','syntaxes'); os.makedirs(v,exist_ok=True) if os.path.exists(os.path.join(h,'.vscode')) else None; json.dump({'name':'jasd','displayName':'JASD','version':'1.0.0','engines':{'vscode':'*'},'contributes':{'languages':[{'id':'jasd','extensions':['.jasd']}],'grammars':[{'language':'jasd','scopeName':'source.jasd','path':'./syntaxes/jasd.json'}]}}, open(os.path.join(h,'.vscode','extensions','jasd-language','package.json'),'w')) if os.path.exists(os.path.join(h,'.vscode')) else None; json.dump(g,open(os.path.join(v,'jasd.json'),'w')) if os.path.exists(os.path.join(h,'.vscode')) else None; p=os.path.join(h,'.pulsar','packages','language-jasd','grammars'); os.makedirs(p,exist_ok=True) if os.path.exists(os.path.join(h,'.pulsar')) else None; json.dump({'name':'language-jasd','version':'1.0.0','engines':{'pulsar':'*'}}, open(os.path.join(h,'.pulsar','packages','language-jasd','package.json'),'w')) if os.path.exists(os.path.join(h,'.pulsar')) else None; json.dump(g,open(os.path.join(p,'jasd.json'),'w')) if os.path.exists(os.path.join(h,'.pulsar')) else None; npp=os.path.join(h,'AppData','Roaming','Notepad++','userDefineLang.xml'); xml='\n\n\n\n\n\n\n'; open(npp,'w').write(xml) if os.path.exists(npp) else None; vimdir=os.path.join(h,'.vim','syntax'); os.makedirs(vimdir,exist_ok=True) if os.path.exists(os.path.join(h,'.vim')) else None; vimscript='syntax keyword jasdKeyword true false yes no\nsyntax match jasdComment \"--.*\"\nsyntax match jasdString \"\\\".*\\\"\"\nsyntax match jasdNumber \"\\d\\+\"\nhighlight link jasdKeyword Keyword\nhighlight link jasdComment Comment\nhighlight link jasdString String\nhighlight link jasdNumber Number'; open(os.path.join(vimdir,'jasd.vim'),'w').write(vimscript) if os.path.exists(os.path.join(h,'.vim')) else None; print('✅ Done! Restart your editor.')"

Syntax Guide

It's just JSON, but without the headaches.

JASD supports arrays, nested objects, booleans, and native comments.

data.jasd
JASD-V1 [ { id: 1 name: "Hades" price: 25 inStock: true tags: [roguelike, action] -- This is a native comment }, { id: 2 name: "Minecraft" price: 30 inStock: false tags: [sandbox, survival] } ]

Data Types

JASD automatically infers types without you needing to specify them.

  • Numbers: Parsed as floats/integers (e.g., 25, 3.14).
  • Booleans: true, false, yes, no are evaluated as native booleans.
  • Arrays: Enclosed in [] and comma-separated.
  • Strings: Any bare word. Quotes are optional unless the string contains a colon.

Python Library

Data science, automation, and backend queries.

The Python version is not just a parser; it's a full data processing toolkit. You can import it just like the standard json library.

Python
from jasd import load_file, query, sum_data data = load_file("games.jasd") # SQL-Style Querying cheap_rpgs = query(data, "price < 30 and category = RPG") # Built-in Math Engine total = sum_data(data, "price")

Advanced Features

  • from_csv() and to_csv() for Excel/Pandas integration.
  • find_duplicates() to clean up your databases.
  • dump_secure() to encrypt your data files with a password.

Web Engine

Use JASD directly in the browser.

You don't need Python or a CLI to view JASD files on a website. We provide a tiny JavaScript file (jasd.js) that can fetch and render your data instantly.

index.html
<script src="jasd.js"></script> <script> fetch('data.jasd') .then(res => res.text()) .then(text => { const data = parseJasd('data.jasd', text); console.log(data); // Your data is now a JS array }); </script>

CLI Engine

Manage your data visually from the Windows terminal.

Compiled in Go, the CLI launches a Terminal UI (TUI). Try it below by clicking, then using your Up/Down arrows and Enter.

Q&A

Frequently asked questions.

Is JASD faster than JSON?

For small config files, they are roughly the same speed. However, because JASD ignores strict formatting rules like missing commas or unquoted keys, the parser uses a slightly more forgiving regex/tokenizer, which means for massive files (10,000+ rows), JSON might technically parse in 10ms while JASD parses in 12ms. The tradeoff is worth it for human readability.

Can I use this in a real production environment?

Yes! The Python library is fully published on PyPI, and the Go CLI compiles down to a standalone binary. As long as you test your implementation, it is just as stable as JSON.

Why does the file need to start with JASD-V1?

This is called a "Magic Header". If you accidentally try to parse a `.json` or `.txt` file, the parser will instantly throw an error saying "Missing JASD-V1 header" instead of trying to guess and crashing. It also allows us to release JASD-V2 in the future without breaking older files.

Can it handle nested objects and arrays?

Absolutely. Even though you don't need quotes, JASD uses the same `{}` and `[]` bracket structure as JSON, meaning it can nest data as deeply as you need.

Was this language Vibecoded?

Not exactly. The logic and this website were made by a real human. The small templates were generated by AI so they could be simpler than mine.