9 ms·
Nullboard: Kanban board in a single HTML file
- bachmeier 2y agoFrom the readme: > Still very much in beta. The last commit was November 2023.
- rand0m4r 2y agoIf I remember correctly, Gmail stayed in beta for some (~4+) years. Looking at the repository, maybe the author wants to work on mobile support, think about alternative storage methods, as for the last commit, maybe he's working on something else of simply living his life.
- zelphirkalt 2y agoPretty sure Gmail never stayer 4y without commits though. Probably not even 1 year. Not disagreeing with the notion itself, but noting, that the comparison doesn't really fit.
- apankrat 2y agoWell, I didn't have a need to add or to change anything since then. Here's the full timeline to get a general sense of the development pace - http://nullboard.io/changes http://nullboard.io/changes
- finger 2y agoJust wanted to say that I really like the style/design of your change log timeline. :)
- bachmeier 2y agoFair enough, but I wanted to be sure everyone was aware of the situation.
- Atotalnoob 2y agoThen it’s probably read to promote to RC or full release
- AstroJetson 2y agoSo I went and checked my suggestion on colors. You pulled it, but then never actually implemented it (unless I don't know how to toggle it). Are you going to add colors to the current version or should I go back and retro merge the color code I have?
- yunruse 2y agoThis is very neat! I'd be interested to see something like this with a saving mechanism reminiscent of TiddlyWiki [0], which is saved as a portable HTML file. Documents that contain their own editors like this are really neat for offline use and long-term storage. [0] https://tiddlywiki.com/#SavingMechanism https://tiddlywiki.com/#SavingMechanism
- zimpenfish 2y agoI guess that's something you could add into the remote backup server. I'm considering writing my own (in Go/Rust) and I might see if I can add that.
- pseudosavant 2y agoI have implemented Google Drive and MS OneDrive support in my one-file video player app. I'm using it for reading, but I think it could be used to push back changes to a file for saving.
- smusamashah 2y agoI tried this script (which Claude came up with) to save file with all it's changes. The steps are 1. Put this script in html file and add a save/download button to trigger it 2. Set `contenteditable` on you editable elements That's it. Now make changes on the page and click download button to save the page with your changes. This should allow seeing your work without necessarily depending on JS. The script: <script> function downloadHTMLFile() { // Get the current HTML content const html = document.documentElement.outerHTML; // Create a temporary link element const link = document.createElement('a'); link.setAttribute('download', 'example-page.html'); // Encode the HTML content as a data URI const encodedContent = encodeURIComponent(html); link.setAttribute('href', 'data:text/html;charset=utf-8,' + encodedContent); // Append the link to the DOM and click it document.body.appendChild(link); link.click(); // Remove the temporary link element document.body.removeChild(link); } </script>
- nicoburns 2y agoNo need for the script. Browsers have "save as file" functionality built in!
- pseudosavant 2y agoI love tools like this. I have my own single HTML file project for a HTTP video player along those lines. https://github.com/pseudosavant/player.html https://github.com/pseudosavant/player.html I'll definitely be looking at the source code to see if there are any ideas I want to incorporate into my own single file tools.
- imiric 2y agoThis is fantastic, thanks for sharing! I've been using something similar for a few years now hacked together from different sources, but yours is much more polished.
- zimpenfish 2y agoFortuitous - I've been looking for a simple Kanban board this week and all the popular ones are a bit heavy (`plane` uses 8 containers!) or insist on using `mysql`.
- vovkasm 2y agoYou might like kanboard, it's a classic LAMP project but it can use sqlite for small installations.
- zimpenfish 2y agoSuper, ta, I'll have a look at that.
- ochrist 2y agoI'll second that. I've used it a lot for my own small projects.
- lf-non 2y agoI use teable with sqlite - it has a kanban board view
- nicholasjarnold 2y agoI run Planka in an LXC container on Proxmox, but this looks useful (despite being 'beta') for anyone who just wants an absolutely no frills local-first GUI for simple task management. The README mentions that "Trello wasn't bad", but storing this type of data in the cloud wasn't desirable. Well, Planka is the answer to that.
- RedShift1 2y agoI'm on mobile, I can't figure out how to add a card to a board?
- huijzer 2y agoI really think we are as developers underusing setups like this. If you could somehow figure out a simple but effective sync between devices then that would be able to cover many use-cases. Maybe we just need an sqlite with better support for replicas? Then people have one tiny server with a bunch of sqlite’s to which the apps can sync?
- oneshtein 2y agoFirefox has Pocket. Maybe, it can be used for synchronization ("pocketing") between devices.
- evantbyrne 2y agoFor something as simple as this a manual export/import would be the most appropriate. Probably not a strong foundation for a communication tool.
- latexr 2y ago> manual export/import That would mean manual busywork every time you start/end a session. If you ever forget one of those steps, your work becomes out of sync and that’s extra work to sort it out. Depending on when you notice, it may take you several hours to fix. Not having to do things manually is what computers are for.
- evantbyrne 2y agoYou could build a sync feature that requires some background process on each client along with likely complex configuration for peer-to-peer sharing, or you could build a web backend that runs on a server. There are good reasons why everyone does the latter.
- summermusic 2y agoThis sounds like a job for WebDAV! https://en.wikipedia.org/wiki/WebDAV https://en.wikipedia.org/wiki/WebDAV
- Multicomp 2y agoLooks nicer than say kanboard, I may give this a shot
- egeozcan 2y agoThis is very cool. BTW, when developing single HTML file apps, instead of localStorage, one can use the HTML as the source of truth, so the user can just save/save-as to persist. I had mentioned my quick and dirty attempt at an image gallery that is a self-contained html file and some really liked the concept, if not the "app" itself: https://news.ycombinator.com/item?id=41877482 https://news.ycombinator.com/item?id=41877482
- gcr 2y agoTiddlyWiki famously does this! It's a great system for what it needs to be. https://tiddlywiki.com/ https://tiddlywiki.com/
- xandrius 2y agoWait, so every time I make a change I need to remember to save or it's all lost? Or am I missing something?
- egeozcan 2y agoYes, is that a no-go? Maybe I’m just being too old-school :) It does make forks a lot easier, though! Another advantage is that it makes it clear what you’re saving, reducing the likelihood of errors being persisted.
- ffsm8 2y agoThere is a pretty newish filesystem API around. You could probably make auto saving possible via that - at least after a prompt for the filesystem permission. Or keeping it as it. That's fine too. It just came to mind
- FrancoisBosun 2y agoNot so different from Word/Excel/Lotus 1-2-3 from the 90s! I like that most software saves-as-I-type now, but that was the workflow back then. Ctrl+S was the most used key combo on my keyboard back then. Now, it's `:w<Enter>`.
- 2y ago
- gatinsama 2y agoThanks a lot for this. I use it everday and it brings me a lot if joy. We need more tools like this one.
- apankrat 2y agoThis is mine. FWIW here's a Show HN from 2019 - https://news.ycombinator.com/item?id=20077177 https://news.ycombinator.com/item?id=20077177
- asdev 2y agodid you market it at all? or people just found it organically
- apankrat 2y agoI showed it around to people that would listen, but otherwise, no, I didn't market it per se.
- s2l 2y agoDo you know if a remote backup service was written? I am going through SimpleBackup code, (and if not exists) I would like to contribute remote agent for backup. Any pointers for that implementation would be appreciated.
- apankrat 2y agoYes, I wrote one [1] and others did too, e.g. [2] and [3]. The gist of it, as mentioned in [4], is that you need to have a web server that implements checkStatus and saveConfig PUTs, and PUT and DELETE for saveBoard. [1] https://github.com/apankrat/nullboard-agent https://github.com/apankrat/nullboard-agent [2] https://github.com/luismedel/nbagent https://github.com/luismedel/nbagent [3] https://github.com/OfryL/nullboard-nodejs-agent https://github.com/OfryL/nullboard-nodejs-agent [4] https://nullboard.io/backups https://nullboard.io/backups
- okwhateverdude 2y agoThanks for writing this. I found it useful and trivial to setup.
- efilife 2y ago[flagged]
- deleted 2y ago[deleted]
- monkeydust 2y agoThe classic software dilemma when I see something like this. It is simple, nice and clean. I immediatley want things knowing deep down that those things, if delivered, would probably take away the esscence of what's good about it. Still...i would like alt ways to persist and share ...would be nice to manage 1:1s across multiple teams I run :-p
- johnfn 2y agoI think "single HTML file" sets up a certain expectation that a five-thousand-line long HTML file with ~3500 lines of embedded JS doesn't really live up to. I mean, hey, everything can be a single HTML file if you embed the bundle inline in your HTML! Cool project, though - don't mean to take away anything from it.
- lelandbatey 2y agoIf I can actually hit "ctrl-s" and save it offline, that's a huge and worthwhile feature that meaningfully changes how I can interact with the project; it's not purely a fluff description.
- zelphirkalt 2y agoThat will probably never work easily in any secure browser. I think at the very least you would have to go: ctrl+s, dialog opens hopefully at the right directory you want to store in, enter/return.
- hu3 2y agoAre you serious?
- lagrange77 2y agoWhat's wrong with that statement? Can you access the filesystem without a dialog?
- deleted 2y ago[deleted]
- hu3 2y agoIt's pure useless pedantry. Imagine the abysmal signal to noise ratio if discussions went like that more often.
- rmbyrro 2y agoit's not a BSD license if it has a "common clause" call it whatever you want, but don't ever mention a BSD License if you've modified it.
- deleted 2y ago[deleted]
- seanwilson 2y agoI wish there was some browser solution for apps like this where you could save and share your app state between your own devices, and push/share that state with others, all without any server backend involvement e.g. so you could have a Kanban board shared with others and the state would be stored locally and/or in bring-your-own cloud storage. There's so many apps like this that could be simple, but for robust state saving involve setting up and maintaining a backend (e.g. with security patches, backups, performance monitoring). There's also the privacy implications on your data being store on someone's server, and the risk of data leaks. It's like there's a key part of the internet that's missing. Something like this could be a browser extension? This exists?
- staticfish 2y agoYou can already do this using things like the Chrome Storage APIs (obviously chrome only, and you need to be signed in, and bundle an extension) https://developer.chrome.com/docs/extensions/reference/api/storage https://developer.chrome.com/docs/extensions/reference/api/s...
- seanwilson 2y agoYeah, seen this but the storage quota is tiny: > If syncing is enabled, the data is synced to any Chrome browser that the user is logged into. If disabled, it behaves like storage.local. Chrome stores the data locally when the browser is offline and resumes syncing when it's back online. The quota limitation is approximately 100 KB, 8 KB per item.
- msephton 2y ago8KB is a lot! You just have to be mindful of the constraint. I made an entire video game in 39 KB.
- WorldMaker 2y ago`roamingStorage` as a relative to `localStorage` sort of like Windows' "Local App Data" versus "Roaming App Data' would be nice to have in theory. Of course even if you kept it to the simple KV store interface like `localStorage` you'd need to define sync semantics and conflict resolution mechanics. Then you'd have to solve all the security concerns of which pages get access to `roamingStorage` and how it determines "same app" and "same user" to avoid rogue apps exfiltrating data from other apps and users. It would be neat to find an architecture to solve such things and see it added as a web standard.
- efitz 2y agoI thought the primary value of Kanban was about collaboration. What is the purpose of a 1-person kanban? How do you collaborate with local storage?
- apankrat 2y agoGrocery and ToDo lists. That's Nullboard's primary purpose.
- dustinsterk 2y agoVery cool project!
- Waterluvian 2y agoGiven you can put scripts and css in an html file, you can produce basically any website/app and offer it as a single file. Loaded locally and/or via the Web, are there any other file formats that work this way or is .html the only bootstrapping option browsers support?
- ulrischa 2y agoI like these tools that are in one local html file. But this seems a bit unsupported. Last commit ist one year old. When you need some more but no jira then kanboard.org is what I can recommend
- croisillon 2y agomaybe the author should update slightly the grayscale once a week to make the software not look unsupported?
- bentt 2y agoThis is very cool! I can't help but think the missing bit is portability of the data file. I wonder if simply allowing a a binary or even JSON representation to be copy pasted from the browser would work well enough.
- philip1209 2y agoThat's cool - I've been looking for a simple self-hosted kanban. A backend is a requirement for me to use it across devices, though. But, I love the direction.
- dools 2y agoI love it. I use Trello as my 2nd brain but it means that I can't do anything offline. Where I can see loving this is if I write a little converter so I can take a Trello board JSON export, load it into Nullboard and work on it offline, then a thing that goes back the other way and creates a Trello board from my NBX file. Maybe if I put the original trello card ID at the bottom of each NBX "note" and then synched any text back as a new comment on that card, and the list ID in the title of each list and adding any notes without a Trello card link as new cards to that list, it would be a pretty automated way to get a bunch of edits back into Trello where I could tidy up with copy/paste. Rock on!! Forked the repo and have my new local version pinned.
- sockaddr 2y agoReally cool. I love that editing a note doesn't involve pop up modal windows, save buttons, focus selection and all the other crap that things like Notion and Trello end up relying on. You just edit the text. Perfect.
- AstroJetson 2y agoI have this and like it alot. I've used it since a 2020 post on hacker news. It takes some effort, but once you get past the learning curve. I'm very color oriented, so my forked version does colors to help me organized. (Yes I've sent it in as a pull request).
- jcpst 2y agoI love when I find new SFAs (single file app)
- Zigurd 2y agoAs of writing this there are 113 previous comments, none of which mention "metrics," "Scrum," or "velocity." I hope any Scrum Master who comes across this thread takes the absence of those terms as an indicator of the value of those things and all the related feature bloat that bedevils Agile project management tools.
- gbraad 2y agoNice to see, but hope he moves away from LocalStorage, as that is far from ideal. Chrome clears this when cookies are cleared; and many 3rd party tools suggest this as a way to 'optimize' your web experience. Often seen people file an issue for an application I made that used this.
- manyone1 2y agonice! how do i enter the bulleted items (aka. un-numbered) list items inside each note? is there a numbered/unnumbered list option? can i highlight lines inside a note and make them bulleted?
- arialdomartini 2y agoNeat, very very well done. One observation: Kanban is all about limiting the work in progress. That’s really its foundation. WIP limit is the main means for controlling and improving overall workflow effectiveness. I would argue that boards not offering a WIP limit are not really “Kanban” boards, as they defeat the very goal of Kanban.
- chairmansteve 2y agoWIP limits are not important to me. I use my Trello boards for mental hygiene. Something comes in, I put it on the board to get it out of my head. Then, when appropriate, I go to the board, rearrange the top 5 or so items by priority, then start on the top item. Many things never get done, but they have turned out to lower priority, by definition. If I am waiting for something to happen on a current task, I put it second or third in the queue. Keeps me sane....
- arialdomartini 2y agoNeither to me. But it’s a matter in names: if it does not handle WIP limit it’s not a “Kanban Board”. It’s a Board, and that’s perfectly fine.
- alexpadula 2y agoGood stuff!! JQuery may a bit outdated but very good :)
- candu 2y agoCool! This could be interesting as the base for a quick kanban board for mid-sized personal projects. That said: agree with others that sharing state between devices (either yours or others), and being able to collaborate on the same board, is sort of the canonical feature requirement of kanban boards. They can be used for 1-person projects, goal tracking, etc. - I've used e.g. Notion boards in this way - but they gain most of their value from allowing multiple people to share awareness of task status and ownership. Plus the use of localStorage means I'd eventually blow away my board state by accident - which is kind of a showstopper IMHO; being able to trust your tools is important. Still: nice to see people experimenting with what you can do just using web basics :)
- 752963e64 2y ago[dead]
- bArray 2y agoGoing to take a look at integrating this later, along with nbagent [1]. I have a 'dark mode' open source project with a few collaborators, many tasks and no good way to currently organise them. One change I think I'll need to make is prettify the export of .nbx (JSON) so that git diffs perform better. Hopefully nbagent can keep the data synced as the board is updated. [1] https://github.com/luismedel/nbagent https://github.com/luismedel/nbagent
- msephton 2y agoThis is really cool and something I could use and edit. Responsive CSS for mobile and tablet feels needed.
- a1o 2y agoThis doesn’t work on iPhone Safari for dragging things
- deleted 2y ago[deleted]
- samsquire 2y agoThank you for sharing. I remember working with Html applications (HTA) on Windows back with JScript or VBScript. I am thinking of tools that would make navigating plain text long files useful such as simple table of contents generation or indexes.
- xingwu 2y agolove it!
- NoCanDo 2y ago[dead]
- ytjohn 2y agoGlad to see this on here. I've been using this for 3 years now with my club to track race course participants for a 50K. Radio operators at each station call in bib numbers, and we drag their bib from their last waypoint to the new one. There is a laptop in the van mirrored to a TV outside the van. Friends and family can then check on their particpant. https://i.imgur.com/UZWhppc.png https://i.imgur.com/UZWhppc.png I basically modified the CSS a bit so you can fit multiple cards in a row. nullboard as a board import/export feature to a simple json file. I have small python script that generates the columns (way-points) and cards (bib numbers). Then I can import that json to start that years race. While I would like more features (time tracking), it's a rather simple tool that can be easily operated offline and requires no resources other than a web browser.
- wishinghand 2y agoIs there a repo or list of single HTML files like this? I’ve seen people mention Tiddlywiki but that’s it so far.