Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: JournalBook – Privacy centric, offline first, personal journal app (journalbook.co.uk)
268 points by trys on Jan 10, 2019 | hide | past | favorite | 110 comments



I'm concerned about the HTTP requests that fire off every time I navigate to a new page. E.g. navigating to my "Thursday 10th Jan 2019" note triggers [1]. It even includes a cookie in the request. Not completely private, it would seem, as you're very clearly collecting metadata about my app usage habits, even though it's not strictly required for the app to function properly.

[1]: POST https://trys-tiny-tracking.now.sh/ {"type":"hit","url":"/2019/01/10/"}

EDIT: Looking through the src [2], it appears the site will respect the user's "do not track" browser preference [3], but that's not supported in all browsers

[2] https://github.com/trys/JournalBook/blob/master/src/utils/be...

[3] https://developer.mozilla.org/en-US/docs/Web/API/Navigator/d...


Fair point, this is the beginnings of a basic hit counter that I'm working on. As there's no server (it's CDN hosted on Netlify), there's no way to see if anyone's even using the site. It's waaaaay less intrusive that GA, or other tracking tools. It's simply picking up page views - ignoring IP and any identifiable information (cookies obvs. included). It also respects do not tracking indicators in your browser. Tiny Tracking will be open sourced in time.


In my mind, this completely contradicts "privacy centric" and "offline first", which to me are very important goals. Even though the notes in the app are only ever stored on my computer, and even though it's metadata being sent, I would rather offline and privacy focused apps not use my network at all. That's what I aspire to anyway when I write apps for sephware.com, and I wish everyone would do the same.


Your Autumn app looks pretty sweet by the way. I've been looking for a simple WM on Mac. The other ones are always needlessly complicated (looking at you Hammerspoon). Especially after using the beautifully minimal bspwm [1] + sxhkd on Linux for years.

But re: zero analytics, aren't you curious how many people use the app at a minimum?

[1] https://github.com/baskerville/bspwm


Yeah, I sometimes wonder about those statistics. But I'm not curious enough to invade people's privacy or use any of the other modern marketing manipulations to boost sales. I think if you make a thing and pour love into it, people will love using it, and maybe even want to give you a little money. I've seen this first hand many times and been on both sides of it. That's why I like Show HN, and give apps like JournalBook an honest look, especially when it's clearly a passion project by a single person.

Edit: Thanks for the bspwm link btw, I've been wanting to add a class to Autumn called TileWM (to complement the existing GridWM) but I couldn't wrap my head around binary space partitioning, although I knew that's what tiling WMs usually use. The page you linked to describes and visualizes it really well and now I think I understand it well enough to finally implement it. Although, given the nature of Autumn, someone could probably implement this feature sooner using Autumn itself :D


Just wanted to say — I’ve been using Autumn for about a week and it may just be the perfect window manager. And I’ve tried them all.

BST Hammerspoon Moom Flexiglass Layouts Alfred Div MaxSnap Spectacle Magnet SizeWell Etc etc

All of them. So thank you for the hard work.

And I can’t tell you how delighted I was to find THIS point of view from you out in the wild. Agreed entirely.


Really glad to hear that you enjoy my app that much! I put a ton of hard work into it and honestly yours is the first feedback I've heard about it at all, beside a close friend who beta tested it briefly. If you have any thoughts on features or APIs you'd like to see in Autumn, please don't hesitate to use the in-app Feedback form :) In particular, if you wouldn't mind sending me a copy of your current script, I'd love to see how you're using Autumn!


Have you checked out chunkwm[1]?

[1] https://koekeishiya.github.io/chunkwm/index.html


No I haven't yet, thanks for the link


I love the shoutout to yourself. Anyways, poking around your site and I appreciated this. Thanks for keeping it fun.

Make your windows dance in place! This is actually in the demo video up top, and I put it there because it's super fun, even though it's probably completely impractical. Try it out to get the full effect.


Thanks I appreciate it and glad you enjoyed the dancing windows as much as I did :)


Unfortunately you're still sending a lot of data across the wire, so even though your intentions are pure, you've still opened a door to immense data collection for an app that bills itself as "privacy centric". If you passed your data to a third party for storage (Netlify for instance), they could glean an immense amount of information.


