/nipp

🎒 Programmable portable App hosted on URL: https://nipp.nwtgck.org

Primary LanguageVueMIT LicenseMIT

Nipp

main CircleCI
Launch now as Web App

Programmable portable App hosted on URL https://nipp.nwtgck.org
Nipp is inspired by itty.bitty.

Nipp Word Count

Purpose

The main purpose is to keep code safe in URL. Even if the service is shutdown, the code stays alive in URL. You don't lose time and efforts to write a code. You can save a code as a bookmark easily.

Features

  • 🎒 Portable
    • Application is hosted only on URL!
  • Real-time response
    • All computation is done on client!
  • ☁️ No-server side execution
    • Nipp site is static hosted.
    • Your code are not sent to the web server
    • PWA - Progressive Web Apps

Quick Start

Try on https://nipp.nwtgck.org/#Simple_Word_Count//K9YrLsjJLNFQV1DX1CvOrEoFAA==, which counts the number of words!
Then, you can create your own apps!

Example Apps

(NOTE: The original source of World Clock is located at https://shimz.me/blog/d3-js/4360. Thank you very much, SHIMIZU-san!)
(NOTE: The original source of 2048 Game is located at gabrielecirulli/2048. Thank you very much, the creators!)

Ruby

Default language of Nipp is Ruby because Ruby makes us comfortable to write program!
Nipp is highly powered by Opal, which is a transpiler to JavaScript. Thank you very much, Opal project!

Also JavaScript Not Only Ruby

Nipp is not only for Ruby. JavaScript is also available. Here is Tetris on Nipp! Nipp Tetris

Try on https://nipp.nwtgck.org/#Tetris/es2017/bU/bSuNQF... The Tetris program is from an Japanese article - Commentary of Only 565 Bytes Tetris Programming.

URL Structure

Here is a structure of Nipp URL.
nwtgck.github.io/nipp/#<Page Title>/<Options>/<Compressed Code>

  • <Page Title> is title of your app
  • <Options> can be es2017, lzma, es2017,lzma, lzma,es2017 or etc.
  • <Compressed Code> is code compressed by deflate (no header, no checksum) or LZAM for now and encode it by Base64

Note that <Page Title>, <Options> and <Compressed Code> are under URL fragment #. This means your code is not send to Nipp web server!

Options

  • es2017: Use ES2017 (default: Ruby(Opal))
  • func_es2017: Use ES2017 but evaluated by (new Function(...))() not eval(), so output is always empty but faster
  • lzma: Compress code by using LZMA (default: deflate)
  • click_run: Click to run not real-time evaluation
  • promise_wait: Wait for Promise evaluation in output

PWA - Progressive Web Apps

Nipp runs even offline! Note that Nipp is available in flight mode ✈️.

Nipp PWA

Examples of promise_wait

Logo

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY