This is pretty nice! It's not always obvious how much engineering it takes to make an app like this that's powerful enough to be useful for daily work without the UX getting in the way.
I think this is the closest I've seen anyone come to solving the problem of having separate "write" and "read" modes for Markdown editing in a web browser without resorting to a split-screen view. It's not _perfect_ (likely due to codemirror limitations) but what's there is pretty well-executed.
I might have to borrow a couple ideas from this for my own effort at a personal knowledge base: https://github.com/cu/silicon
My biggest frustration with Obsidian is that it doesn't follow any spec when it comes to raw HTML. They seem to have fixed inline raw HTML at some point but HTML blocks are still broken. They know it and they explicitly will not fix it.
I never use split-screen view for Markdown. Split-screen makes sense for something more abstract like latex or html. But I do not see the benefit for Markdown. I would much rather have 50% of my screen.
I was in my car when I first saw this thread, and was already impressed that it worked well right away on my phone (the surprise "you're looking at it right now; go ahead and edit!" half way down the website worked great on the phone too).
Then I got home and installed it on my desktop computer. First impressions:
- works great, already high level of functionality
- pasting images works as it should (but usually doesn't, sadly)
- not only open source, but enticing open source: extremely easy to install, TypeScript/esbuild on frontend, Deno/Oak on the backend, and you can spin up a local dev version of it in about one minute.
I check out every new thing I come across in the Obsidian/Logseq/open-format-PKS space, but this project looks especially interesting. I will definitely clone this and try hacking on it tonight after work.
Interesting project.
It says it is inspired by obsidian (and roam).
It is also keen on "end-user Programming", so the org-mode (and org-roam) comparison is inevitable on HN (20 emacs occurences in this thread and counting...)
So, what is special?
It is polish (=creator [4]). does that count? [0]
Seriously. For one thing, I spotted the "item" and "data" as queryable data sources [1]. if this is real "block level querying" (in that freeform page format), it could be indeed a missing link between obsidian and roam/logseq [0]. It is still early days though.
[0] Outside English-speaking/Western-Europe, Siuyan [2] is another local open source KB gem that successfully bridged this (blocks + freeform) gap with a very fast dev cycle. Being Chinese, It is not popular... wait.. what about logseq [3] ? (obsidian too? no.)
Zef here ([4]), the end user programming aspect is very much in development and its exploration phase. It’s not even so much about implementing it, more the design of how to make or useful and how to use it. Any input on this is very much appreciated. I try to take inspiration from Obsidian Dataview, LogSeq and others on this.
> more the design of how to make or useful and how to use it
Yeah 100%. Emacs is almost 50 years old and still very popular. You can't beat it on programming power. Personally, I am not an emacs person (I'm even more notion than obsidian), so I understand your selective, design first approach to this.
> take inspiration from Obsidian Dataview, LogSeq
IMO
1. Obsidian Dataview should have been editable by design (not to say batch-editable)
2. Obsidian creators should have leveraged their dynalist (outlining) heritage into their newer product.
Your project is still young of course (I like it so far !) but some features are better kept in mind from the start. I hope you will take the best of both world (= see my "block level querying" remark in previous post)
Making views editable is quite challenging. Especially in the general case. For tasks specifically this works, you can query them somewhere and when you toggle their completion state this gets propagated back. Editing other attributes is more tricky.
If it’s really going to go down this route then really someone should write one (an extensible PKM app) in a quicker language like Rust, Go or Swift. It’s an Electron app, if people are going to add massive amounts of plugins it’s going to become a resource hog before too long.
Even a completely empty Obsidian vault with no plugins is slow to load on iOS (although I am still running on an 8 plus so it might be quicker on more modern hardware). I actually capture any new notes when I’m out and about in 1Writer because it loads instantaneously then move them into Obsidian when I’m on my Mac at a later date. I only use the obsidian mobile app now if I want to specifically look up or modify an existing note.
I’m not a massive fan of all these extensions for Obsidian tbh, it seems to go against the grain of what the whole thing was originally meant to be about which was basically a note taking tool that had back links and block inclusion like Roam but one that was also portable due to it being markdown. Now people are just writing reams of config in code blocks inside markdown files which are going to be completely useless outside Obsidian unless someone is going to port that plugin to whatever application you want to migrate to. Plugins that add functionality that work within the existing markdown format are ok such as the Calendar plugins, advanced tables, natural dates etc but the config based plugins are no bueno as far as I’m concerned. If they become syntaxes like fountain or mermaid with a life outside of Obsidian I’d consider using them but until that day I will most likely steer clear.
This looks pretty neat so far, and I'll probably try it out. What I really liked from the demo was that the queries get rendered into the actual markdown file.
I've been using Obsidian a lot lately, and one of the downsides to something like the dataview plugin is that the results of the queries are only available within the app. I can't open up the .md file in vim/emacs/vscode and see the same results.
With emacs, I relied quite a bit on this sort of functionality too so it's been annoying me lately to not have it.
I love Emacs. It’s my daily driver IDE and I use it for everything involving text. That said, I can’t help it: I love shiny UIs, instant cloud syncing, and top-notch mobile apps. Plain Org, beorg, and Logseq make decent apps for reading content on the go, but they’re completely different from Emacs for editing and writing new content when I’m on my iPad. I have to learn at least two different apps for accessing the same data, and their feature sets aren’t identical in any case.
If I could run Emacs natively on my iPad, I’d be all-in on org-mode. But I can’t, so I’m not.
> I understand that emacs is a big ask for someone to learn
Developing a PWA for it (basically bikeshedding) is much more painful than learning Emacs. Right now, any vim user can jump into emacs with very little friction -- Doom Emacs comes fully configured with evil-mode ootb, and is easily customizable.
I think the reason for the glut of personal kb apps is the relatively high interest of most "tech" people in these things. Unfortunately, most people bow out of their systems very often -- they either don't handle enough data or they give up on old data (or have it ineffectively categorized).
This app (aka "this week's personal knowledge manager") is the same as every other one out there. There's some trying to use GPT-3, but honestly, I don't want my apps parsed by an internet-slurry model. When (if, really) it gets good enough, one wouldn't need to take notes in the first place.
> This app (aka "this week's personal knowledge manager") is the same as every other one out there
That take is just... wild.
I've been following this space intently for two decades. The past couple years have seen revolutionary, fantastical advances. Obsidian 1.0 like just came out in September of this year! A huge milestone, but with Logseq chasing them and seeming only a months behind them (and more open source to boot).
Even the slow, web-bound proprietary dinosaurs they are replacing — Notion, Roam, etc — are only a few years old, and in their time (which is now over) those represented huge advances over clunky Evernote, OneNote, and their ilk.
All building on the shoulders of ancient, more limited tools like nvAlt, VoodooPad, Tiddlywiki, etc etc etc.
We're right on the cusp of having a bunch of choices that can help manage all your notes, including your own and your collections of other people's, with images and video and audio and PDF etc, storing it all in non-proprietary open formats, on your own infrastructure (if you want, or cloud if you prefer), with familiar and easy GUI clients for all your devices, that stay synchronized whether you prefer to pay to make that easy or prefer to leverage the open standards and do it all yourself... and we're just getting started with the potential integrations and do-it-yourself add-ons that are enabled by the basis in common/open standards.
I think has been and continues to be one of the most interesting spaces in all of computing. (Sure GPT-3 and friends are interesting, but emerging solutions in this space are also useful, and to a huge number of people to boot.)
Currently I am prototyping a web-based, collaborative approach which provides basic building blocks and allows the end-user to create and modify their own application in realtime as they use it through a plugin system, using a simple and configurable input/output system to configure data flow between plugins/panes/components.
My hypothesis is that a more modular approach is the next emergent layer of productivity. A collaborative workflow synced between multiple devices and users in realtime, with an in-app repository for new components and workflow layouts. Think foobar2k but for productivity. Google Apps on crack, where users can modify the application itself in realtime in addition to context.
The problem with other solutions is they solve one thing really well and then rely on a plugin system to fill the gaps. I'd rather see what an approach where each component does something simple but is a greater part of a larger, bespoke workflow. bash-utils for GUI-oriented, networked productivity. Currently, we have to rely on non-realtime, multi-application workflows with rigid, non-transparent data pipelines. Creating a cohesive workflow requires significant specialization, while also locking you in to a specific, non-malleable workflow dictated by app developers.
This isn't a new field -- there have been people who have now closed shop for longer than they were ever active. It's just the influx of a large number of interested people online that have discovered digital tech that's pushing people to make more of these interfaces. None of these organizational structures are inventive or the end-all -- they all use the same methods to store and organize data, the only difference is how well they reduce the friction required for data entry. There's nothing these systems do that couldn't have been replicated 20, 30 years ago. Really, they hardly ever move past the paper paradigm.
GPT-3 et al are a different thing though, and I reckon when they're good enough to be frictionless, the majority of people will stop taking notes altogether. The popularity of this field is solely based on how long it takes for people at OpenAI and others (Stability) to drive down costs to deliver ~1M words/mo to the average customer.
These will all go the way of the phonebook. There'll be "look how my model tears your markdown notes" contests.
> None of these organizational structures are inventive or the end-all
Sure, but that isn't the important thing. The organizational structures and theories/philosophies are already mainly "good enough".
The important thing is making that power available in a useful form.
It's the software around them that has never been good enough — not even for just entering the images/data/notes/ideas. And you can't derive any value later from data that wasn't entered in the first place.
> nothing these systems do that couldn't have been replicated 20, 30 years ago
Hard disagree. One of my important use cases is: "paste PNG/JPEG image data from the clipboard, and instantly display it where pasted — while, behind the scenes converting that to an image file on disk and the (open) standard markup to make this data compatible with 1000s of other tools — and sync all of that to all other devices within a few hundred milliseconds"
You couldn't do that even 5 years ago. With any tool, AFAIK. (And I was looking.)
It's about the software, not the organizational structures.
It is revolutionary in precisely the same way as having good cameras in smartphones is. Many, many people take 1000x more photos today than they did in 2002 — and with good reason! It's super easy. And it's now easy — as opposed to basically impossible — to make use of them later. Can't remember where you bought that thingamajing? Just search for the snapshot of the receipt you took 4 years ago on your phone.
This generation of tools is bringing this kind of organizational power to people who have never had it before — not because they technically could't have used the older, more cumbersome, slower, less capable system — but just because they don't need it badly enough to make the investment of doing that.
Making it easier — lower friction to adopt, easier to derive the benefits from — is almost the entire point.
> The organizational structures and theories/philosophies are already mainly "good enough".
They're mediocre at best
I don't have an opinion on collaboration, because collaborating without proper organization is like running away from the problem. With proper organization, collaboration is easy.
I think saying Notion's dead because we have Logseq now is like saying MS Word is dead because we have vim - ignoring timelines and I'm exaggerating a bit of course.
I’m doing the same thing I complain about the “emacs is enough, we’ve had this for 30 years” commenters doing... conflating “good enough for me and my nerd friends” with “good enough for anybody” :-P
What I meant was that we finally have cheap/free GUI tools to do the same things, based on open standards with no data lock in.
From that standpoint, proprietary closed systems where your data is trapped, like Notion and Roam, should go extinct.
BUT it is definitely arguable that Notion is still easier and more approachable than Obsidian, and certainly LogSeq.
From that standpoint Notion is still a better tool for a large number of people.
This take fundamentally ignores the web-based aspects of this project, as well as its attention to a lower-common-denominator modern UX that works intuitively, without surprise, confusion or a barrier to entry.
The first few hours can determine if someone sticks with something or not. Emacs might best benefit the power user, but normal users need simple products too.
I'm not sure how ability to learn Emacs and ability to construct a good knowledge base are more than weakly correlated.
I know dozens of people who use Emacs and dozens of people who have well-organized knowledge bases and while a few people have both that's about what I might expect based on random chance.
Some people might want to help their grandmother organize themselves better as they age, why do they need to learn a DSL and ecosystem instead of just downloading an intuitive app with modern UX sensibilities?
I did emacs org-mode for over a year and ended up abandoning it. For me, the issue was: I could absolutely see how powerful it could get, but not only was the learning curve wildly steep -- the way it does things is so different from most other programs that it would slow me down in those.
I ended up falling back to a mix of things like zim-wiki, xbindkeys and a bunch of zenity/fzf based shell scripts to get what I wanted, while having something that played nice with everything else, interface wise.
I see you, and I don’t think you’re wrong, but I DO think that pursuing what Org does outside the world of emacs is worth doing.
Asking someone to fiddle with lisp in order to have org’s functionality is a LOT. I feel like WAY more people would benefit from org if they didn’t have to use emacs to do it.
Exactly my thought. What I need though is a web front end to search and view my org files when I don't have emacs available to me. I have client laptops that will only let me access browser apps.
A web front-end is overkill -- Emacs users can use any completion framework (ivy, icomplete, vertico) with fdfind / ripgrep to get extremely powerful instantaneous search.
Plus, there's no way any org features other than the baseline few are supported.
Can't speak to that because I don't understand this use-case, but AFAIK it should be possible to modify an org agenda as long as emacs is running somewhere. It could write the current agenda to a file (in a s3 bucket, for example) with the function org-agenda-write, and the application on a phone could read the agenda and "push" the changes back, and an elisp function could handle modifying the actual agenda.
Wouldn't be surprised if this was already posted on the mailing lists as a POC or something.
Also one thing i like about these alternate options is they work on my phone. I regularly use Obsidian on my phone to lookup information, jot things down, etc.
With that said i'm still looking (making.. maybe?) my perfect solution which is mostly just Selfhosted + Notes + Spaced Rep in the right UX.
I do not get your question: org-mode offer various ZK-alike implementation like zetteldesk on top of org-roam, in mere storage terms a zettel is a heading, real links between them allow to travel between notes. You can capture them in a timeline...
I get that emacs and org-mode work for you, and probably a lot more people here on this website than elsewhere.
And if that works for you, great!
But, I'd wager that Silver Bullet (or Obsidian, Logseq, etc) is a far better tool for 95% of people (for the purpose of organizing ones class notes, book reviews, recipes, first drafts of articles/papers, self-directed learning, personal notes of meetings, diaries and journals, etm).
Cross-platform (including phone) is probably a must-have for many. Immediate ease of use and lack of time spent not only learning, but configuring, is also important. A GUI following normal-people expected conventions, likewise.
The overwhelming majority of people aren't programmers, and will never use emacs for anything. What emacs is good at is not what they need.
It is interesting that there are so many products that replicate Emacs features for people who don't use Emacs. ("X without Emacs" seems to be the open-source version of "Uber for Y".)
It makes me think that if Emacs had a mode that was usable by novices out of the box and retained the same power it would take over the world.
There is no 100% spec compatible org-mode application for the mobile phones (because org mode does not have formal spec AFAIK). No amount of features will compensate that single drawback. End of story.
As an org-mode/Emacs users I smile finding people keeping reinventing the wheel. It's not a sore critics to the SB devs of course but a general observation.
The classic so-called Greenspun's tenth rule [1] it's not just about Lisp but general: classic systems built with the concept of "the OS is the SOLE and UNIQUE fully-integrated end-users application in the desktop" is the rule to follow.
Sure, sometimes peoples have issues understand how such systems can work, so trained in modern ones, but just think about something you buy on-line:
- you get some mails (order confirmation, payment, shipping, ...)
- you get one or more bank transactions
- you might have some notes on some new assets, like a note about how to use the device, periodic maintenance, ...
ALL such "digital things" are separate data on separate apps but for you they are "just a set of things". Why having them separated then? Why you can't just collect/search them in a single UI? In org-mode/Emacs we can achieve something like that, in classic systems it was a normal desktop computing task.
That's what we lost in decades of commercially-driven development, even in FLOSS land...
[1]
#+begin_quote
Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.
#+end_quote
The SB author speaking here. I hear you. I used emacs heavily for a few years and of course it inspires a lot of this. I see SB as a somewhat pragmatic reinvention of many emacs ideas. It doesn’t try to be as broadly applicable as emacs though.
While it’s almost impossible to innovate on what has been done in emacs over the decades, I think we can refresh some the things that make it powerful with a fresh coat of paint, to make it more accessible to a “younger generation.”
and COUNTLESS others, similarly many "new stuff"/innovations appear and are actually partial, limited and limiting solutions to problems already solved decades ago in a more broad and superior way.
Emacs itself is a bit horrific in the sense that it's codebase is hard to be kept up by modern developers who have troubles knowing it, but at least represent the classic model. If we lost the memory of the past it will takes decades to reach the level of evolution we have already achieved witch is really a shame.
Anytime I see new software, yours, LogSeq, some "new shiny file manager", Tiidly Wiki and so on, witch actually are a BIG effort to achieve something already existing with far less efforts thanks to an already made ecosystems who makes their development easier I have a sore smile: end users suffer from limits of modern software, DEVELOPERS suffer equally because craft something on top of modern systems it's equally terrible but we seems to be unable on one side to reach again a critical mass of users to being able to innovate again, on the other sides most people simply ignore the past so ignore what's lost.
A stupid example: link an email in SB means essentially or support a specific MUA, tracking it's evolution since breaking changes might happen all the time or add an MUE inside SB. In Emacs it's just a simple function since anything is already there. In Plan 9 to cite a project often considered hostile from and to Emacs write an MUA is damn simple limiting mails to Plan 9 itself, an MUA it's just a specific viewer of some text stream read form some user-configured filesystems mounts and so on.
The sore part is that's I can easy state the above, even in my poor English, but I have no practical solution because resurrecting the classic model for present times demand an effort ONLY a public funded body or a large community can made. We have dismissed "for business reasons" essentially all public research and we have essentially pushed to irrelevance all communities...
Since the data store is markdown and can be synced with git, eventually an open source UI will appear. It's almost inevitable.
Ironically, if Obsidian was open source and charged $25/mo for services, I'd happily pay for it. Even if they used a strict license to deter competitors (eg. stating they must license their changes back to Obsidian and that all hosted software interacting with Obsidian must also be open source).
Since the data store is markdown and can be synced with Git, you can already work with an Obsidian vault using Foam in VSCode. I do.
Workflow: PKM in Obsidian, move ready docs to designated docs folder tree, sync w/ git to shared docs site repo, two-way collaborate w/ colleagues on docs.
You do need to align some options in each, such as file naming, a header, a particular style of links, and ensure frontmatter behavior. All necessary settings exist.
I recommend Logseq very much as well, though it's worth noting that it differs from Obsidian in that it's outlining-centered.
For me that was actually the reason I switched to it - I usually take notes in the form of deeply nested lists, which isn't as ergonomic in normal note-taking tools (the Obsidian plugins for it are not enough).
I'm very interested here. I'm a big http://zim-wiki.org guy, but I've always been fascinated with the promise of doing this in the browser to reduce that sort of friction. Tiddlywiki's a possibility here, but for being browser-based it always seemed weirdly difficult to do client/server style.
This seems like the kind of thing I'm looking for, should be easy to self-host and access from different browsers, no?
And probably many others alike. Essentially they are local daemons who serve a local TittdlyWiki taking care of file saving, attachments etc. The interesting part of TiddlyWiki is IMO it's full-fledged transclusion support but it's far more mechanic than Zim.
Org-mode/org-roam/* in Emacs do MUCH more and are MUCH more reliable in time-based notes terms (lifetime of notes) but demand much more effort...
Very cool! What would it take to host this with multiple user accounts on a remote server? I'd love to have a read/write interface for a team of people to use as individual/project documentation. (Ideally also with git functionality so team members could push/pull/merge changes to each other's projects)
There’sa few things that would need to be rethought for this to work. Primarily, concurrent editing would need to be enabled everywhere and permissions need to be figured out and would complicate a lot of the query stuff. Not saying it’s not possible, but challenge for sure.
Thanks for the response! Are there any parts of the codebase to pay particularly close attention to with regards to the issues with permissions and queries?
The world is extremely diverse. You are in a group of lucky/happy users but I’m not there as I regularly unzip hundreds and hundreds generated files we are using in our project — they immediately making the Syncthing stuck for hour or two.
For me it’s terrible situation as it blocks syncs when you need to get them fast. If the app which main function is to “sync files” can’t do that efficiently because they are small — it’s unacceptable for me. Somehow borg, git, resilio are working with them fine but for Syncthing this is unliftable task. I’m not alone here as Syncthing’s forum regularly gets this topic up. Also I don’t want to work around this somehow as I don’t need another one workaround in my daily routines.
PS: it’s my personal opinion/case and I cannot blame somehow authors of the free and open source tool that they didn’t design it as I would expect — I just use another sync tool which works fine.
Wow. My initial impression of both Silver Bullet and Bangle is very high
I have have used various tools in this category such as ThinkTank and More since the 80s. I used Setext, and then transitioned to Markdown soon after Gruber announced it. Currently I most work with notes in whatever text edit I am currently using with a dose of NVAlt.
I will need to give both of these new tools a deep review to see if they are worth of daily usage.
This is far more impressive than the almost-blank screen on Firefox Mobile led me to expect.
It looks like it's mostly engineered this for personal use, but as somebody currently underwhelmed by GitLab Wiki (/Gollum) for enterprise documentation, some of the features here would be very useful in that context.
It doesn’t work on FF mobile? I wasn’t aware. It works fine or deskrop FF. It also works fine on Safari on iOS, but sounds like I should get an android device to make sure it works on that as well.
I'm a heavy F/OSS note-tech user and my first thought was "this is awesome", followed by "does it sync/can I use it across devices".
Also just my own selfish wish but but having a dedicated desktop app is also awesome, even if it's nothing but a webview (check out Tauri)... The PWA should make it possible to "install" the app, assuming the manifest is there and linked via meta tags.
Why? Obsidian already does this better. If it's not going to be better or targeted to different users, then the most likely conclusion to draw is de facto reinventing the wheel without a strategy other than "me too".
It's obviously unimportant or you wouldn't have happily paid for it.
Giving away code to a paid app while it is viable and thriving offers no benefit to the producer except to allow anyone and everyone to duplicate their app and create knock-offs. The right "eyeballs" will never look at it because of Tragedy of the Commons.
It is important to me, and if I was aware of an open-source Obsidian equivalent, I would have chosen that. But there wasn't, and AFAIK there still isn't one.
Having a good tool that works well for my purpose is more important, yes. So I still happily pay for it.
> no benefit to the producer
Perhaps...? But the producer isn't who I care about here; I'm the user.
I assume that, for example, on macOS the flat files could be synced by storing them on ~/Documents so they would be available on both my Macs? What about mobile support?
For fun, I just read through some of the source code. Typescript is a nice looking language.
Yes you can do that, or deploy it to a VM somewhere and access it from both places (including mobile, works fine on mobile browsers). That way you don’t need to sync. That’s how I use it myself. Self hosted VM at home and Tailscale to access from the outside.
Cool. Will definitely check it out. Just moved everday usage to linux (Framework ftw!) and have been collating all notes / ideas from Evernote, Notes app, misc files into md ! So much more flexible and now lock in !!
On this topic: I'm using Obsidian and sync my notes on my Linux machine, Windows work computer, and Android phone using Syncshare.
Two questions for experienced Obsidian users:
- what's the best way to backup the md files with the option of undoing changes? Some kind of Git based approach with automatic comitting and pushing?
- wm is there some kind of online only version of Obsidian (of similar) for self hosting? Reason is that I want to edit my notes when I'm away from my personal devices and cannot install any Software but have access to the internet and a browser.
I've been taking a stab at this same problem (personal knowledge management) myself and I have to say I am very impressed with your implementation! I look forward to using this. Thanks for sharing!
I might have to try my hand at writing an extension for embedding tables/queries from Datasette. With the new write api[1], they (Silver bullet + datasette) could make for a killer combo.
I gave this only a fast read, i couldn't find block-level tagging (like logseq). Is it present?.
I apologize but for me that has become a hard requirement for even evaluating.
absolutely cool. i am currently an obsidian user and have one thing special not fond of, which is it is not web based. silver bullet kills this one.
your app seems solid and neat, but the introduction video link does not work. it redirects to https://silverbullet.md/fs/( which is a blank page to me.
and i have another question. silver bullet runs very smoothly on my mobile web browser (safari from iOS). but is there a simple way to self host it on my mobile device (say on an iphone)? or i have to self host it remotely on some other machine to access it on a mobile device?
This may have to be rethought at some point, bur now the model would be self host or somewhere and access it from multiple places like your phone. I host it locally and then use Tailscale for safe access outside my network.
I think this is the closest I've seen anyone come to solving the problem of having separate "write" and "read" modes for Markdown editing in a web browser without resorting to a split-screen view. It's not _perfect_ (likely due to codemirror limitations) but what's there is pretty well-executed.
I might have to borrow a couple ideas from this for my own effort at a personal knowledge base: https://github.com/cu/silicon