Thanks for the reply. I figured it was, in reality, a pretty innocuous page view counter. But I also figured since your site is getting some attention on HN right now, it'd be best to make the finding public.

Also, thanks for actually adding a 'do not track' check! Too few sites are doing that, even new ones like yours. I updated my comment as soon as I saw that in there


Here is my privacy centric, offline first, personal journal bash script

    EDITOR=vim
    journal() {
        mkdir -p ~/journal/`date +%Y`
        $EDITOR ~/journal/`date +%Y`/`date +%m-%d`
    }
    alias j=journal


Thanks. Are you planning on selling this as a service? Maybe with blockchain verification? How about creating a marketplace so that others can share journal templates? Is there iCloud backup? Would be nice to have private messages between members and social status that people can "like".

:-)


For those unaware: I think parent poster is being sarcastic.

EDIT: my original comment was "Don't know why you're being downvoted. That's sarcasm people!". It was flagged. I wondered why and decided to check the HN guidelines. Sure enough, I violated one: Please don't comment about the voting on comments. It never does any good, and it makes boring reading.

Sorry about that!


Hey, this is HN. Sarcasm and witty remarks are verboten. :-)


Humor is not one of HN's strong suits.


And sarcasm is the lowest form of humor.


A simple "/s" or "/sarcasm" as the internet is not particularly good at transferring voice, tone, and feelings even with a good connection :)

EDIT: guess I should have "/humor"


All hilarious mocking aside (although you should probably turn this into a SaaS somehow and get it in the cloud), I've been using a simple .txt file for journaling since i started first my professional software gig in 2014.

It has gone through multiple forms, once where i created a new file everyday, and it wasnt automated much. One day I realized I could be even MORE lazy and started automating a bit. Now i have one file, with a heading for each day. I have the vim command saved as an alias now 'journal'. It opens up the file, moves to the end, and enters insert mode :p

    alias journal='vim "+normal Go" +startinsert /worklog/start_20160426'


I use git and surround my note taking scripts with these two functions.

# Pull Notes to make sure you are completely up to date before editing.

function pull_notes() {

  (
    cd $NOTES_DIR
    git stash
    git pull
    git stash pop
  )
}

# Push Notes up the git repo that these are attached to.

function push_notes() {

  date=$(date)
  (
    cd $NOTES_DIR
    git add .
    if [[ $(git status -s) ]]; then
      git commit -m "Notes Updated: $date"
      git push
    fi
  )
}



I like the mkdir -p for each date, tho I might do that by day instead of year.

My scripts for writing, and recording audio:

(cd writes/journal/; vi $(date '+%Y-%m-%d-%H:%M:%S') -c 'startinsert')

arecord -D plughw:$1,0 ditties/$(date '+%Y-%m-%d-%H:%M:%S').wav -f FLOAT_LE -r 48000


That's a good way to capture thoughts, but the review process and linking of notes is less than perfect.


If you want that, try TiddlyWiki[1] -- an actual offline-first system for journaling and notes.

It's a single, self-contained HTML file. You download it, add data, then overwrite the file with a new version which includes changes.

If you want to go fancy, you can install it on a server with Node.js and stuff, but there's not a need to go there.

[1]https://tiddlywiki.com/


I'll second TiddlyWiki. I've used it for several years and became a fan early on.

These days you might run across some hiccups in getting it to work in your browser of choice. Over the years the browser vendors became less and less inclined to allow javascript and extensions attain local file editing permissions. That's pretty reasonable, but annoying.

A pretty decent alternative that I've been using for months, now, is an app called Tiddly Desktop. It's an NW.js-based app so it has no trouble accessing the local filesystems.


>These days you might run across some hiccups in getting it to work in your browser of choice.

Never experienced any problems whatsoever across FF/Chrome/etc

I just generate a new HTML file with changes for saving.

Requires remembering to do something to save changes, but I come from the time where autosaving wasn't the norm anyway :)


From time to time I try these fancy journaling apps. A few weeks later I have to go through the hassle of converting the data to my good old plain text file journaling format.


There are some journaling apps that target this mindset. This one[1] was posted a few days ago (in comments) and stores your notes as markdown in plain text. There are others (I am working on one as well, but its not ready). If the app forced a particular naming convention (e.g. 2018-05-10.md) would that be too restrictive?

[1]: (https://github.com/fabiospampinato/notable).


No. Not really. http://jrnl.sh/ looks good too if you're starting from scratch.


If you're looking for something simple like jrnl but as a desktop app with a GUI, you might be interested in Mini Diary which I just launched: https://news.ycombinator.com/item?id=18934610. It also allows you to import your jrnl data and export your entries in a variety of formats.


vscode-journal and vscode-journal-view (gives you a calendar view in the side bar) do what I need and are offline.

I have vscode open anyway so path of least resistance applies.


Thanks for the recommendation, been looking for something like this.


It's really good, I just set the base path to point at a dir in Dropbox path and that's it, I have a autosyncing journal on all my computers.


Thanks for the heads up on this one! Looks great.


Good work man. Don't mind all the criticism here in HN. ;)


Really digging the design. Feels extremely light and calm. Although, all those animations might get a little annoying with everything transitioning-in the page.

Good work, though!


I've tried various journaling apps, but I keep coming back to Emacs Org-Mode for my journals and writing because of its excellent tooling and export abilities. I keep a single .org file per year and each entry is a high level heading. I sort by entries with the latest on top by default, but before I export, I use the built in Org-Mode sort to arrange them chronologically based on the associated date tags. It's an extremely simple system, portable, readable as plain text, and GitHub has syntax support. I can't recommend it enough.


A real journaling app, for the hackernews crowd, must have syncing between any kind of device (imo), including the terminal. My solution is just nextcloud syncing text files, though that may be overkill. Anyone have a good or even elegant solution for web/phone/terminal text file syncing?


I'm assuming this does local storage through the web browser. Does Firefox Sync or Chrome's Sync move that between devices for you? I don't do much web work so am unawares.


I also recently started using nextcloud syncing (among other files) text files; though i use the nextcloud mobile client to actually edit/draft notes on the go. Previous to this I was using dropbox...which was totally fine, functionally speaking. Their mobile file editor was decent enough. I just moved to nexcloud for reasons of privacy, control, and principle.


Checkout rclone Project then


syncthing covers all of those, just note it doesn't support iOS.


Is there a way to speed up the animations?

It may not be a real problem once I actually use it, instead of clicking around, but it makes it feel really sluggish at the moment.


Any tips for a server side developers on how to create similar user interface? how was it created? fully custom? based on some frameworks?


Looking at the source code it’s done with Preact and the css seems to be written by hand.

I was a server side centric dev for a long period before being able to design decent apps.

Here are my tips:

- Spend as much time as possible on Photoshop / Adobe XD / Paint.Net or whatever software design you are using. Do not start to write any HTML or CSS before the design has all the pages done.

- Spend time in Design Network like Dribbble to be inspired by top notch creators

- Code stuff you see . If you see a design you like on Dribbble you should try to do it in HTML and CSS.

- Frameworks will not make you a good front end developers. The majority of front end devs just use Flexbox these days, frameworks are less and less important for CSS you’ll be faster if you just learn the behavior of html and css without frameworks.

- Be patient


there's so many frameworks etc to create interfaces, in so many languages..

this is made mostly in JS so it runs clientside / offline (i think that would be the motivation to do it in js).

click view source in the browser :-) or 'inspect' if you use chrome, and look into the .js files which you find from there.

Should get you on your way :)

though if you are server side developer, maybe php is more interesting as it processes on server side and will be easier to interact with your server side developments

css language is used for style related things in any case (where elements might be generated from code like js or php, but css still reflects the style in the browser)


The project is open source, the github link is on the same page. It's build with Preact, a small react alternative.


Is there a OneNote, Evernote, <insert program/app name> that has the same feature set as ProtonMail? I like the idea of centralized cloud storage of notes for synchronization across devices with the same app/program, but with at rest encryption of the stored content that can only be decrypted on the client with the client's key.


There is standard notes that has the encryption and cloud sync. You can try it standardnotes.org


Here is a better Android Diary app that saves a single .txt file per day on the sdcard.

https://github.com/billthefarmer/diary

Then just use syncthing to syncronize those files to your other devices.


Looks great! My only concern now is that i won't use it a lot because typing on smartphones sucks…


At the same time, voice to text works like a charm on smartphones.

Especially for dairy-style note taking its really painless.


Thanks. It occurred to me after hitting the "add comment" button, too. Still:

- does not work all that great for some languages

- does not work offline (or… maybe it does now? it didn't when i've tried it on android a while ago)

- not appropriate everywhere (eg. public transport)


It looks really great and I find it to be very fresh, but my main concern is... what happened the the real offline alternatives?

Except for the way in which you write and access JournalBook, how is it different from a real journal that we can carry everywhere?


> real offline alternatives

How about https://tiddlywiki.com/ ?


I thought the parent comment was referring to real offline journals made of treeware.


Exactly. It's not that I don't see value in online alternatives, but in this case, if the main point is to access it offline, I don't see how different it is from a physical journal.


Why use digital formats offline:

  - editing and reordering text
  - attachments
  - aesthetics
  - accessibility 
  - hassle/weight optimisation
Aesthetics includes theming, and also not everyone has good handwriting.

Accessibility, because not everyone is able to hand-write in the first place.

Weight optimisation, because if a laptop is non-negotiable, going digital means one less thing to remember about and carry with you.

I have multiple physical notebooks/calendars and a digital commonplace book, they all have their place.


For slow writers but quick typists, an app is always going to win out over a physical journal. Also interested in an event call export + parse.


Many years ago I used Omm for a bit, it's pretty good if you really want to concentrate https://ommwriter.com/


I've been using Joplin and been really happy with it for my purposes so far

https://github.com/laurent22/joplin/


Using text files as an offline solution works pretty well too.


