▲ | Show HN: One prompt generates an app with its own database(manyminiapps.com) | ||||||||||||||||||||||||||||||||||||||||||||||
78 points by stopachka 3 days ago | 60 comments | |||||||||||||||||||||||||||||||||||||||||||||||
Hey HN, manyminiapps is the world first massively multiplayer online mini app builder (MMOMA) *Here’s what it does:* You load the page. You write 1 prompt and you get a mini app back in under 2 minutes. There’s no sign up, and you can see what everyone’s creating in real-time! Each mini app comes with it’s own database and backend, so you can build shareable apps that save data. *What’s different* There are a lot of app builders that promise you’ll build production software for others. But we think true production software can take a long time to get right. Even if you don’t need to program there’s a lot of work involved. What if we turned the promise around? Instead of “you vibe code software companies”, it’s “you build fun software for yourself”. If you cut the problem right, LLMs as they are today can already deliver personal software. manyminiapps is meant to be an experiment to demonstrate this. You may wonder: do you really need personal software? We’re not 100% sure, but it’s definitely an interesting question. Using manyminiapps so far has been surprising! We thought our friends would just try to build the common todo app, but instead we found them building wedding planners, chord progression helpers, inspiration lists, and retro games. *How it works* Instead of spinning up VMs or separate instances per app, we built a multi-tenant graph database on top of 1 large Postgres instance. All databases live under 1 table, on an EAV table (entity, attribute, value). This makes it so creating an “app” is as light as creating a new row. If you have heard of EAV tables before, you may know that most Postgres experts will tell you not to use them. Postgres needs to know statistics in order to make efficient query plans. But when you use EAV tables, Postgres can no longer get good statistics. This is usually a bad idea. But we thought it was worth solving to get a multi-tenant relational database. To solve this problem we started saving our own statistics in a custom table. We use count-min sketches to keep stats about each app’s columns. When a user writes a query, we figure out the indexes to use and get pg_hint_plan to tell Postgres what to do. *What we’ve learned so far* We’ve tried both GPT 5, Claude Opus, and Claude Sonnet for LLM providers. GPT 5 followed the instructions the best amongst the models. Even if you told it a completely nonsensical prompt (like “absda”, it would follow the system prompt and make an app for you. But GPT 5 was also the “most lazy”. The apps that came out tended to feel too simple, with little UI detail. Both Claude Opus and Sonnet were less good at following instructions. Even when we told them to return just the code, they wanted to returned markdown blocks. But, after parsing through those blocks, the resulting apps felt much better. To our surprise, we didn’t notice a difference in quality from Opus and Sonnet. Both models did well, with perhaps Sonnet following instructions more closely. To get good results we iterated on prompts. We initially tried giving point-by-point instructions, but found that a prompt with a full example tended to do better. Here’s what we landed on: https://gist.github.com/stopachka/a6b07e1e6daeb85fa7c9555d8f... Let us know what you think, and hope you have fun : ) | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | yosser 3 days ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
It just cloned a very primitive slack copy for me https://light-whale-5opfal.manyminiapps.com Well done guys. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | stragulus 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Pretty cool! Some nice examples: A collaborative pixel-based image builder: https://peace-robin-a2dw95.manyminiapps.com/ Analog synthesizer controlled by accelerometer: https://magic-gold-z13d9k.manyminiapps.com/ | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | eatthatpie 2 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Wow, this is actually super cool! Doesn't look like another GPT wrapper. The result is kind of a nice quality too: https://vital-star-5z6w40.manyminiapps.com/ Great work! Any future plans on this? | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | cluckindan 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
This is absolutely fantastic! Here’s a bear that poops prime numbers. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | jjbinx007 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Surprisingly good. I asked it to create a quiz that asks if a celebrity is alive or dead and it made this: https://hope-rock-071r26.manyminiapps.com It decided which celebrities to use and also sourced photos for some of them | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | tosh 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
How are you generating the apps? Do you use an agent SDK or is it home grown? The everything in one EAV table concept sounds very interesting as well. Can you say more about that? What kind of queries does it support? Sounds a bit like datomic or datascript. How do you tell the agent to use it? | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | stopachka 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Note for folks trying to hack this :) -> Each mini app runs on a subdomain, and the code is evaluated on the local machine. Since a few hackers are interested in the LLM details: Right now we are running Opus 4.1, but we might switch it. | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | NoSalt 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Application error: a client-side exception has occurred while loading pure-palm-djnlwn.manyminiapps.com (see the browser console for more information). Uncaught QueryValidationError: At path 'worlds.snapshots.$': 'limit' can only be used on top-level namespaces. It cannot be used in nested queries. NextJS 7 tP tL tq tq tV subscribeQuery subscribeQuery 122-677938205b479825.js:1:45042 NextJS 128 tP tL tq tq tV subscribeQuery subscribeQuery a av o0 ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS ux uS | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | Incipient 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Wow people are asses on the internet. Great job making prompts public. It's pretty hilarious to see how basic and bitter some people are haha. Cool tool however. Very coherent output given how I find AI. One question however, if op or anyone knows, any good way/at all to feed a UI and UI interactions back into a model? | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | apricot13 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
this is incredible! I've managed to get an error in one of my attempts though. I'm on mobile so unable to look at the console, it would be great to be able to mark it as broken an application to create a database and API of Sylvanian families and track which ones you own and want: https://lush-swan-w7nqsq.manyminiapps.com/ interesting to see that the first app I created allowed user submissions and within seconds there was a slur submitted but now that submission has been removed! | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | yehoshuapw 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
that is very fun to play with, thanks! it took a bunch of tries to get it to do what I wanted, but https://neat-otter-bj288v.manyminiapps.com a crochet spiral counter helper https://calm-puma-bqqdmr.manyminiapps.com - a falling sand game I'm quite impressed | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | throwaway0236 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
I asked it to make a game where you place movies on a time line by dragging the movie poster. Instead of the movie poster, it decided on its own to use icons that represent the movie instead (a pill represents Matrix, a gun Goodfellas etc.). I was surprised by its creativity to get around any copyright issues. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | udioron 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
wow it works https://joyful-star-ow6vuo.manyminiapps.com/
| |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | stopachka 2 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Update Sep 19: Alas, we had to add sign in, and scope sign ins to users with an @gmail.com account. We got a few trolls who were really motivated to use up as many tokens as possible. We tried blocking Eastern Europe and Indonesia, but that wasn't enough. Hopefully the sign up will help alleviate this a bit. | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | meandmycode 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Absolute cinema https://true-deer-rsndsw.manyminiapps.com | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | sladix 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
You probably want a first moderation layer before triggering the whole process | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | OutOfHere 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
I made one, and it didn't work at all. Clicking the button in its UI did nothing. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | loulouxiv 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Tried to make it generate a multiplayer card game unfortunately it does not work : https://noble-bee-hmay7x.manyminiapps.com | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | ramesh31 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
>You load the page. You write 1 prompt and you get a mini app back in under 2 minutes. Then what? | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | ch4s3 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Some of there are pretty cools, trying to see if it can run a multiplayer doom. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | dawnerd 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
https://happy-oak-1pe974.manyminiapps.com tried to recreate itself | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | stopachka 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Update: Claude just went down. We are switching to GPT 5 right now. Will update as soon as we're deployed. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | johannesberlin 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
this was a lot of fun, built a typography “preview/randomise” app https://loyal-dove-y9n5ku.manyminiapps.com | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | rjh29 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
I tried a few random apps but the UI section was blank white... | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | cognomano 3 days ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||
We are not in Kansas anymore. Well done. |