TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Observable 2.0, a static site generator for data apps

655 pointsby tmcwover 1 year ago

40 comments

mbostockover 1 year ago
Hey, HN. We’re thrilled to release Observable Framework today — a new open-source tool for developing data apps. I highly recommend viewing this example report adapted from our internal dashboard analyzing web logs:<p><a href="https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;examples&#x2F;api&#x2F;" rel="nofollow">https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;examples&#x2F;api&#x2F;</a><p>This technique of “just plot everything” (7.6M requests as a scatterplot) has revealed surprising insights we’ve used to optimize our servers and better control traffic. We’re also sharing a more traditional dashboard that visualizes the adoption of our open-source visualization library (and in some ways the successor to D3), Observable Plot:<p><a href="https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;examples&#x2F;plot&#x2F;" rel="nofollow">https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;examples&#x2F;plot&#x2F;</a><p>In addition to releasing Observable Framework, we’ve also made Observable free again for individuals (including private notebooks and databases connectors). Let me know if you have any questions!
评论 #39393567 未加载
评论 #39386574 未加载
评论 #39397443 未加载
评论 #39388083 未加载
评论 #39387469 未加载
评论 #39385857 未加载
评论 #39389052 未加载
评论 #39386129 未加载
评论 #39386011 未加载
评论 #39387583 未加载
评论 #39386221 未加载
评论 #39392013 未加载
评论 #39389506 未加载
评论 #39387075 未加载
mbostockover 1 year ago
Another tidbit buried in this announcement is that Observable Framework is 100% vanilla JavaScript syntax — so you get Observable’s reactive runtime without the quirky Observable JavaScript syntax (as in Observable notebooks). And you can use static ES imports from npm or local modules, declare multiple top-level variables in a code block (not just a single named variable per cell), call the built-in display(…) function to put things on the page, etc. It’s a huge relief to have vanilla syntax and greatly improves interoperability. And we’re figuring out how to port these improvements back to Observable notebooks in the near future.
评论 #39386741 未加载
评论 #39386849 未加载
评论 #39388833 未加载
评论 #39389229 未加载
kepanoover 1 year ago
I appreciate the nod to &quot;File over app&quot;[1] in the announcement. It&#x27;s so cool that a Markdown file with code blocks can be the source for complex data visualizations and dashboards. Interoperability of this kind makes me giddy. I played around with editing an Observable site from Obsidian and it works great[2].<p>[1]: <a href="https:&#x2F;&#x2F;stephango.com&#x2F;file-over-app" rel="nofollow">https:&#x2F;&#x2F;stephango.com&#x2F;file-over-app</a><p>[2]: <a href="https:&#x2F;&#x2F;twitter.com&#x2F;kepano&#x2F;status&#x2F;1758202572446581025" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;kepano&#x2F;status&#x2F;1758202572446581025</a>
评论 #39388056 未加载
评论 #39392378 未加载
xrdover 1 year ago
I love Observable. And, this is a phenomenal approach, untethering Observable from observablehq.com. I&#x27;m so excited.<p>It probably goes without saying that EVERYONE should have a blog, and this approach from Observable means journalists everywhere can now easily create a dynamic and information-driven blog. It isn&#x27;t a coincidence that Observable came from a guy that did amazing data visualizations at the NYTimes. We are on the precipice of a major power shift back to journalists and away from dubious corporations, and tools like this enable that transition.<p>(Shameless plug: Svekyll is going towards the same goal. Svekyll is a static site generator inspired by Jekyll. If you want to use Svelte in your blog, check it out. Svekyll bundles the incredible Apache ECharts so you can use echarts in your blog with a few lines of code (and no complicated build process). <a href="https:&#x2F;&#x2F;extrastatic.dev&#x2F;svekyll&#x2F;svekyll-cli" rel="nofollow">https:&#x2F;&#x2F;extrastatic.dev&#x2F;svekyll&#x2F;svekyll-cli</a>. These are ideas I&#x27;ve been thinking about too.)
simonwover 1 year ago
There&#x27;s an almost bewildering amount of interesting ideas buried in this.<p>Things like data loaders which are ANY script that can output data (as JSON or something else) to standard output. Markdown files with ```js blocks in that get executed. The reinvention of the core Observable notebook to avoid custom syntax.<p>This is really big.
评论 #39387748 未加载
评论 #39411024 未加载
评论 #39389918 未加载
ddanieltanover 1 year ago
I&#x27;m super excited to try this out! Couple of questions since I see @mbostock active in the comments.<p>1. Is the flexibility of languages used in data loaders&#x2F;backend going to eventually come to the front end&#x2F;ui? Or will the paradigm always be bring-your-own-language for the data loading but build your dashboard with observablejs&#x2F;observable plot?<p>2. Considering ObservableJS is supported by Quarto, can we look forward to Observable Framework integrated with Quarto too? Or is the fact that the latest Quarto version also featured Dashboards more of a competitor to Framework?<p>3. Saw some comparison to Evidence.dev in the comments. I saw some shades of similarity with the markdown focused dev experience too but I recall Evidence chose Apache Echarts for their main charting library. Any thoughts of the pros&#x2F;cons of Echarts vs ObservableJS&#x2F;Plot?
评论 #39388178 未加载
评论 #39386408 未加载
评论 #39423385 未加载
评论 #39395101 未加载
kuatrokaover 1 year ago
A couple of questions:<p>1. Let&#x27;s say I got a Sqlite&#x2F;Duckdb database file on my server. It&#x27;s got multiple tables and some of them 100M to 150M records. I want to create a plot&#x2F;table that would have a slider&#x2F;filter to only bring and show a slice of data at a time. Since it&#x27;s statically generated data, how is this interactivity achieved? All the possible facets of data filtered by which ever way will be generated? Won&#x27;t it be huge and how long will it take to generates this static data or is there an actual call back to the server to the duckdb file (I assume it works with .duckdb file too?)<p>2. If Observable Framework provides the front-end, does it mean I can use any auth library if I want to create a web site with a log in and subscription options?<p>3. If it&#x27;s a static web page, does it mean that at any time a user views a chart, they will also be able to go to the Dev Tools and download the file with data that&#x27;s behind the viz?<p>4. When (if you can share of course) is the planned release of Plot&#x27;s interactions: zoom, pan, interactive legend, brush?<p>5. Deployment - with big parquet, sqlite, csv files, it&#x27;s impossible to do CI&#x2F;CO through github or vercel and such. Will your hosting services offer an option to host those files and runtimes to generate them?<p>Thanks
评论 #39392659 未加载
评论 #39391838 未加载
jeffbeeover 1 year ago
I am totally psyched up to try this. Observable (1.0) has been a very effective outlet for my research. There is no other platform that could have hosted it and offered me the quick and easy tools to make persuasive visualizations. I was a little concerned when I heard some people got laid off from the company, but it seems like it is still going.
RobinLover 1 year ago
Observable is such an incredible, powerful and enjoyable tool. I use it heavily, including to power my blog. I love it, but I&#x27;ve always had a slight concern about needing to rely on the Observable notebook website. So this has really made my day.<p>To give a sense of the kind of performant, statically hosted interactive content that has only really been within my reach since using Observable, here are some examples:<p>Highly interactive vis: <a href="https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;visualising_fellegi_sunter&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;visualising_fellegi_sunter&#x2F;</a><p>Editable computations that flow through the document <a href="https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;computing_fellegi_sunter&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;computing_fellegi_sunter&#x2F;</a><p>Multiple synced representations of data: <a href="https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;prob_bf_mw&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;prob_bf_mw&#x2F;</a> <a href="https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;partial_match_weights&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;partial_match_weights&#x2F;</a> (half way down, under &#x27;Understanding the partial match weight chart and waterfall chart)<p>Of course, there are a huge number of additional examples: <a href="https:&#x2F;&#x2F;observablehq.com&#x2F;trending" rel="nofollow">https:&#x2F;&#x2F;observablehq.com&#x2F;trending</a> but i think the whole thing makes much more sense to the end-user when embedded (sadly at which point they don&#x27;t even know it&#x27;s observable!)
77koover 1 year ago
This looks amazing! I really like the clear seperation of loading&#x2F;prepping data, and presenting it.<p>Some requests:<p>Add simple examples and more clarity to the publish docs.<p>I assume most ppl would prefer to deploy via github actions[1], which the docs currently just link to a complex deploy file - can you please add some more documentation on this, or add an example of the simplest possible deploy file?<p>Suggestion: is it possible to use a interface (like in vercel) to connect to a github repo and build&#x2F;publish on changes?<p>[1]: <a href="https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;getting-started#deploying-via-github-actions" rel="nofollow">https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;getting-started#deploying...</a>
j-pbover 1 year ago
If you play the history of Observable backwards you start with a company creating a static site generator for dashboards, which then struggles to find a market fit as it tries to bring datascience to middle management, to finally reach a focused, simple and elegant tool for exploratory programming, data visualisation, and interactive documentation in javascript.
评论 #39393316 未加载
beefmanover 1 year ago
No mention of math formatting but from the docs it looks like there is TeX support!<p><a href="https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;lib&#x2F;tex" rel="nofollow">https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;lib&#x2F;tex</a>
评论 #39386689 未加载
lf-nonover 1 year ago
The new direction seems very similar to what evidence has been doing for a while<p><a href="https:&#x2F;&#x2F;evidence.dev">https:&#x2F;&#x2F;evidence.dev</a>
评论 #39385535 未加载
评论 #39386069 未加载
0cf8612b2e1eover 1 year ago
Sounds a bit like the “baked data” pattern. Which I think is a really good idea. I have long been toying with how to use Datasette to make a deliverable dashboard, so this is interesting.
评论 #39385659 未加载
评论 #39385528 未加载
rad_gruchalskiover 1 year ago
Getting started guide: <a href="https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;getting-started" rel="nofollow">https:&#x2F;&#x2F;observablehq.com&#x2F;framework&#x2F;getting-started</a>.<p>Looks very nice!
rogue7over 1 year ago
Interesting pivot from the Observable team.<p>I loved observable and wrote a couple of notebooks, it worked great ! I&#x27;m gonna try Framework asap !
jwilberover 1 year ago
This is really a game changer for creating data apps. I loved observable, but convincing scientists with no js knowledge to try the platform was almost impossible. Markdown + language agnostic loaders seems like the perfect way to collaborate.<p>Are there any plans to allow existing observable notebooks to be deployed? For example, a one-click “deploy” button?
评论 #39386546 未加载
austinpenaover 1 year ago
I&#x27;m curious where this fits in relative to streamlit which I use heavily
johnmorrisonover 1 year ago
This is very cool to see! We&#x27;ve been building something very similar (in some regards, very different in others) in <a href="https:&#x2F;&#x2F;rysana.com&#x2F;bundown" rel="nofollow">https:&#x2F;&#x2F;rysana.com&#x2F;bundown</a><p>Somehow ideas like this emerge in waves seemingly with no coordination, kind of like what happened when Calculus was first invented<p>(Of course there&#x27;s a lot of prior art here but it&#x27;s interesting to see a specific jump towards polyglot single-file Markdown &#x27;apps&#x27; and so on happen around the same time)
mrtimoover 1 year ago
It would be really cool if you guys supported Malloy. Maybe you already do? <a href="https:&#x2F;&#x2F;www.malloydata.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.malloydata.dev&#x2F;</a>
评论 #39386185 未加载
cheptsovover 1 year ago
Congrats on the launch! Excited to hear that you go fully open-source with this! There is a certain need for great visualization tools that enable building apps.
farhanhubbleover 1 year ago
I love how much is possible with the Observable framework and support for libraries like d3.js. However many data apps cannot precompute their outputs. For example, a pipeline that extracts text from documents based on what a user queries, cannot precompute the results and any visualizations must be updated every time. The best hack to accomplish this seems to be rebuilding the app on each update. Or is there another solution?
评论 #39394403 未加载
评论 #39407668 未加载
dleeftinkover 1 year ago
I&#x27;ve setup a codespace starter template that pulls in the required dependencies to start building dashboards with Observable Framework, right inside your browser. You can access the starter template here:<p>[0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;dleeftink&#x2F;observable-codespace">https:&#x2F;&#x2F;github.com&#x2F;dleeftink&#x2F;observable-codespace</a>
tetris11over 1 year ago
I miss source loading D3 into a simple HTML page, and having D3 tutorials that were up to spec with the latest D3 release.<p>Yeah Observable data pages look cool, but it really feels like excessive JS bloat for the features.<p>I think I miss throwing a D3 viz together without having to load an entire framework library.
评论 #39394076 未加载
评论 #39394372 未加载
petreover 1 year ago
ObservableHQ is great but for me this crashed on install. Unfortunately I&#x27;m not aware of any npm mechanism to report errors back to the developers.<p><pre><code> $ npm init @observablehq node:internal&#x2F;errors:477 ErrorCaptureStackTrace(err);</code></pre>
kuatrokaover 1 year ago
Are you planning to add new UI components like Data Table or other in the future or it’s purely Plotting and Data ingestion and the UI through Tailwind or CSS or would it be possible to add UI libraries like shadcn or DaisyUI to make it a full fledged web site? Thanks
评论 #39397815 未加载
one_buggy_boiover 1 year ago
What would be a good design pattern to put these dashboards behind auth? I suppose since they&#x27;re static files you could just serve them with something like FastAPI or Spring Boot and have your CI&#x2F;CD refresh the static files throughout the day on shared storage?
评论 #39393342 未加载
评论 #39392710 未加载
评论 #39392915 未加载
janice1999over 1 year ago
Are there any similar projects that allow you to plot thousands or tens of thousands of datapoints and also allows the viewer zoom into time series plots? I&#x27;d love to have an in-browser matplotlib replacement. So far I haven&#x27;t found one. Observable plots look static.
omneityover 1 year ago
This is super cool! I’ve been looking for ways to integrate Observable with my blog posts and make them more interactive and engaging. This might just be it.<p>Thank you and congrats on the release!
nrjamesover 1 year ago
I love this and hope that a django-observable package comes along that makes it very easy to integrate and serve these static apps through a larger Django site.
nalgeonover 1 year ago
And if you want a simpler tool for creating interactive docs, maybe try Codapi:<p><a href="https:&#x2F;&#x2F;codapi.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;codapi.org&#x2F;</a>
fburnabyover 1 year ago
I can&#x27;t see from the docs what this gives me over a Makefile, Asciidoctor (or pandoc, Jekyll etc), and D3?
vwkdover 1 year ago
How does this compare to a traditional reactive framework like React, Vue, or Svelte with Observable Plot?
CJeffersonover 1 year ago
Can anyone with knowledge of both systems compare this to quarto for me?
评论 #39403941 未加载
yodonover 1 year ago
Lots of good stuff here, but are you really naming your framework &quot;Framework&quot; (as in &quot;With Framework, you can build...&quot;)?<p>You do realize that naming only makes sense inside your own company, right? To everyone who uses it, it&#x27;s &quot;a&quot; framework or &quot;Observable&#x27;s framework&quot;. No consumer of the framework is going to refer to it as &quot;Framework&quot; without ridiculous amounts of confusion resulting.
评论 #39386112 未加载
评论 #39385330 未加载
评论 #39385928 未加载
coolcaover 1 year ago
It is so beautiful
terpimostover 1 year ago
Wow guys. That is so cool! Thank you for what you do. This is a great example of high quality product!
greenie_beansover 1 year ago
this is exciting. love observable.
评论 #39398179 未加载
foolswisdomover 1 year ago
I really like this idea.
lloydatkinsonover 1 year ago
There are simply too many tools and sites called Observable