What demos of the Isomorphic-crystal framework would you like to see?

I was thinking of preparing a demo for:

  • A to-do list.
  • A calculator (a “pocket calculator for desktop”).

If you have any requests, please le me know!

1 Like

I suggest the following:
Add, edit, and delete to-do items.
Organize to-do items into categories or projects.
Set due dates and priorities for to-do items.
Receive notifications about upcoming to-do items.
Integrate with other productivity tools.

You can also show how your to-do list and calculator can be used together to improve productivity. For example, you could show how to create essay to-do items based on the results of calculator calculations or use the calculator to track the progress of to-do items.

1 Like

Thank you for your suggestions. In the meantime, I have been working on a file manager (the calculator and the todo-list app will be next). I will put a notification on the Crystal Forum when the new version is ready.

The 7GUIs benchmarks




Added alpha version of file picker demo to Isomorphic Crystal repo:

@serge-hulne I only see the “Get Full Name”, “Increment Counter” and “Reset Counter” in this demo.
Did you push your latest version?

Yes. I Just tested it again.

You should see:

PS: The Ajax feature is on the page “State demo”

The instructions are:


  1. git clone https://github.com/serge-hulne/isomorphic-crystal-view
  2. cd isomorphic-crystal-view
  3. shards install
  4. make
  5. ./MyApp
  6. Edit : ./src/gui/app.cr and ./src/gui/app_actions.cr to create your own app.

If you can see this in app.cr, you have the latest version:

# Form 1

class Form1
  include Blueprint::HTML

  def initialize(@state : State = state)

  private def blueprint
    # including 'Links'widget
    render Links.new

    # Global style
    style { picoCSS }

    # Local widget Style
    style { LocalCSS }

    script src: "https://unpkg.com/htmx.org@1.9.6"

    div class: "main" {
      article {
        input type: "text"
      article {
        # first form (uses Ajax, via HTMX) : Only redraws the target element, NOT the enrire page.
        form {
          input "type": "submit", "value": "Increment counter, version 1", "hx-post": "/increment_2", "hx-target": "#counter"
        # second form (Classical form) redraws the entire page
        form action: "/increment_1", method: "POST" {
          input type: "submit", value: "increment counter, version 2"
        # classical HTML form
        form action: "/reset_1", method: "POST" {
          input type: "submit", value: "Reset counter"
      article {
        label id: "counter" { "State : #{@state.count}" }
        label { "State : #{@state.lname}" }
        label { "State : #{@state.fname}" }
    div class: "message" { "state demo" }

@serge-hulne when cloning from what github offers in the green Code button:


I get the newest version with te file picker.

Thank you for your support

You’re welcome!

I was wrong, there was indeed a mixup on the repository.

It should work as intended, now.