Newt, the third prototype

R. S. Doiel,

Caltech Library, Digital Library Development

What is Newt?

Findings from Prototype 2:

Is Newt and “off the shelf” software enough to create metadata curation applications?

Short answer is yes. Longer answer is more nuanced.

Findings from Prototype 2:

Is Newt and “off the shelf” software enough to create metadata curation applications?

  1. Newt’s YAML file can grow very large for applications with many data models
  2. Model vetting and validation should happen early in the data pipeline, ideally as a generated program and browser side
  3. Postgres+PostgREST is a powerful combination but it’d be nice to have something simpler
  4. Managing the YAML file can be done conversationally

Questions raised by Prototype 2:

High level Concepts (remain the same)

Implementation Concepts (remaining the same)

Themes (remains the same)

Goal of Prototype 3: Questions to explore

  1. What should the default JSON data source be? (dataset+datasetd or Postgres+PostgREST)
  2. Is generated TypeScript middleware the right fit? (e.g. validation service, template engine)
  3. Is Handlebars a good fit for managing data views and rendering HTML?
  4. Should the template engine be generic or a generated TypeScript program?

Goal of Prototype 3: Extra credit question

Changes from last prototype

Off the shelf (no coding)

Other Off the self

Assemble app from YAML (less coding)

How are data models described?

How do I think things will work?

  1. Interactively generate our application’s YAML file
  2. Interactively define data models
  3. Generate our application code
  4. Run newt generate ... for primary data source
  5. Run newt run ... to run the application

Steps one and two are interactive

  newt init app.yaml
  newt model app.yaml

Step three, generate our code

  newt generate app.yaml

Create a dataset collection and datasetd YAML file Render Handlebars templates Wires up routes Adds tasks to deno.json

Step four, setup primary JSON data source

Dataset collection

Collection generation is done “auto magically” by newt generate app.yaml datasetd YAML file gets generated so Newt can run the datasetd JSON API

Step five, run your application and test

  newt run app.yaml

Point your web browser at http://localhost:8010 to test

Can I run a demo?

Not yet, hopefully in early December 2024.

Third prototype Status

How much is built?

Insights from prototypes 1 & 2

Insights from prototypes 1 & 2

What’s next to wrap up prototype 3?

Out of the box

Unanswered Questions

Someday, maybe ideas

Thank you!