This has similarities to a Blazor (C# via Web Assembly) app I've been playing with recently, mainly offline only storage and import/export functionality. It works well but we're all so used to cloud syncing that it takes some getting used to when things aren't magically available on all our devices. https://do.lord.technology/


Really nice! Please get rid of the fade in fade out animation every time I click something. That time adds up, time I could be writing in my journal ;D


This is dead simple and flexible, I love it! I thought maybe I could use it to do a self-initiated daily 'stand-up' for personal goals. Right now, you use explicit URLs for each day, is there anyway you could make this static for bookmarking the current day's questions? I'd like to make it my default page for new tabs, such that I don't forget to write.


I realized I could never be sure about this kind of stuff, so I made my own. Took me about 5 hours to write a wpf app, it's very crude, but it even flips pages like a book, looks like a book and stores the content encrypted with a huge password which if I ever forget means the entries are lost until someone can bruteforce it.

Gives me much joy and I add features to it from time to time.


Markdown files + Sublime MarkdownEditing plugin


Or my html-notepad (https://html-notepad.com) if you prefer to use better WYSIWYG. Markdown is "a poor man WYSIWIG" anyway.

Especially if you need tables there or paste images from clipboard.

Or just use https://notes.sciter.com application. It stores document tree (db) locally: https://github.com/c-smile/sciter-sdk/blob/master/notes/res/...


Nice, am trying now. I am on IE 11 on my desktop (corporate environment, not my choice) and it just displays a blank screen.


Is there something "bad" about journaling in a text editor and syncing that to dropbox?


For a long time my whole life was in a textfile called 'phone numbers.txt'. It had started as a list of phone numbers of my friends (I didn't have a cell phone myself; dumb phones existed but I didn't want one) and grew into a huge repository of information.

For a while now I've been using pieces of paper which I file in numerus currens style and keep inside shoeboxes. Many tend to be thicker "fiche de la police"-type cardboard so the whole thing stays up even if there are also many loose folded-in-half A4 sheets. OTOH I've almost lost notes in the laundry and still rescued them with the hair dryer.

It's also hard to represent equations and diagrams in most note-takers. Interfaces, as the etymology suggests, really get in your way! The one drawback is to find oneself occasionally without paper. But again in a pinch even business cards and receipts (you can photocopy the termal paper at home later) are possible hacks.

(Numerus currens is like paper nosql: when you file a new note, first you quickly browse through your archives for similar topics, otherwise you number it max_N+1. If there's something similar with number 110, you might number 110/A, 110/B, 110/C; if something that belongs with 110/B comes, it's filed as 110/B/1... but you can never shake the whole thing out and lose the order, so I wouldn't recommend this system to people with large dogs or small children.)


This is great, but I'd be worried about easily losing all of my journals by simply clearning my browser history and wiping everything unknowingly. Any plans to wrap this as an Electron app or something that could be installed on the desktop?


There is import and export in settings.


What's the benefit over plain text files? Is it just the prompted questions?


One thing about this browser storage.. How do you migrate if/when you change computer? Is the procedure browser-dependent? I always saw those storages as a bit more troublesome than a flat CSV or something.


The remoteStorage protocol attempts to resolve this problem:

https://remotestorage.io/

https://unhosted.org/adventures/7/Adding-remote-storage-to-u...


It looks like there's a 'download data' button for this


You could just run it in a container with a bind mount for the database path to a file path that's kept in sync with SyncThing or other alternatives.


"just"


I'm curious what about running a container like this is hard as you've implied? Take for example all the great work Jessie Frazelle has done containerizing her desktop and apps (https://github.com/jessfraz/dockerfiles). Or the folks behind LinuxServer.IO. If you already have a container runtime on your system running this, as suggested, is a one-liner.


It would be a great use case for a progressive web app.


Really, no mention of NVAlt or Notational Velocity? Usually that comes up on these threads. I will probably use NVAlt until it doesn't work anymore, then endeavor to craft a replacement.


Is there some kind of sync mechanism? I couldn't see anything about account creation. You say "offline first". Is it not "offline only"?


There's no sync (at this point) and no account creation by design. It's all stored in your browser - I suppose in that regard it is not 'online'!

Sync may well be coming, but I'm not yet certain how to do it securely. That being said, import & export is available now, so it can be manually sync'd.


Client side encryption with a passphrase derived key and synchronization to Google Drive? That would work great for me.


it would be easiest yes to use something avalablee to people for free where good encryption things are present. but i suppose a lot of the world is waking up to the fact these things aren't so nice really, and offline storage for personal things is better.

it would be cool to have some export or import button to save everything into some kind of archive, then you can move it between offline machines and import it into the browser to use it there.


import & export are already there on the settings page :)


+1 for syncing support between mobile/laptop. This is a must to have ability to write quick notes on mobile and prose on laptop.


Looks quite smooth and has a gentle feel, I like the design.

How can you add it to your home screen? There is no link nor explanation.


Chrome on Androids offers it automatically for PWAs that meet some requirements. You can also add it manually from the browser menu.

https://vgy.me/GbvnOM.png

https://developers.google.com/web/fundamentals/app-install-b...


Thanks! As far as I'm aware, you can't manually trigger the 'add to homescreen' prompt as it's a system-level interaction. Android Chrome & Firefox should trigger it, but if not it's under the default browser settings dropdown on Android, and under 'share' (I think) for IOS.



Oh sweet! That would be great on the settings page :)


Scroll all the way to the top then a link will appear in a bottom toolbar type thing.


Haven't used the app yet but the "Facebook"ish theme and illustration-style on the first page made me recoil reflexively. Maybe because privacy is a big concern when it comes to journals and we have come to associate that colorscheme with distrust and privacy breaches lately. I think tweaking the colors and illustration style might help.


Works really well and feels super smooth. Really great.


It has a dark mode with different colors. Let's not villify blue in general though :P


I agree. It was involuntary.


This app would be a good candidate to integrate a E2EE framework.

Disclaimer: I'm building one based on a API/SDK architecture. https://github.com/wallix/datapeps-sdk-js


So why it's web based?


How about because it directly works on all platforms, mobile + desktop?

Also it looks like it's the platform the author was most proficient in, which is always a good reason when choosing your stack.


An RTF document would be more portable, surely?


Definitely, only with less functionality and not as pretty.


Works on all platforms except Windows Phone/Windows 10S apparently, because it's completely broken on Edge.


this does not work in firefox .... really works only in chrome


Worked in FF no problem for me.


does this not work in Firefox ? really ?


I might sound like a crotchety old man but I'm kind of tired of these JS and local storage browser apps. The tech is still just as clunky as if I were using a text file on my computer except you now require a browser to use it and run the risk of clearing your local storage or somehow corrupting it and losing everything, whereas local files a lot easier to keep track of and backup. At least that was my experience with laverna which this reminds me of.

Trying to emulate an offline app via a browser seems flimsy to me.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: