Tapio is a mobile-first, compile-to-JS programming language designed for low-friction typing. It prioritizes minimal syntax, indentation-based control flow, and unified data structures, making coding on touchscreens or with limited keyboards significantly easier.
Tapio is built with Bun. You'll need to have it installed to build the project.
# Install Bun
curl -fsSL https://bun.sh/install | bashClone the repository and build the standalone binary:
git clone <your-repo-url>
cd tapio
bun install
bun run buildThis will create a tapio executable in the bin/ directory.
You can run .tapio files using the compiled binary:
./bin/tapio examples/example.tapioOr run directly with Bun during development:
bun start examples/example.tapioCheck out the examples/ directory for more sample code, including:
fizzbuzz.tapio- Loops and conditionals.example.tapio- General syntax showcase.
Context-aware assignment. = assigns values at the top level but checks equality inside conditions.
let x = 10
name = "Mobile"
Python-style indentation and colons. No curly braces {} required.
if x = 10:
print "x is ten"
else:
print "x is not ten"
Command-style syntax. No parentheses needed.
print "Hello World"
greet "Duncan"
PHP-like arrays. Uses [] for both Lists and Key-Value Maps.
List:
items = [1, 2, 3]
Map:
user = [name: "Alice", age: 30]
Defined using the fn keyword.
fn greet name:
print "Hello" name
- Run Tests:
bun test - Typecheck:
bun run typecheck - Lint:
bun run lint