Show HN: One prompt generates an app with its own database

(manyminiapps.com)

76 points | by stopachka 1 day ago

26 comments

  • eatthatpie 20 hours ago
    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?

  • stragulus 1 day ago
    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/

    • stopachka 1 day ago
      This is really cool! I am having trouble getting my iPhone to make sounds, so I couldn't quite test the accelerometer. But on the laptop just the default sounds is really pleasing.
  • cluckindan 1 day ago
    This is absolutely fantastic!

    Here’s a bear that poops prime numbers.

    https://bright-herb-ifuriq.manyminiapps.com/

    • stopachka 1 day ago
      Fun note: I tried opening this in two tabs, and indeed the poops were real-time!
  • yosser 1 day ago
    It just cloned a very primitive slack copy for me

    https://light-whale-5opfal.manyminiapps.com

    Well done guys.

    • stopachka 1 day ago
      Appreciate the kind words :). Looks like there's a lively conversation in there!
  • jjbinx007 1 day ago
    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

    • stopachka 1 day ago
      Cool! It always surprises me how well LLMs can remember things: even full URLs are no match for it.
    • reddit_clone 1 day ago
      Cool. I gave it a shot. It repeated Betty White :-)
  • tosh 1 day ago
    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 1 day ago
      > 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?

      Yes, we definitely take inspiration from datomic and datascript, as well as Tao (Facebook's DB). EAVs have a few good properties. First, it's more natural to do last-write-wins at the column level this way. Second, we get a real shot at creating a multi-tenant database.

      With EAVs you can either query them with datalog, or use SQL CTEs. Fun fact, on Instant's backend, we use a datalog-like langauge as intermediary representation, which ends up converting to a SQL CTE.

      Technically, you can make query on these as you can on a traditional SQL DB.

      To interact with all this, users (and in proxy agents) use a graphql-like language, called InstaQL. It's like if GraphQL was represented as plain javascript objects.

      Here's the system prompt, which shows these off:

      https://gist.github.com/stopachka/a6b07e1e6daeb85fa7c9555d8f...

    • stopachka 1 day ago
      > Do you use an agent SDK or is it home grown?

      It's about 260 lines of home-grown code. Here's a snippet of how it looks:

      https://gist.github.com/stopachka/a38f00545d048661cf15a3cf4d...

      Two interesting things there:

      1. Since Instant is reactive, we use it to convey the stream to the client. This way all chats are "resumable" by default, even if the user refreshes the page.

      2. To make sure Instant writes don't block the stream, we use a "natural" buffer approach. Basically tokens from the LLM buffer up during every save.

  • stopachka 1 day ago
    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.

  • Incipient 22 hours ago
    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?

    • stopachka 17 hours ago
      > Great job making prompts public.

      Lesson learned, we just added a content moderation filter!

      > any good way/at all to feed a UI and UI interactions back into a model?

      Right now no, but it's definitely something we'd want to explore. That, and "forking" could be interesting.

  • stopachka 13 hours ago
    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.

  • apricot13 22 hours ago
    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!

  • NoSalt 1 day ago
    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

    • stopachka 1 day ago
      Oh, interesting! I just took a look.

      I updated the system prompt a bit, here's a version of your app that's working with it:

      https://brave-elm-7m6ar8.manyminiapps.com/

      (The chat: https://www.manyminiapps.com/?c=1a5d3481-d2e2-414c-a7c3-4d0c...)

      ---

      For the curious, the issue was that the LLM originally decided to write the query:

      ```

          const { data } = db.useQuery({
            worlds: {
              $: { order: { createdAt: 'desc' } },
              snapshots: {
                $: { order: { timestamp: 'desc' }, limit: 1 }
              }
            }
          });
      
      ```

      But we don't support limits on subqueries yet.

      We had a specific note in the system prompt warning the LLM to avoid this. Interestingly, _removing_ the warning fixed the issue. I guess it's kind of like telling someone to not think of a red elephant.

      • NoSalt 17 hours ago
        Woah ... I am now 100% impressed!!! This is absolutely FANTASTIC!!!
        • stopachka 17 hours ago
          Thank you for the kind words!
  • yehoshuapw 21 hours ago
    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 23 hours ago
    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.

    https://great-orca-9mjte9.manyminiapps.com

    • SahAssar 19 hours ago
      Doesn't seem to work for me on desktop chrome or firefox (linux), dragging the movie does nothing.
      • throwaway0236 19 hours ago
        It works for me (desktop chrome on mac). There are some glitches sometimes when the movies start spanning more than one row.

        The initial movie needs to be dragged on the thin white line (not exactly good ux). Perhaps it's not visible?

        Also, if you have dragged the first movie and place the second movie incorrectly, it will be placed back in the "stack"

    • v-yanakiev 22 hours ago
      Doesn't seem to work on mobile (Safari).
  • udioron 1 day ago
    wow it works https://joyful-star-ow6vuo.manyminiapps.com/

        > build a bingo board app for a group of friends. the owner  enters texts (options) in a textbox.
        > A link is generated that can be sent to participants.
        > They enter their name and can can mark bingo options (5x5 with joker at center) and see a scoreboard.
    • serial_dev 1 day ago
      I got this with a very short and basic prompt, it lets the user track blood sugar and ketone levels.

      It worked really well, and it was very fast, especially considering that it is on the front page of HN. Congrats, very cool project

      Link to the app https://vital-crow-mmrs4s.manyminiapps.com/

  • sladix 22 hours ago
    You probably want a first moderation layer before triggering the whole process
    • stopachka 17 hours ago
      Just added this, thank you. It's interesting how the trolls were quiet effectively between 8AM - 9PM yesterday. They really do look to work at night.
    • pixel_popping 21 hours ago
      [dead]
  • meandmycode 1 day ago
    • stopachka 1 day ago
      Huh, that's a lot of creativity from the LLM! I am always surprised by it.

      I was curious how GPT-5 would do with your prompt. Here's what it got:

      http://noble-orca-yq331e.manyminiapps.com/

      It got something, but _much_ less creative then Claude in this instance.

  • loulouxiv 1 day ago
    Tried to make it generate a multiplayer card game unfortunately it does not work : https://noble-bee-hmay7x.manyminiapps.com
  • ch4s3 1 day ago
    Some of there are pretty cools, trying to see if it can run a multiplayer doom.
    • stopachka 1 day ago
      Oo cool idea! We don't limit the input size, so you could add more context. I wonder if giving it some docs on Instant's presence [1] could help it do the right thing with Doom. Ideally movements should be ephemeral rather than stored in the DB, and the system prompt we have doesn't say too much about that.

      [1] https://www.instantdb.com/docs/presence-and-topics.md

      • ch4s3 1 day ago
        Here's my prompt

        >Build a simple lofi black and white multiplayer doom clone where players drop in near each other in a procedural generated forest world. The graphics should be 2d in a 3d world. Players enter their name before joining. The DB tracks players names, scores, deaths, total play time. When a players is shot too many times and dies they randomly respawn. Players should spawn within visual range of each other. add some harmless non-players animals that roam around. generate some forest background noise to play. players should make a little sound when they walk that other players can hear. players should be able to hide behind trees. Try to make it fun.

        It basically worked. https://www.manyminiapps.com/?c=da20213e-6832-4cd8-ac73-7669...

      • ch4s3 1 day ago
        Thanks again! This really gave me the familiar old feeling of finding something delightful online.
    • ch4s3 1 day ago
      • stopachka 1 day ago
        Great work!
        • ch4s3 1 day ago
          oh no, great work to you getting this strung together as a system.
  • dawnerd 1 day ago
    • stopachka 1 day ago
      Nice! I liked it's creativity in there. Since it doesn't haven LLM to generate code, it just writes a basic boilerplate and inserts your prompt.

      Ah, wish there was a way it had access to babel/runtime. [1]

      [1] Though then the mini app builder inside the mini app builder would have a security vulernability, if the mini mini apps actually evaluated.

  • stopachka 1 day ago
    Update: Claude just went down. We are switching to GPT 5 right now. Will update as soon as we're deployed.
    • stopachka 1 day ago
      Update 2: Claude seems to be back. We have the GPT 5 version ready, just in case now : )
  • johannesberlin 1 day ago
    this was a lot of fun, built a typography “preview/randomise” app https://loyal-dove-y9n5ku.manyminiapps.com
    • stopachka 1 day ago
      Cool!

      Played it a bit and found a nice combo:

      Heading: JetBrains Mono 400 @ 48px Body: Merriweather 300 @ 16px

  • rjh29 1 day ago
    I tried a few random apps but the UI section was blank white...
    • stopachka 1 day ago
      Oh that's weird. Would you mind sending over a few links of the apps you made?
  • cognomano 1 day ago
    We are not in Kansas anymore.

    Well done.

  • OutOfHere 1 day ago
    I made one, and it didn't work at all. Clicking the button in its UI did nothing.
  • ramesh31 1 day ago
    >You load the page. You write 1 prompt and you get a mini app back in under 2 minutes.

    Then what?

    • stopachka 1 day ago
      I would suggest sharing the app you built, and seeing what others come up with.

      Technically you could use the apps for yourself too, though everything is public so be wary.

    • normie3000 1 day ago
      Clicking "make" takes me straight back to the first page.
      • stopachka 1 day ago
        Are you still seeing this issue? I am not able to repro. If you could give me a few steps I can take can try to fix the bug
    • sunrunner 1 day ago
      Easy.

      Step 2. Scale unicorn SaaS to $1B valuation

      Step 3. Sell it, become rich, buy superyacht