[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)