4 ms·
Hi HN! I built this website after having to recreate the same Google Sheets template over and over for different trips. This is basically Google Docs for calen
by jaflo 5y ago
Hi HN!
I built this website after having to recreate the same Google Sheets template over and over for different trips. This is basically Google Docs for calendars along with some other helpful features like voting and categories for trip ideas.
The website itself was built using SvelteKit with Firebase for the database and authentication, all hosted on Vercel.
Feel free to ask anything!
- asleepawake 5y agohow did you manage real time collaboration in sveltekit? are relying completely on firebase?
- jaflo 5y agoCorrect, yes, I subscribe to the Firebase Cloud Firestore events and update a Svelte store whenever something changes. This way I only need to set up the connections once and every Svelte component can just subscribe to updates to the store. Writing is more challenging, I haven't found a nice solution so I resort to making calls with the Firebase SDK directly (but those updates are then surfaced nicely again through the store).
- joenathanone 5y agoPlans for monetization?
- jaflo 5y agoNone right now, but I was considering having a freemium model and charge for additional customization and features that do cost more like location-aware events.
- elefanten 5y agoThanks for sharing. Very trivial feedback here: Calendly has gotten pretty prominent and your app’s name is so similar that I misread it as Calendly (and wondered “why is Calendly doing Show HN and what’s this about trip planning?”)
- benatkin 5y agoThat's a good move by OP. Too bad for Calendly. I can't think of a reasonable argument that it's trademark infringement. A portmanteau with day is quite different from a -ly suffix. Levenshtein distance is irrelevant.
- doctor_eval 5y agoWhen the law for well funded companies is basically “shoot first and ask questions later” - and it is - then semantic arguments don’t matter. If it seems similar, it is similar.
- MetaWhirledPeas 5y agoSuggestion: the Share form should perform an invite. Instead it tells me "This email address does not belong to a registered user account". Makes recruiting your friends and family a bit tougher!
- jaflo 5y agoI was too lazy to implement this at first and was also afraid of abuse, but this is a good idea, will work on it!
- wuschel 5y agoHi, great project, and looks very neat :) I would be very curious to hear about any difficulties when implementing actual collaborative editing. Did you have to go into CRDTs and friends? Cheers!
- jaflo 5y agoThank you! I actually kind of cheated and didn't have to implement any of that myself because Firebase took care of it. But when I was considering how to build Calenday, those were on my mind. I had read about CRDTs on Figma's blog (https://www.figma.com/blog/how-figmas-multiplayer-technology-works/ https://www.figma.com/blog/how-figmas-multiplayer-technology...) and was considering using something like this to ease the burden on implementation: https://github.com/automerge/automerge https://github.com/automerge/automerge
- wuschel 5y agoThanks for the links! :) I will look into automerge!