Settings

Theme

Show HN: Interval 1.0 – Build complete tools with just back end code

interval.com

12 points by alexarena 3 years ago · 2 comments · 3 min read

Reader

Hey HN,

My name is Alex and I founded Interval [0]. We let you build complete internal tools with just backend code. Today we’re excited to launch our 1.0 release.

We built Interval for engineers who love writing code but hate building UIs. Because you build tools with Interval using just backend code (TypeScript/Node or Python), you can focus on what you love – writing the code that makes your tools work – while Interval takes care of the UI, network communication, validation, etc.

Back in June, we shared an early preview of Interval on HN [1] and while our core approach hasn’t changed, we’ve learned a lot and expanded what Interval can do significantly.

A single line of Interval code can now (for example) render a table, prompt a user to verify their identity w/ 2FA, or ask them to upload a file.

Here’s an example of a line of Interval code that you might see in the wild: `const profilePicture = await io.input.file(‘Upload a new profile picture for the user’)`

When that line is reached inside of an Interval action, as your code awaits:

- A file upload dropzone component is rendered to the person using your tool

- The work of transferring the selected file over the network is handled for you

…and when `profilePicture` is returned, you have a soundly-typed object with everything you need including the file name, size in bytes, and its contents as a Buffer.

It’s a subtle unlock, but because all of the code you’re writing is backend code, it becomes much quicker to build tools with Interval vs. anything else we’ve seen before. You can do things like query your database on one line and then pass the results into a table for the user to view on the next.

And if you integrate Interval into your existing backend, you can take advantage of everything in your preferred stack. For example, we use Prisma as the ORM in our main app and reuse the same instance in our internal tools with no additional work.

All of this means you can build a lot with Interval with remarkably little effort. Over the past few months, it’s been common for us to see teams spin up complete admin dashboards or customer support tools in hours instead of days or weeks.

To give you a better idea of what Interval is capable of, we’ve pulled together some more examples on our site. [2] My favorite one so far is a _complete_ tool to ask questions about any Postgres database in plain English, implemented with Interval, the pg Node library, and OpenAI in <80 lines of code.

So that’s Interval. I’m excited to hear what you think + answer any questions. And if you want to start building, our SDKs are available now for JavaScript/TypeScript and Python.

[0] https://interval.com

[1] https://news.ycombinator.com/item?id=31656496

[2] https://interval.com/#examples

nikunjk 3 years ago

Congrats @alexarena and team for launching 1.0! Been following this team for a while and really excited to see their launch. Curious how would you say this is different than retool? Also can you share more on where does the code actually run?

  • alexarenaOP 3 years ago

    Thanks! On the differences between Retool: the output (customer support tools, admin dashboards, etc.) is pretty similar between both products, but _how_ those tools are built is really different.

    Something like Retool gives you a drag-and-drop UI builder, Interval is made for backend devs and lets you create UIs directly in your backend code. So you don’t need to learn another drag-and-drop tool or frontend framework.

    Re: where the code actually runs… this is another really cool component of Interval. We host the UI for you on interval.com but the actual backend code (including everything sensitive like your environment variables, business logic, etc.) runs on your infra and Interval can’t see it by design.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection