[HN Gopher] Show HN: DrawDB - open-source online database diagra...
       ___________________________________________________________________
        
       Show HN: DrawDB - open-source online database diagram editor (a
       retro)
        
       One year ago I open-sourced my very first 'real' project and shared
       it here. I was a college student in my senior year and desperately
       looking for a job. At the time of sharing it i couldn't even afford
       a domain and naively let someone buy the one i had my eyes on lol.
       It's been a hell of a year with this blowing up, me moving to
       another country, and switching 2 jobs.  In a year we somehow
       managed to hit 26k stars, grow a 1000+ person discord community,
       and support 37 languages. I couldn't be more grateful for the
       community that helped this grow, but now i don't know what
       direction to take this project in.  All of this was an accident.
       But now I feel like I'm missing out on not using this success. I
       have been thinking of monetization options, but not sure if I wanna
       go down that route. I like the idea of it being free and available
       for everyone but also can't help but think of everything that could
       be done if committed full-time or even had a small team. I keep
       telling myself(and others) i'll do something if i meet a co-
       founder, but doubt and fear of blowing this up keeps back.  How
       would you proceed?
        
       Author : 1ilit
       Score  : 229 points
       Date   : 2025-04-09 00:20 UTC (22 hours ago)
        
 (HTM) web link (www.drawdb.app)
 (TXT) w3m dump (www.drawdb.app)
        
       | flashgordon wrote:
       | As someone who is afraid to release personal projects I think
       | what you have done is amazing. Id love to learn From your
       | experience. You are being too humble but this kind of growth is
       | very hardly an accident!
       | 
       | I'm not a monetization expert by any means so take all this with
       | a pinch to salt. If money is not an urgent factor for you you can
       | see how far you can take it especially towards "other verticals".
       | If you can displace any existing incumbants doing so would be
       | easier without the responsibility of supporting paying customers.
        
         | 1ilit wrote:
         | appreciate it!
        
       | cduzz wrote:
       | This seems like a really cool project.
       | 
       | Some observations...
       | 
       | First I'd get some legal advice for how to convert this idea /
       | product into a thing that you own and have a stake in, but that's
       | distinct from you. This means you'd be able to collect money and
       | attribute that money to the product, you'd be able to sell it to
       | someone else and walk away from it, etc. This legal construct is
       | important; probably not _necessary_ but very useful.
       | 
       | You seem to have a reasonable community contributing to and using
       | the project; that's your most valuable asset. Make up a brief
       | roadmap of where you'd like to take the project in six and
       | eighteen months, share that with the community. Think about how
       | some projects, like Elastic.co, grew based on community feedback
       | and how ultimately perhaps those companies felt they needed to
       | change the company in ways that many in the original community
       | disagreed with. There are lots of sides to that coin, and you as
       | the founder need to think about how you'd want to develop the
       | product.
       | 
       | Lastly, once you've got a clear accounting mechanism of how to
       | track money from it and costs of it, you should just .... start
       | asking people for money. "How much is a support contract worth
       | for this?" "How much is it worth to you to focus on developing
       | this feature instead of that?" Obviously -- be very cautious if
       | people are offering money in exchange for fractional ownership of
       | "the thing" but even that may be palatable... but make sure
       | you've had someone representing your interests read the
       | contract...
        
         | admiralrohan wrote:
         | Are you talking about incorporating a company? Why is this
         | necessary at this stage before earning money? Can be a waste of
         | money.
        
           | 1ilit wrote:
           | where i'm currently based, every single cent that can be
           | considered income is tracked and taxed. plus i would have to
           | declare its origin. so there's definitely some legal set up
           | before monetization
        
             | cduzz wrote:
             | You may in fact decide to explicitly _never_ monetize it,
             | which is a perfectly reasonable decision.
             | 
             | You may also find that there are ways of setting the thing
             | up so that _you_ aren 't paid (at least not right now if
             | it's not convenient to be paid) but the thing _is_ able to
             | collect money and use that money to do
             | $RANDOM_BUSINESS_THINGS like pay for hosting and maybe
             | eventually hire a developer...
             | 
             | It's likely that this is all really simple stuff, to
             | someone who knows exactly how thing work in
             | $LOCAL_LEGAL_REGIME
        
           | cduzz wrote:
           | I'm suggesting that starting a project like this should
           | involve consulting with an attorney and possibly an
           | accountant.
           | 
           | It is important, generically, to be friends or at least have
           | a relationship of some sort, with an attorney. This is all
           | _really_ vanilla stuff and they should be able to assess the
           | minimum requirements and financial outlay needed in less than
           | 20 minutes.
           | 
           | You want to be very clear about what the thing is, where you
           | stop and it starts, who owns it. If you're going to be taking
           | money for doing the thing, you want to know how to pay taxes
           | on it, and how to value it (now, when you create it, and
           | later, in the event you plan on selling it).
           | 
           | Make a plan, talk to the attorney about the plan, and
           | understand what steps need to be taken to protect yourself
           | and the project.
           | 
           | You can certainly play fast and loose; it'll probably be
           | fine. You may _have_ to play fast and loose if you have no
           | resources. But there are lots of people who have gotten very
           | badly burned by not paying attention to the rules and fine
           | print in the contract(s).
           | 
           | Examples of things going badly include Redis and CCR, just
           | off the top of my head.
        
       | nrjames wrote:
       | Not everything has to be monetized. You will have other ideas or
       | maybe you'll take this further. It's a ton of work to build a
       | thriving business, and you may lose some of your joy and pride
       | along the way.
       | 
       | You created a useful tool and have the support of the community!
       | That's pretty cool. Congrats!
        
         | 1ilit wrote:
         | appreciate it!
        
       | andrewl wrote:
       | I experimented with this for five minutes, and so far it looks
       | great. The one thing missing, or that I didn't see in five
       | minutes, is that when I uploaded the schema for one of our SQLite
       | databases, the tables came out perfectly, but the views were
       | ignored. There are a lot of views, and we would want them in the
       | diagram. I will definitely be coming back to it. As I say, what I
       | saw was great.
        
         | 1ilit wrote:
         | Thank you! Yeah we don't have views yet, but will
        
           | hmottestad wrote:
           | If you wanted to commercialise this, then you could do it on
           | a feature basis.
           | 
           | Create a paid version where you add more features, like
           | support for views.
        
       | 999900000999 wrote:
       | Looks very very cool!
       | 
       | Think about enterprise features you can charge for, and see what
       | your community thinks.
       | 
       | If 100 people per month can pay 50$, that's 5k which is very nice
       | for a side project!
       | 
       | For myself, I absolutely would love this as a Django plugin!
        
         | 1ilit wrote:
         | >If 100 people per month can pay 50$, that's 5k which is very
         | nice for a side project!
         | 
         | sounds too good to be true xd
         | 
         | >For myself, I absolutely would love this as a Django plugin!
         | 
         | after migrations, will be adding orms. or some plug in system
         | for anyone to add whatever they want. don't know how but would
         | be a fun feature to work on
        
       | andrewdon wrote:
       | Very cool. Which library do you use for the drag&drop part?
        
         | 1ilit wrote:
         | Thanks! No library. Just svg, foreign objects, and event
         | listeners
        
       | admiralrohan wrote:
       | Congratulations on releasing the product and its success.
       | 
       | You will likely have to compete with Supabase's diagram editor
       | (there might be other competitors too), which has AI integrated.
       | You can check it out and see if you can improve your system.
       | Their product is open source as well, so you can review the code.
       | 
       | The simplest monetization path would be to keep it free and
       | charge users for AI access. However, don't hire a team, as it may
       | not be viable against other big players in the long run.
        
       | mubou wrote:
       | It can even export as Mermaid? That's awesome. I could see that
       | being super useful as a way to take a db schema and turn it into
       | a chart for a github readme. Definitely bookmarking this.
       | 
       | Btw, the SQL import doesn't seem to work for an sqlite `.schema`
       | dump; it breaks on the PRIMARY KEY here:                   CREATE
       | TABLE IF NOT EXISTS "__EFMigrationsHistory" (
       | "MigrationId" TEXT NOT NULL CONSTRAINT "PK___EFMigrationsHistory"
       | PRIMARY KEY,             "ProductVersion" TEXT NOT NULL
       | );
       | 
       | (This is the standard migrations table that Entity Framework
       | creates.)
       | 
       | W/r/t monetization, you should know there's a really powerful
       | flowchart tool called draw.io that's already free. It's not
       | tailored specifically towards databases the way yours is, but it
       | can make similar graphs, so if you go too hard on monetizing you
       | might cause people to just use that instead. Maybe there are some
       | more B2B-oriented extensions or db integrations, or maybe a team
       | collaboration feature you could add without compromising the core
       | tool.
        
         | 1ilit wrote:
         | thank you!
         | 
         | regarding the sql import, it breaks because of the parser. i'm
         | using a 3rd party parser to parse sql and pull out everything
         | needed for the diagram. i'll report it to them, thanks for
         | letting me know
        
       | ptodorov wrote:
       | Awesome work! We've been searching for something to switch away
       | from MySQL Workbench for years, but the one feature we need is
       | the automatic generation of SQL migration based on a current and
       | a new schema.
        
         | 1ilit wrote:
         | Coming... https://imgur.com/a/U8cbJ5Y. Working on versioning,
         | based on which migrations will be generated.
        
           | nopcode wrote:
           | that's really impressive.
        
       | Wilnick wrote:
       | Good
        
       | hliyan wrote:
       | A suggestion based on an idea that I've been trying to implement
       | for a while: consider replacing the left panel's form editing
       | experience with an assistive command line at the bottom.
       | 
       | E.g. rather than clicking table, "add field", clicking the name,
       | typing, clicking the type drop down etc., just start writing
       | something like:                   : users.add_column
       | name: email         type: varchar         length: 200
       | 
       | etc., with some assistive auto complete
       | 
       | or, if you're inclined to using an LLM:                  add
       | column email to users table, varchar(200)
       | 
       | or, for those who want strict sql:                  alter table
       | add column...
        
       | arcanemachiner wrote:
       | This looks a lot like ChartDB[0]. Is that correct? If so, how
       | would you compare the two tools, or better yet, distinguish yours
       | from theirs?
       | 
       | [0] https://github.com/chartdb/chartdb
        
         | 1ilit wrote:
         | hehe mine was up and running way before theirs. but we have
         | diverged quite a bit. might be biased but i think mine is
         | easier to jump right in. mine is more like the draw.io of
         | database editors while theirs is the miro, yk?
        
           | arcanemachiner wrote:
           | LOL I don't know actually, but I will definitely give your
           | project a go when I have to mock up my next DB schemas.
           | 
           | It seems like your project is more grassroots than theirs, so
           | hopefully you can use it to make some money... Not sure how
           | your platform works, but do you provide (paid) storage,
           | syncing, multi-user collaboration, etc.? That seems like the
           | predictable monetization strategy.
        
       | burrish wrote:
       | why do I only see the warning
       | 
       | "Attention! The diagrams are saved in your browser. Before
       | clearing the browser make sure to back up your data."
       | 
       | only at the very bottom of the home page ?
        
         | 1ilit wrote:
         | good point
        
       | h1fra wrote:
       | Failed to import a Postgres export with all of this errors:
       | 
       | - "missing_fields" _text NOT NULL DEFAULT ARRAY[]::text[]
       | 
       | - "status" text NOT NULL DEFAULT 'RUNNING' ::text CHECK (status =
       | ANY (ARRAY['RUNNING'::text, 'PAUSED'::text, 'STOPPED'::text,
       | 'SUCCESS'::text]))
       | 
       | - DROP TYPE IF EXISTS "script_trigger_event";
       | 
       | - CREATE UNIQUE INDEX name ON table_name USING btree(unique_key,
       | environment_id, deleted_at) NULLS NOT DISTINCT;
        
         | 1ilit wrote:
         | yep, parser issues. will report it, thanks for letting me know
        
       | andybak wrote:
       | "A retro"?
       | 
       | Does this mean "a retrospective"? It's kinda ambiguous - why not
       | type the extra characters?
        
         | 1ilit wrote:
         | yeah, we call our end-of-year 'summaries' 'retros' at work, i
         | put it there without even thinking
        
       | pseudoeu wrote:
       | IMO the best way are open a patreon or another crowdfunding
       | option.
        
         | 1ilit wrote:
         | i had a buy me a coffee link for a while. then idk what got
         | into me and i starting feeling bad for the $20 someone donated
        
       | rathboma wrote:
       | Hey! This is awesome! Great job :-)
       | 
       | I make Beekeeper Studio, another open source db tool (although v
       | different), we started charging for a pro version 2 years ago.
       | Would be cool to connect! I can tell you what we did and what did
       | and didn't work - Matthew (at) beekeeperstudio (dot) io
        
         | 1ilit wrote:
         | thanks! would love to connect
        
       | clarkevans wrote:
       | I'm curious if you are planning for auto-layout? It's not listed
       | in your features list but it's one of the most important and
       | challenging to do well.
        
       | ThinkBeat wrote:
       | I would love this as a desktop app.
        
       | sillyboi wrote:
       | Cool! Are you planning to add support for a mobile layout?
        
       | metadata wrote:
       | Just for the context, I've been making (and selling) database
       | (migration/translation) tools for 20-ish years.
       | 
       | What you have built can definitely become a product supporting
       | you with a very nice income. Free version can stay free but you
       | can sell solo licenses and team licenses as subscriptions. Paid
       | license users will also have your support - and that matters to
       | companies.
       | 
       | As others have said, commercial features can be built on top of
       | the OSS product, like Electron desktop client, support for more
       | databases, for views/procedures etc.
       | 
       | There is no downside to trying to commercialize this. Whoever
       | wants to use what you have built so far can continue and I
       | guarantee that many companies would be happy to give you
       | $50/month for a more advanced version with support.
       | 
       | (edit for typo)
        
         | ranger_danger wrote:
         | > There is no downside to trying to commercialize this
         | 
         | I know lots of people in the FOSS community who would stop
         | using it as soon as you "sold out"... but those people probably
         | don't represent the majority of potential users.
        
           | evanelias wrote:
           | Legally, any enhanced version would need to remain FOSS
           | anyway. It appears to be an AGPL-licensed project with 60+
           | contributors and no CLA, so the codebase has 60+ different
           | copyright holders.
           | 
           | Monetization of a GPL or AGPL project generally involves a
           | CLA so that the creator can offer closed-source and/or SaaS
           | enhancements while still accepting third-party contributions.
           | Without a CLA, the project creator would be violating the
           | copyright license that was granted by the third-party code
           | contributors. He/she doesn't own their code and cannot
           | relicense it in a way that violates the AGPL.
        
           | j45 wrote:
           | A solo developer trying to find a way to offer something for
           | free and eat shouldn't be mutuals exclusive.
           | 
           | Selling out is relative to having one's living costs somehow
           | subsidized.
           | 
           | Not everyone has the same financial safety nets, and likely
           | most have to create a safety net for themselves.
           | 
           | Maintaining a clear line between the free size and paid
           | should be easier here compared to other tools should the
           | developer decide to go that way.
        
       | djfobbz wrote:
       | This is very cool! I have some feedback:
       | 
       | 1. Allow for adjusting grid spacing and grid point size.
       | 
       | 2. I can't seem to find a snap-to-grid option (e.g., a magnet
       | icon).
       | 
       | 3. Allow docking of the sidebar to the left or right of the
       | screen.
       | 
       | 4. When the sidebar is hidden, the popover does not include tabs
       | for Relationships, Subject Areas, and Notes. It would be nice to
       | have those available.
       | 
       | 5. Allow sidebar width customization in pixel size or percentage
        
       | hoppp wrote:
       | Not bad, I bookmark it, its good for prototyping ideas.
       | 
       | If it doesn't cost you much money you should keep it free and
       | maybe sell an advanced version aimed at companies.
       | 
       | There are already similar things like this in the market, you
       | could easily create an advanced version by adding paid AI prompts
       | that generate code.
        
       | nodesocket wrote:
       | A quick(ish) and obvious path to monetization would be offering a
       | SaaS hosted version. The obvious barrier here is how to connect
       | to databases that are private (not publicly accessible). VPN,
       | Wireguard, Twingate etc can be utilized but still a barrier.
       | 
       | I own and run a DevOps consulting company and if you have
       | interest I may be able to assist you getting the hosted platform
       | up and running. It is built currently to be multi-tenant with
       | projects/organizations and users supported? Gonna need single
       | sign-on support as well.
        
       | evanelias wrote:
       | Looks really great! But regarding monetization, one word of
       | caution that other commenters haven't mentioned so far: make sure
       | you have a really good understanding of the licensing concerns
       | before proceeding.
       | 
       | Initial disclaimer: I am not a lawyer and this is not legal
       | advice.
       | 
       | Your project is using AGPL, without a CLA, and you have third-
       | party contributors. If I understand correctly, this essentially
       | prevents anyone from having an enhanced closed-source version
       | (SaaS or otherwise) of your product -- even you. Although you
       | created it, you only own the copyright for your own portion of
       | the code. Third party contributors own the copyright for their
       | contributions, which are equally subject to the terms of the AGPL
       | for everyone.
       | 
       | So if you wanted to monetize an enhanced version, you have two
       | options, if I understand correctly:
       | 
       | A) Keep the enhanced version entirely open source. You can charge
       | for a hosted version but users must be able to self-host. Obvious
       | downside: this leads to weird misaligned incentives where your
       | revenue can depend on your project being difficult to
       | install/host.
       | 
       | or
       | 
       | B) Obtain a licensing agreement from all third-party contributors
       | since the time you switched to AGPL, or completely re-write any
       | code where you can't get that agreement. Might not be practical.
       | 
       | You could try alternative monetization methods that don't rely on
       | an enhanced version, such as support contracts or sponsored
       | development of new features, but these are hard to scale...
       | especially since a decent number of tech companies have a blanket
       | ban on using AGPL projects that aren't dual-licensed.
       | 
       | This isn't to say AGPL is bad, just that it's a nuanced topic.
       | There are lots of blog posts out there about the monetization
       | implications, for example here's one from the cofounder of
       | GitLab: https://www.opencoreventures.com/blog/agpl-license-is-a-
       | non-...
        
       | ranger_danger wrote:
       | I tried it with a mysql project that has ~150 tables, which I
       | have been struggling to find a good way to visualize in general,
       | but it became extremely slow and overlapped a lot of information
       | so it was basically unreadable/unusable.
       | 
       | The examples look quite nice though.
        
       ___________________________________________________________________
       (page generated 2025-04-09 23:01 UTC)