Skip to content

Try Jech directly in your browser with our online playground. Code, run, and see the results in real time!

Notifications You must be signed in to change notification settings

joaoluke/jech-platform

Repository files navigation

Jech Programming Language

License: MIT GitHub stars GitHub issues

Jech is a modern, expressive programming language designed to be both beginner-friendly and powerful for experienced developers. With its clean syntax and WebAssembly-based execution, Jech makes it easy to write, test, and deploy code right in your browser.

✨ Features

  • Clean, readable syntax - Focus on your code, not on complex syntax
  • WebAssembly-powered - Blazing fast execution in the browser
  • Interactive playground - Test code snippets instantly
  • Modern web interface - Beautiful dark theme with syntax highlighting
  • Zero-dependency - Runs entirely in the browser with no server required
  • Responsive design - Works on desktop and mobile devices

🚀 Quick Start

Try Jech directly in your browser with our interactive playground. No installation needed!

// Hello, World!
say("👋 Hello from Jech!");

// Variables and types
keep name = "Jech";
keep version = 1.0;
keep isAwesome = true;

// Conditional statements
when (version > 0.5) {
    say(name + " is stable!");
} else {
    say(name + " is still in development!");
}

// Functions
do greet(name) {
    return "Hello, " + name + "!";
}

// Function calls
say(greet("Developer"));

// Loops
for (keep i = 1; i <= 3; i = i + 1) {
    say("Count: " + i);
}

📚 Documentation

Explore the complete documentation to learn about Jech's syntax, features, and standard library.

🛠️ Development

Prerequisites

  • Modern web browser (Chrome, Firefox, Safari, or Edge)
  • (Optional) Local web server for development

Running Locally

  1. Clone the repository:

    git clone https://github.com/joaoluke/jech.git
    cd jech/jech-platform
  2. Start a local web server. For example, using Python:

    python3 -m http.server 8000
  3. Open your browser to http://localhost:8000

Project Structure

jech-platform/
├── index.html          # Landing page
├── playground.html     # Interactive code editor
├── docs.html           # Documentation
├── styles/             # CSS styles
│   ├── styles.css      # Global styles
│   └── playground.css  # Playground-specific styles
├── js/                 # JavaScript files
│   ├── animations.js   # UI animations
│   └── playground/     # Playground logic
│       └── wasm-loader.js  # WebAssembly loader
└── wasm/               # WebAssembly files
    ├── jech.wasm      # Jech interpreter (WASM)
    └── jech.js        # Emscripten loader

🌐 Deployment

This project can be deployed to any web hosting service. Important: The playground requires proper CORS headers and WASM support, so a simple static file host may not work correctly.

Recommended: Vercel Deployment (Configured)

The project includes vercel.json with proper configuration for WASM files and CORS headers:

  1. Install Vercel CLI (optional):

    npm i -g vercel
  2. Deploy from the project directory:

    vercel
  3. Or connect your GitHub repository to Vercel:

    • Go to vercel.com
    • Import your GitHub repository
    • Vercel will automatically detect the configuration
    • Deploy!

The vercel.json configuration ensures:

  • ✅ Proper WASM MIME types (application/wasm)
  • ✅ CORS headers for SharedArrayBuffer support
  • ✅ Correct routing for all pages

Alternative Hosting Options

  • Netlify - Add _headers file for WASM support
  • GitHub Pages - May have CORS limitations
  • Cloudflare Pages - Good WASM support
  • Custom server - Use the included package.json scripts

GitHub Pages Deployment

  1. Push the public directory to the gh-pages branch
  2. Enable GitHub Pages in your repository settings
  3. Your site will be available at https://<username>.github.io/jech-platform/

Note: GitHub Pages may have limitations with WASM and CORS headers.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • The Jech community for their support and feedback
  • All contributors who helped improve the language
  • The WebAssembly and Emscripten teams for making this possible

Made with ❤️ by the Jech Team

About

Try Jech directly in your browser with our online playground. Code, run, and see the results in real time!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published