Morph

Morph 1.0

Workspace - Launch Week #1

2024-10-28
Keita Mitsuhashi
Keita Mitsuhashi
Co-founder & COO

Today marks the beginning of Morph's first launch week! Over the next five days, we will be releasing articles on the features included in this launch, as well as hosting a variety of offline and online events!

From October 29th to 31st, we will be at ODSC West in San Francisco, where we will have a booth on the 31st.

We will also launch on Product Hunt on October 31st!

Today — on our first day — we will introduce you to Morph's main feature, the Workspace, and show you why Morph makes it faster and more intuitive to use your business data.

Data Management + VS Code + App Screen in One Place

The Morph workspace consists of four tabs and a sidebar.

  • Code: an editor screen for developing code to build data pipelines and data apps on Morph
  • Data: A screen to manage connections to Morph's built-in Postgres, external databases such as DWH, and SaaS
  • Page: A screen to display data apps built on Morph.
  • Job: A screen that manages and monitors the scheduled execution of data pipelines
  • Sidebar: displays AI functions and support functions according to the tab that is currently open.

Let's take a closer look at each one.

Familiar code editor

Every data pipeline or data app built on Morph is managed by code. The code editor is therefore one of the most important features, and if you are a data app developer, it will be where you spend most of your time.

The code editor integrated into Morph is cloud-based VS Code, making it familiar to the vast majority of coders.

Through extensions and settings, you can recreate your favorite code editing experience exactly as you like it!

Behind the Development

To make this experience a reality, we observed and learned a lot from the pioneers of cloud code editors: Codesandbox, Stackblitz, Coder, Replit.

I would like to take this opportunity to pay tribute to all the teams that are trying to advance the development experience in the cloud! And we join the movement in the data arena!

Data Connection and Authentication Management

The first step in building a data pipeline or data app is undoubtedly the connection to the data source. For this reason, we place great importance on data connectivity capabilities.

While similar connectivity features exist in many BI and data app tools, Morph's data connectivity strength is the ease of managing authentication information.

If you have experience with building and running data apps, you can probably relate to the stress of managing the data connection authentication!

When you set up a data connection on Morph, the credentials are stored in a secure location and are automatically reused as long as the credentials are valid.

If the authentication method used for the connection is OAuth, the access token is also automatically updated with a refresh token. This makes it very easy to connect to SaaS services as well as SQL databases.

These features make managing authentication information much easier, so you can focus your time and energy on building the data pipeline and data application instead of fiddling about in settings.

SQL Playground

Once connected to the SQL database, you can issue SQL from within the Morph screen. You can then experiment with various things in the SQL Playground, and when you have your ideal query, you can convert it to a SQL file with the click of a button!

Built-in Postgres

Once the data connection is made, you would then use SQL or Python to do the data transformation and organization.

For example, what if you want to bring in data from Snowflake, build a pipeline, and then store the results back into the database?

Do you want to put it back into the data warehouse? That's also a great option: you could build a flexible reverse ETL on top of Morph, using SQL or Python.

But there are times when you want a small database. A data mart for analysis. For such a case, Morph comes with a built-in Postgres at your disposal.

Behind the Development

Morph's built-in Postgres is implemented using Neon, a serverless Postgres.

Neon is a great open source project that we have been paying attention to since we started chasing the idea of BaaS instead of data workspaces, and we are happy to continue using it as a key element even after we pivoted our idea. I would like to take this opportunity to pay tribute to their continued technological development and contribution to the community. With Morph, we hope to bring the use of Neon as a 'data mart' to our users.

Page: The Data App

Once you have built your data pipeline, including data transformation and visualization, it is time to turn it into an app and share it with your team members.

Morph makes it easy to build interactive data applications using a markdown-based description scheme.

We've made bringing SQL and Python results to the browser screen as simple as possible by providing pre-built components.

Behind the Development

This markdown-based description scheme is achieved by using MDX, which extends the markdown format with React. MDX is used by many blogs and websites built with Nextjs. We are grateful for this wonderful invention and hope to give back to the community by open sourcing some of the tools we developed to build the Morph data app experience in the near future!

The Sidebar: Copilot ++

The idea of having the AI chat in the sidebar is a guiding principle for user experience in the age of AI, as demonstrated by Microsoft, and in many cases is very effective. Not only does this make it easier to access the AI, but it is also very effective in communicating the current user context to the AI.

This is not only effective for AI, but also for a smooth GUI experience.

Sidebars within Morph's workspace dynamically switch between AI functions depending on which tab the user is currently in or which file is open; displaying appropriate help screens or links to help documents, for example.

Morph Framework

The core of Morph is the experience of building data processing in SQL and Python. To ease the workload of engineers responding to requests for high-volume data tasks, Morph provides a framework for easily building SQL and Python data pipelines, pre-installed in the workspace.

Morph's SQL and Python can reference and chain results from other SQL and Python. These dependencies are automatically parsed to visualize the data flow through Canvas and provide the appropriate context to the Morph AI to improve the accuracy of AI support.

The actual code is as follows:

SQL:

{{
    config(
        name = "get_aws_cost",
        connection = "snowflake"
    )
}}
select
    product_code,
    year,
    month,
    unblended_cost as amount
from
    aws_cost

Python:

@morph.func
@morph.variables("start_date", default="2024-07-01")
@morph.variables("end_date", default="2024-07-31")
@morph.variables("product_code", default=None)
def aws_cost_sunryse(context: MorphGlobalContext) -> pd.DataFrame:
  data = context.data["get_aws_cost"]
  fig = px.pie(
        data,
        names='ServiceName',
        values='amount',
        title='Total Cost by ServiceName',
        color_discrete_sequence=px.colors.sequential.Blues,
        labels={'TotalCost': 'Percentage'}
    )
    # Update the layout to show percentage inside the pie
    fig.update_traces(textposition='inside', textinfo='percent')
    return fig

Manage everything in code, but provide a rich set of user-facing features

In this way, Morph's workspace attempts to solve the problems that traditional BI has had, such as high learning costs, high level of gentrification, and low maintainability, by making everything the user builds code-based.

On the other hand, this means a trade-off with difficulty for non-engineering users. We try to reduce this difficulty with a variety of tools built into the workspace and support from Morph AI. We are confident that the software is usable enough for non-engineers at this point, and we will continue to focus on this point in future updates.

Conclusion

This was the first post of the first day of launch week, so it has been a bit long! Thanks for sticking with me all the way to the end.

Tomorrow we will introduce Page, the data app building feature. Stay tuned!