I like the idea! Now you're just left with the dilemma of what happens when you reach many people with it - will Scrappy be made for thousands of users, polished and flashy?
I am 100% behind the idea of "scriptable components" vs block-based programming for beginners.
I'm on mobile now but I'll try this on desktop ASAP.
But I think one thing missing on the analysis is: people want ease of share and zero cost.
It's surprisingly simple to build a minimal app in some environments but then you get to distribution (app store are a huge gatekeeper) and/or hosting and e.g. my wife or kids won't be bothered to pay 5$/momth for it (and neither will many professional devs).
Except the OS has no web server, so you have to find and install one, make sure it auto starts, set up port forwarding (which you might not be able to if you're behind CGNAT or your ISP just doesn't let you)... Then you need to explain to your partner that your computer is running 24/7 to host your shared shopping list or whatever, which will definitely cost more in electricity than a 5$/mo VPS, which was already presumed to be unacceptable
I often create small apps like these for my friends, but 100% of them are written in PHP and plain HTML with some JavaScript. They need to be built quickly, deployed quickly, updated quickly, run on every device, and be runnable by sending a link on WhatsApp.
So it doesn't matter what Apple does because I'm never going to put something like that into any App Store.
Well the reason why you are having to use a web browser rather than sharing the app written using native APIs is because Apple forces you to use the App Store, so you yes did matter what Apple does. They prevent you from using the native toolkit and your use of the browser is partly a workaround for that
EDIT also Apple are in full control of what functionality they expose in their web APIs so even then it matters hugely
> Well the reason why you are having to use a web browser
I don't have to use a web browser; I want to use a web browser. I'm not in the US, so almost nobody I know uses an iPhone, and I could easily send them APKs, but why go through the trouble?
I mean that’s fine but then you can’t use a huge number of system APIs so it is actually a problem if you want to write software that uses your phones features. It is not okay just because iPhones or androids have a web browser. It’s insane to me that you’re even trying to argue that it’s not a problem that Apple do not let you write native software for iOS for free
Also iPhone is not just a US thing. I’m in Germany and iPhone is very popular here too
iPhone Shortcuts can get you surprisingly far. I agree that building hobbyist apps has too high of an entry barrier in the Apple ecosystem but Shortcuts handles CRUD stuff with ease.
Yeah a YouTube video on HyperCard made me realise that Apple just doesn’t care anymore and honestly neither do people, but I honestly think it is brainwashing. If you let people make their own apps then how do you serve them ads and take the 30% revenue cut?
That's an excellent point, that enabling app development by users reduces the monetization potential --- but maybe it's something which would work for opensource?
I'd be very glad to see a platform for the Raspberry Pi (and similar devices) which would simultaneously be simple and easy for folks to access and use _and_ create the kind of sophisticated user interfaces folks are now accustomed to/expect to use for even basic tasks.
CardStock[0] isn’t mentioned in this article, but seems broadly similar in goals and approach to Scrappy. Unlike Scrappy (so far as I can tell) CardStock is open-source and can be run locally.[1]
Decker[2] (which is also open-source) has answers to several of the things outlined on Scrappy’s roadmap, including facilities for representing and manipulating tabular data with its query language and grid widgets and the ability for users to abstract collections of parts into reusable "Contraptions".
I think "vibe coding" will not replace developers in the short term, but it will be the strongest competition for such simple systems. I asked a few LLMs to make apps like these (plain HTML with embedded JS), and they got it right after a few edits. They are also visually more appealing [1].
I am vibe coding a hobby project to find out what's the state of things.
I've found that every few hours I get stuck on an issue that the LLM can't solve and a user with no programming experience would have little hope to crack it either.
I suppose this issue might depend on technology and scope of the project.
Whats your simple system stack, preferably self hostable? I may choose Vue, need auth, a multiplayer offline DB, static hosting, file hosting and preferably filter rows by users (dont allow me to see others data if I fiddle with the api).
If you can get over the critical errors. That's the showstopper for most non-programmers. Perhaps not as much for the so-called "power users" who can hack together some Excel VBA, but even then there's a lot of setup to get simple projects rolling. Down to the little things like knowing that a .js file is a JavaScript file (and what that means). It's obvious to us, but definitely not to the average person, unless they're willing to invest significant time into it - which most aren't.
I was going to call this "a less-feature rich Delphi without Borland's corporate greed", but then I noticed that Delphi is apparently still alive (somehow?). Delphi was one of my earliest programming experiences in the 90s. Blast from the past.
One of the best things that I did was spending a week making a simple app that can put all my Apple Watch walks on a single big map, then sharing it with my friends after it got published on AppStore. It's been a year since I worked on it, but I still get messages from my friends (and some random people who found it!) how they've walked through an entire city or something. Really rewarding experience, despite having zero financial gains from it.
OP is right, making simple apps for your friends for fun!
Not the OPs app but there's an app doing something similar that I enjoyed for many years, you can also import from GPS trackers and others: https://fogofworld.app
Here you go — https://apps.apple.com/us/app/mapcut/id6478268682. It’s really not supposed to be super nice, but good enough to have some active users. It’s free, so have fun! Sorry for putting it behind auth gates, I was experimenting with some other features that required webservers running.
Just think about the thousands of useless obstacles and moats you’ve had to navigate and overcome to make that. How many millions have given up at any one of them.
After all that you still control nothing and are vendor locked.
Imagine if you could just AI prompt that up and simply transfer to your open source watches.
Help build the world you want to see! It will take folks passionately trying to make this open, free, unmonetized vision a reality in competition with the walled gardens you're decrying. I wish you luck if you give it a go!
Fair point, but as I grew up, I realized those things really don’t matter to me. My thought process was — oh, I walk around a lot, I’m curious how much of the city I’ve covered -> oh, there’s no free app for that -> oh, I’ve never made an iOS app and this looks simple -> let’s spend a week making it and share it with friends.
As a side note, as I grew up, I realized I genuinely don’t care about the walled garden flame wars, and things alike. Life is pretty simple, I’d rather walked around a new neighbourhood and grab a pint.
Very nice. For me, LLM fills that niche when I need to build something very small. Just built a dumb tiny flashcard webapp (literally a standalone index.html) because I was tired of apps either being either overly complex for my simple use case, or asking me to register/pay/see ads.
I love the concept. I think the trick to being successful with a project like this is cracking the user experience in a way that makes it powerful enough to be truly useful, while keeping it simple enough that a child can build (scr)apps (c.f. Super Mario Maker).
Making it possible to lookup and store data in a spreadsheet (maybe using something like the Google Sheets API) could unlock a huge amount of use cases.
Google Studio IO apps seems like a step in the same direction. Now if only we could host it on github and take advantage of static github pages.
In the future, optimised open models will enable more people to develop tools locally, and with an open source AIDE (does this term exist yet? Artificial Intelligence Development Environment) publish / share it in different ways.
> You drag objects out on the canvas — a button, a textfield, a few labels. Select an object, and you can modify its attribute in an inspector panel. Certain objects, like buttons, has attributes like “when clicked” that contain javascript code.
Swap JavaScript with VBA and this is the MS Access workflow.
I'd only start using this if it became ooensource though, can find anything to suggest it is.
I feel we are coming at this as programmers, and the opportunity is the community aspect. What about starting with the family run app stores? Masterson style.
No security (you're all friends right) and no way to contribute without an invite. Just a thought.
I agree with the title, but not with the article. I expected to see something like how you can make your friends and family lives easier using your skills as a software developer.
From time to time I come up with micro-projects that solve very particular issues my friends are facing. Ones that are not easily solved with existing apps on the market. When I see my friends use them, it brings me joy!
But! For this I had to use traditional software development tools I was already familiar with - IDE, source control, etc. Scrappy or similar tools would not help me at all. The tool is targeting someone like my non-developer friends, but I doubt they could come up with a design for a solution, implement it in scrappy and then maintain it when something changes in the outside world.
On a separate node, I had great success with spreadsheets as both Frontend and sometimes Backend in various personal projects. And I'm not the only one, my friend made an addon for Google Sheets that pulls data from my specific bank's API - I use it to track my expenses. That's the kind of stuff I wanted to see in the article.
Same thing here, one of my first open source projects was to read a public Google sheet to pull the data, both from the frontend and backend. While Google killed the api that made it possible so I deprecated it, it still holds a precious place in my memories as one of the most collaborative projects I've ever made
> All Scrappy apps are multiplayer, like a Google Doc is. You can even edit them while they are being used by someone else!
ok where is the scrappy backend? what data do you see? where do i make an account? i wish that this was more transparent/discussed since obviously this software is not entirely local?
> LLMs are getting better and better, and while they are far from able to make a full-fledged app without a lot of help from a software engineer, they can make small apps pretty reliably.
mildly disagree. llm generated apps tend to look better + i dont have to learn or stick to your preset primitives. even nontechnical people run into this pretty quickly
Scrappy co-creator here. It was a surprise to us that this blew up on HN. We've hurriedly added an FAQ to the write-up.
In regards to this question about the "Scrappy backend": Scrappy is local-first, so data is stored locally in your browser, and optionally replicated to a lightweight sync server, to help coordinate syncing between peers. In other words, Scrappy is almost entirely front-end. The only third-party dependencies are Yjs <https://yjs.dev/> and CodeMirror <https://codemirror.net/>. We don’t use any other libraries or frameworks like React. There’s no analytics.
And there's no traditional backend. The only cloud dependency is the sync server, which is a plain vanilla y-websocket-server <https://github.com/yjs/y-websocket-server/>.
You can make an awful lot of useful little tools with an LLM, vanilla JavaScript, GitHub Pages, and the user's own localStorage as a semi-persistence layer. Two 9s and cross-platform to boot.
Recently I made a diet checklist [1] that I've been following more or less to the letter 5 days out of the week. I have a little Android button that just opens right up to the web page. I click, click, click, then move on with my day. If I feel I need to change something I can copy a plain text screenshot of what's on there currently and chat with Gemini about it.
+1 over this. As someone without a deep technical background, LLMs enabled me to improve my life unimaginably, being able to quickly sketch and develop small features that remove every day annoyance.
My very first thing was automation of placing my journal entry to appropriate Google Drive folder. I write my brain dump/journal everyday in Google Docs, and if I just click "New document, it places it in the root GDrive folder, and I had to move it manually which I am to lazy to do it.
LLM helped me write a python script that searches the root folder, finds the right document (name is always the date of the day), and searches for the right folder in assigned Google Drive repository (and creates a yearly or monthly folder if a new month starts).
It also helped me create a yaml script for Github actions to trigger this once every day.
I felt like a magician. Since then I created second brain databases, internal index of valuable youtube videos, where I call the api to get transcripts and send it to llm, other note taking automations etc etc
I came here to say exactly this. You can even set up build steps using GitHub Actions if you prefer something beyond vanilla JS, or publish the project for free on Cloudflare, even from private repositories. In addition to localStorage, IndexedDB is also very useful. It's easy to export the app’s data as JSON for better persistence, and you could store it on Google Drive or a similar service.
152 comments
[ 5.0 ms ] story [ 177 ms ] threadI'm on mobile now but I'll try this on desktop ASAP.
But I think one thing missing on the analysis is: people want ease of share and zero cost.
It's surprisingly simple to build a minimal app in some environments but then you get to distribution (app store are a huge gatekeeper) and/or hosting and e.g. my wife or kids won't be bothered to pay 5$/momth for it (and neither will many professional devs).
So it doesn't matter what Apple does because I'm never going to put something like that into any App Store.
EDIT also Apple are in full control of what functionality they expose in their web APIs so even then it matters hugely
I don't have to use a web browser; I want to use a web browser. I'm not in the US, so almost nobody I know uses an iPhone, and I could easily send them APKs, but why go through the trouble?
Also iPhone is not just a US thing. I’m in Germany and iPhone is very popular here too
I'm not arguing with you. You're arguing with me, and I'm not sure why. I don't give a shit about Apple. I'm not defending them, I don't care.
What's insane to me is that on the Internet, people constantly try to pick fights.
https://macosxautomation.com/applescript/develop/index.html
seems to show the current state, which is a heavy lift for most people.
I'd be very glad to see a platform for the Raspberry Pi (and similar devices) which would simultaneously be simple and easy for folks to access and use _and_ create the kind of sophisticated user interfaces folks are now accustomed to/expect to use for even basic tasks.
Decker[2] (which is also open-source) has answers to several of the things outlined on Scrappy’s roadmap, including facilities for representing and manipulating tabular data with its query language and grid widgets and the ability for users to abstract collections of parts into reusable "Contraptions".
[0] https://cardstock.run
[1] https://github.com/benjie-git/CardStock
[2] http://beyondloom.com/decker/index.html
https://news.ycombinator.com/item?id=44216943
and my thanks to you for mentioning it --- that it has a desktop app is _huge_.
[1] https://claude.ai/public/artifacts/bb451732-9559-401a-8000-b...
I've found that every few hours I get stuck on an issue that the LLM can't solve and a user with no programming experience would have little hope to crack it either.
I suppose this issue might depend on technology and scope of the project.
(I wonder if somebody ported Delphi / Lazarus to WASM)
As a developer, I can just make it myself. Now with LLMs, if it's very simple and bounded, I can just vibe most of it with very little to lose.
As a lay person, I don't see what the TAM for this is. Who will spend the time to learn how to drag and drop an application?
https://pyspread.gitlab.io/
OP is right, making simple apps for your friends for fun!
After all that you still control nothing and are vendor locked.
Imagine if you could just AI prompt that up and simply transfer to your open source watches.
What a world that would be.
As a side note, as I grew up, I realized I genuinely don’t care about the walled garden flame wars, and things alike. Life is pretty simple, I’d rather walked around a new neighbourhood and grab a pint.
Making it possible to lookup and store data in a spreadsheet (maybe using something like the Google Sheets API) could unlock a huge amount of use cases.
I'll be watching this project with interest!
In the future, optimised open models will enable more people to develop tools locally, and with an open source AIDE (does this term exist yet? Artificial Intelligence Development Environment) publish / share it in different ways.
Swap JavaScript with VBA and this is the MS Access workflow.
I'd only start using this if it became ooensource though, can find anything to suggest it is.
From time to time I come up with micro-projects that solve very particular issues my friends are facing. Ones that are not easily solved with existing apps on the market. When I see my friends use them, it brings me joy!
But! For this I had to use traditional software development tools I was already familiar with - IDE, source control, etc. Scrappy or similar tools would not help me at all. The tool is targeting someone like my non-developer friends, but I doubt they could come up with a design for a solution, implement it in scrappy and then maintain it when something changes in the outside world.
On a separate node, I had great success with spreadsheets as both Frontend and sometimes Backend in various personal projects. And I'm not the only one, my friend made an addon for Google Sheets that pulls data from my specific bank's API - I use it to track my expenses. That's the kind of stuff I wanted to see in the article.
ok where is the scrappy backend? what data do you see? where do i make an account? i wish that this was more transparent/discussed since obviously this software is not entirely local?
> LLMs are getting better and better, and while they are far from able to make a full-fledged app without a lot of help from a software engineer, they can make small apps pretty reliably.
mildly disagree. llm generated apps tend to look better + i dont have to learn or stick to your preset primitives. even nontechnical people run into this pretty quickly
otherwise, nice labor of love. good going OP.
In regards to this question about the "Scrappy backend": Scrappy is local-first, so data is stored locally in your browser, and optionally replicated to a lightweight sync server, to help coordinate syncing between peers. In other words, Scrappy is almost entirely front-end. The only third-party dependencies are Yjs <https://yjs.dev/> and CodeMirror <https://codemirror.net/>. We don’t use any other libraries or frameworks like React. There’s no analytics.
And there's no traditional backend. The only cloud dependency is the sync server, which is a plain vanilla y-websocket-server <https://github.com/yjs/y-websocket-server/>.
_nice_
Recently I made a diet checklist [1] that I've been following more or less to the letter 5 days out of the week. I have a little Android button that just opens right up to the web page. I click, click, click, then move on with my day. If I feel I need to change something I can copy a plain text screenshot of what's on there currently and chat with Gemini about it.
I'm really liking this new wave of technology.
[1]: https://hiandrewquinn.github.io/diet-checklist/
LLM helped me write a python script that searches the root folder, finds the right document (name is always the date of the day), and searches for the right folder in assigned Google Drive repository (and creates a yearly or monthly folder if a new month starts).
It also helped me create a yaml script for Github actions to trigger this once every day.
I felt like a magician. Since then I created second brain databases, internal index of valuable youtube videos, where I call the api to get transcripts and send it to llm, other note taking automations etc etc
by api you mean youtube api?
And I use youtube api to extract metadata of the video(s)
i am one.
;)