TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Porting a 100% local app to the web

162 点作者 jlongster超过 4 年前

15 条评论

AlexandrB超过 4 年前
It was interesting to read the stated advantages of each platform:<p>For web:<p><pre><code> * Easy deployment * Better conversion rates (no installation) * Easier login flow, support, a&#x2F;b testing </code></pre> For desktop:<p><pre><code> * Better tech (sqlite3 in this case) * Super fast * User owns the data </code></pre> What struck me is that the advantages of the web are primarily sales and developer advantages and are focused around the novice user experience. Whereas the advantages of the desktop are primarily user-centric and affect the long-term or power users.<p>I&#x27;m not sure this is generalizable to all web apps, but perhaps this distinction is why I always feel unsatisfied with the web app experience. I&#x27;m always happy to learn shortcut keys, tweak settings, and otherwise speed up the experience of apps I work with frequently. Basically I like being a power user. Web apps rarely cater to this desire and it feels like being stuck in perpetual &quot;novice&quot; mode.<p>Edit: s&#x2F;mobile&#x2F;web
评论 #25305305 未加载
评论 #25311028 未加载
评论 #25306319 未加载
评论 #25304814 未加载
评论 #25313445 未加载
评论 #25311221 未加载
评论 #25307833 未加载
评论 #25314225 未加载
评论 #25305983 未加载
评论 #25311715 未加载
AshleysBrain超过 4 年前
We ported our game development software Construct [1] from a Windows desktop app to the browser in 2017, and haven&#x27;t looked back since - it&#x27;s been great!<p>The approach of &quot;local app in the browser&quot; works very well and is underrated IMO. It&#x27;s the approach we use too - everything is downloaded via a Service Worker for offline support, and it&#x27;s very responsive as nothing needs to wait on the network, unless the user chooses to (e.g. saving their work to Google Drive).<p>Chrome 86 also introduces the File System Access API [2] which is the icing on the cake - you can get read&#x2F;write access to actual local files and folders, bypassing any issues about IndexedDB limits or persistence. I think this is one of the last pieces of the puzzle to make tools like Electron and NW.js more or less redundant, as now you can just do it directly in the browser and not have to ship the whole runtime around to everyone as well.<p>[1] <a href="https:&#x2F;&#x2F;www.construct.net" rel="nofollow">https:&#x2F;&#x2F;www.construct.net</a> [2] <a href="https:&#x2F;&#x2F;web.dev&#x2F;file-system-access&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.dev&#x2F;file-system-access&#x2F;</a>
评论 #25305916 未加载
评论 #25310142 未加载
评论 #25306214 未加载
评论 #25305043 未加载
lovasoa超过 4 年前
I&#x27;m the main author of sql.js (the wasm compilation and javascript API for sqlite that the author uses). It&#x27;s nice to see a cool use case like that. Just wanted to mention that the link to the github project is wrong, it should be :<p><a href="https:&#x2F;&#x2F;github.com&#x2F;sql-js&#x2F;sql.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sql-js&#x2F;sql.js</a><p>we also have a website with a cool URL<p><a href="https:&#x2F;&#x2F;sql.js.org" rel="nofollow">https:&#x2F;&#x2F;sql.js.org</a><p>(Unfortunately the old repo URL is still the first result for &quot;sql.js&quot; on google)
评论 #25306464 未加载
Spivak超过 4 年前
As much as it seems the general tone of HN is firmly against having the File System APIs in browsers it really is the bridge that enables truly offline webapps to work. The fact that the only consistent persistence story is to send your data to a server you don’t control makes everything harder.<p>If we want users to really own their data we have to give webapps somewhere to put it that’s in the user’s control.
评论 #25305442 未加载
评论 #25306721 未加载
PaulBGD_超过 4 年前
Your homepage convinced me to download, the software reminds me a lot of Microsoft Money, which was one of my favorite tools due to its simplicity. Only complaint is no dark mode, but really cool!
评论 #25310986 未加载
streptomycin超过 4 年前
I have a fairly popular app that stores data in IndexedDB. Luckily it&#x27;s a free app and the data is not critical, so it&#x27;s not too bad when users lose their data.<p>How do they lose their data? Three ways, mostly:<p>1. They clear their browser cache, including data in IndexedDB, without realizing that will delete data from my app.<p>2. Some internal browser error. An error message pops up somewhere, they reload the page, and all the data is gone.<p>3. The browser intentionally deletes it because of a quota. In the old days, this was a theoretical concern - allowed by the spec, but browsers never did it. These days, it is a real thing that happens.<p>Something that helps a bit is the persistent storage API <a href="https:&#x2F;&#x2F;web.dev&#x2F;persistent-storage&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.dev&#x2F;persistent-storage&#x2F;</a> but it&#x27;s not ideal. Last I did a deep dive (like a year ago) it was not supported at all in Safari, and it was weird in Chrome (the browser would not allow the user to enable persistent storage unless the user had spent some unspecified about of time&#x2F;activity on the website first).<p>My point is, overall it&#x27;s kind of shitty. The data is local, but users are not in control. The browser is in control, and browsers these days seem to almost have contempt for users. The idea that users can manage their own data - preposterous, we must do it automatically in the background and give the user no control!<p>It&#x27;s good enough for my app, but I would not want to put my budget data in IndexedDB.<p>(That being said, I do appreciate your blog post, and your architecture sounds pretty cool!)
kfk超过 4 年前
If the app lives in full isolation and your focus is data ownership desktop is probably better, but I struggle to understand how it can be better tech for any other use case. I work in a big company so maybe I am biased but 1) every app eventually has to integrate with some other app; 2) every app eventually is used by more than 1 person; in both 1 and 2 desktop pretty much breaks (unless you use version control for 2). In fact we are still dealing with desktop issues as we port this amazing 80&#x27;s-90&#x27;s MS era workflow into the cloud and still train users to &quot;save&quot; files.
评论 #25309752 未加载
评论 #25306971 未加载
Cldfire超过 4 年前
I&#x27;ve been a very happy user of Actual for almost two years now; kudos to jlongster for the fantastic product and wonderful support!
评论 #25311022 未加载
amun-ra超过 4 年前
Interesting app, how does it compare to YNAB?
评论 #25304783 未加载
emmanueloga_超过 4 年前
Are you using the quota API? Looks like you can ask how much space is available, so you could warn the user to free space if it is below some threshold.<p><a href="https:&#x2F;&#x2F;web.dev&#x2F;storage-for-the-web&#x2F;#check" rel="nofollow">https:&#x2F;&#x2F;web.dev&#x2F;storage-for-the-web&#x2F;#check</a>
评论 #25311014 未加载
slykar超过 4 年前
What company I work for did: start a desktop app on a VPS and make it accessible over a web based remote desktop. The app was supposed to run 24&#x2F;7, so it was additional plus for the customer, because now they could have a computer running outside their house.
blntechie超过 4 年前
The best example I would say for similar software is PhotoPea. Just check out how powerful it is and it completely runs locally on browser.
villgax超过 4 年前
<a href="https:&#x2F;&#x2F;sql.js.org&#x2F;#&#x2F;" rel="nofollow">https:&#x2F;&#x2F;sql.js.org&#x2F;#&#x2F;</a>
zelly超过 4 年前
Synthesis: native mobile app
joshmanders超过 4 年前
WASM sqlite3 in the browser because of complex SQL queries? Why not just use PostgreSQL and refactor to make API calls with GraphQL or something?<p>I feel this simple app is too over engineered.
评论 #25305061 未加载