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...
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.
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!
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?
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.
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-...
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 completeor, 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...
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.
I really like this app. I tried it out but when I wanted copy and paste the first table I created as a template to create the next table, the app asked me for access to read text and images of my clipboard. I don't really like doing that because it seems like your app can read anything of my clipboard at any time?
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.
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.
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
This is interesting and quite an useful tool, but what's the USP from other DB diagram editors
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.
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.
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
I would love this as a desktop app.
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.
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!
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.
"A retro"?
Does this mean "a retrospective"? It's kinda ambiguous - why not type the extra characters?
Cool! Are you planning to add support for a mobile layout?
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 ?
Very cool. Which library do you use for the drag&drop part?
IMO the best way are open a patreon or another crowdfunding option.
[dead]
[dead]
Good
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;
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)