NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Show HN: Piruetas – A self-hosted diary app I built for my girlfriend (piruet.app)
qixxiq 23 hours ago [-]
I’d caution against your “free forever” offer. Most people tend to backtrack on it.

There’s one case where it gets super popular, or attacked by spammers/bots, and the site becomes more effort to operate publicly than you want to do for free.

In another case your girlfriend stops using it, as well as some family, and the continued maintenance over the years feels like it isn’t worth it (because there is always maintenance.)

Either way you might want to shut it down, and promising “forever” to users feels problematic when you’re not being finically incentivised to keep it running. With the financial incentives it’s much easier to pass the burden on to someone else if you can’t run it for whatever reason too.

patillacode 23 hours ago [-]
Thanks for the feedback, I appreciate that you are looking out for me really.

My intention, the meaning of "forever free", is that I will provide the service for anyone and everyone that cannot self-host themselves, but of course, if I don't have money myself to rent a server, for example, and I have to shut the app down I would inform the people using it. This is more or less expected from a free app in my experience and there is a paragraph in the terms related to this, under "NO GUARANTEES"

What I want to say though is that I won't charge users for as long as the app lives, if the app dies for whatever reason I will try to inform users to export their data and find a better place I guess.

23 hours ago [-]
edu 1 days ago [-]
Pirueta is not lollipop in Spanish, it would be “piruletas” (at least in Spain Spanish).

Piruetas is pirouette, as in what a ice skater might do.

embedding-shape 1 days ago [-]
> it would be “piruletas” (at least in Spain Spanish).

In Spain Spanish I never heard them called anything else than "chupachup" (regardless of brand), guess it's a bit of a "Kleenex/facial tissue" syndrome going on there.

edu 1 days ago [-]
Well, we would refer to chupa-chups (brand) to the ones with a ball head. And Kojaks if they had gum inside.

Piruletas were the flat ones, either circular or heart shaped.

patillacode 1 days ago [-]
What about the classic heart-shaped bright red "piruleta" from the "fiesta" brand?
pfortuny 23 hours ago [-]
That's a piruleta. The spherical ones are chupa-chups.
patillacode 1 days ago [-]
The funny thing is that I am Spanish, and I tricked myself because we discussed between "piruletas" and "piruetas", and I had the message prepared before the name change, my bad.
nextaccountic 9 hours ago [-]
Well "piruetas" works in Portuguese too
rustyhancock 1 days ago [-]
That's a lucky escape.

For some reason car manufacturers have this issue

Mitsubishi Pajero (renamed in Spain).

Ford Pinto (renamed in Brazil).

Toyota MR2 (renamed in France although slightly different issue).

Honda Fitta (renamed in Scandi countries)

mejutoco 24 hours ago [-]
I would like to add Nissan Moco (snot/mucus in Spanish) to that list.
pezezin 14 hours ago [-]
But the Moco is only sold in Japan, and in Japanese it means "fluffy", a funny name for a car but not a huge deal.

I still laugh every time I see one though, which is almost every day...

yomismoaqui 1 days ago [-]
That's where LLMs with web search enabled help to check for dangerous project names in other languages.
latexr 1 days ago [-]
You don’t need LLMs for this (or most things suggested in HN comments). http://wordsafety.com/ has existed for years.
sdeframond 1 days ago [-]
They don't have "etron" thought, which might explain some poor naming by Audi ?
1 days ago [-]
roscas 1 days ago [-]
Hyundai Kona (renamed in Portugal to Kauai)
deaux 1 days ago [-]
Wholesale accepting all of the stock Opus colors is certainly a choice.
patillacode 1 days ago [-]
To be honest, my non-negotiable was that it needed to have some orange, but that doesn't work very good with a calm, minimalist app, so it remained as the accent color.

The rest wasn't my choice, we just did a few tests and my gf chose the palette you see today.

Having said that, you got a point and I didn't even realize it until you mentioned it.

stavros 1 days ago [-]
I don't know, I thought the design looked really nice.
roscas 1 days ago [-]
Nice, simple, light and dark theme, a calendar. I would remove the internet checks for your storage.ko-fi.com and it did some calls on pypi.org and files.pythonhosted.org. All it needs should be on the docker by default. But that is just me.
patillacode 1 days ago [-]
Thanks for the feedback! Appreciated!

----

I had some time to look into this, I think it is partially valid.

The pypi.org and pythonhosted.org calls happen only at docker build time when dependencies are installed, the running container makes no calls there.

The ko-fi badge image (storage.ko-fi.com) is a real runtime outbound request though, every page load fetches it from their CDN.

That's fair criticism and it has an easy fix which is to self-host the image, which I'll do like I do with the rest of things, like fonts.

Thanks again!

user3939382 24 hours ago [-]
I find our standards and norms around network access to be unacceptable. Programs shouldn’t access the Internet without opt in by the user either as a setting or a UI interaction.

We had many years of applications from the dial up error and prior that didn’t assume constant connectivity and we all survived.

Even an OS enforced blend of oauth style initial permission and LittleSnitch where the user is asked what they consent to at first launch would be fine.

quaintdev 23 hours ago [-]
I used memos which has similar feature set. One day I lost my hard drive and I had to restore from s3. Turns out the backup I had was incompatible with latest version of memos app.

Since then I just gave up on web based tools for notes. I just want to save my notes and be able to recover them when things go wrong. A simple directory with markdown files and hugo blog allows me to do that.

OP how does your app store the journal entries?

patillacode 23 hours ago [-]
Entries are stored in a SQLite database, and uploaded images sit on disk under the configured DATA_DIR. Both are in a single Docker volume.
cxr 22 hours ago [-]
Since this is largely/almost entirely for private data with occasional publicly accessible content through share links, this is a good candidate to be rebased onto remoteStorage, which gives you auth and storage for free, and there's always an escape hatch for the user to have access to their data—and permit other apps to access it, too.

<https://remotestorage.io/>

patillacode 9 hours ago [-]
Hmmm, interesting, I will have a look, thanks!
46493168 10 hours ago [-]
This is cool. You can make something like this using Journals + Templater + Share Note plugins with Obsidian.
okkdev 22 hours ago [-]
Very nice! The diary app market is super saturated, but diaries are such a personal thing that there's never really too many, since everyone has different requirements. I did try many, but also decided to build my own. I should be done soonish, I really need it haha
cppluajs 17 hours ago [-]
This! I have tried 20+ apps at this point and still have ideas as to what a journal should be that aren't in any of those. Same with task management apps. Maybe someday I will build too...
hyperific 23 hours ago [-]
People usually put pretty intimate private thoughts in diaries so I'm curious how your app handles preserving each user's privacy. Are files encrypted or only stored on a user's local machine or something?
patillacode 23 hours ago [-]
There are two cases:

Self-hosted: your data lives entirely on your own machine/server and obviously I never see it. That's the primary privacy model the app is designed around.

piruet.app (my hosted instance): you're basically trusting me. (I know, trusting a random stranger on the internet... right?)

Other things I can tell you: Passwords are bcrypt-hashed and I can't recover them, but journal entries are stored in a SQLite database on the server. There's no at-rest encryption of content, so in principle the server's administrator could access the entries. I don't do it on principle and there's no infrastructure set up to do so, but I can't make a technical guarantee of that.

If you just don't trust the person hosting it, I'd honestly recommend self-hosting yourself.

At-rest encryption of entries is something I'd like to add, it's just not there yet. In the meantime, piruet.app is best treated as a demo/trial environment rather than a permanent home for sensitive writing.

If you have thoughts on how to approach encryption in a way that doesn't break usability (search, rich text, etc.) I'd genuinely love to hear them.

thispbowden 24 hours ago [-]
Read this as "dairy app" and had so many questions
patillacode 23 hours ago [-]
LOL

"one entry per day" takes on a whole different meaning that way.

lemiffe 1 days ago [-]
The demo doesn't work (invalid account when using the creds mentioned on the homepage)
patillacode 24 hours ago [-]
Thanks for the feedback, I figured it out, I guess I forgot about the trolls...

Rolling out now...

patillacode 1 days ago [-]
I just tried it demo/piruetas and it works, can you double check?
mr_sturd 1 days ago [-]
Can confirm that that username and password are not working in the login page.
patillacode 1 days ago [-]
I have tested many times, I have asked other people too... I cannot replicate what you are experiencing, sorry.
mr_sturd 18 hours ago [-]
Have tested again and it's working for me now.

(Firefox Android)

raonyguimaraes 24 hours ago [-]
Edit: It was firefox, it doesn't work on firefox!
patillacode 23 hours ago [-]
I use firefox and I have e2e tests that work in firefox, feel free to create an issue in the github repo explaining a bit what is not working for you
rscrawfo 24 hours ago [-]
Same issue for me.
deafpolygon 24 hours ago [-]
Same. It just doesn’t work.

Also a bit confused about self-hosted vs “free”.

patillacode 24 hours ago [-]
You can self host the app yourself or use the free hosted one I provide
nutthugger 24 hours ago [-]
same
thepill 24 hours ago [-]
How do you monitize the hosted version?
patillacode 23 hours ago [-]
I don't, I just wanted to give back to the FOSS community.

If someone finds it useful and want to collaborate with the project they can tip me on ko-fi.

outime 1 days ago [-]
[flagged]
patillacode 1 days ago [-]
The funny thing is that I am Spanish, and I tricked myself because we discussed between "piruletas" and "piruetas", and I had the message prepared before the name change, my bad.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 12:32:53 GMT+0000 (Coordinated Universal Time) with Vercel.