Skip to content(if available)orjump to list(if available)

Show HN: DrawDB – open-source online database diagram editor (a retro)

Show HN: DrawDB – open-source online database diagram editor (a retro)

61 comments

·April 9, 2025

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?

metadata

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

> 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

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.

metadata

I didn't look into the code structure - 60 contributors mean that yes, there is a problem.

People start something with good intentions, then the project grows to the point where it requires a lot of unpaid time, and there are expectations from the users. There are bills to pay and limited time in a day.

I would probably be irked if I contribute in my free time and then see my effort being used in a commercial product. Then again, in some products you may have one person doing 95% of the work and another 50 doing 5% of the work.

If OP is motivated, they can relinquish control over this project and start a completely new one from scratch with no code borrowed from the existing one but learnings can definitely be applied. The new commercial project would need to compete with the existing AGPL project - and that's a good thing. If 60 contributors are contributing significantly, FOSS project won't suffer and the OP will be able to live from something they are passionate about.

jurgenaut23

Out of curiosity, is that also true if you merely want to sell services such as support on top of it? How about customization?

j45

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.

NoSalt

[flagged]

cduzz

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

Are you talking about incorporating a company? Why is this necessary at this stage before earning money? Can be a waste of money.

cduzz

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.

1ilit

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

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

mubou

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

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

nrjames

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

appreciate it!

arcanemachiner

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

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

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.

andrewl

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

Thank you! Yeah we don't have views yet, but will

hmottestad

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.

evanelias

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-...

hliyan

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...

nodesocket

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.

flashgordon

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

appreciate it!

admiralrohan

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.

djfobbz

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