
Show HN: InventHub – Visual version control for electronics design - usamaabid
https://inventhub.io
======
kasbah
The UI looks and feels very polished. Congrats on shipping. Well done! Nice
work on not re-inventing the wheel and using Git as well.

> Automated BOM generator that can detect parts in a project and give you a
> cost estimation of how much the parts will cost.

I imported a project [1] but couldn't find anything about the BOM (though I
have several in the repo). This is something I have been working on for
[https://kitspace.org](https://kitspace.org). We may be able to collaborate on
some standardisation here (e.g. the repo I imported has a kitspace.yaml file
that points at the BOM - the BOM formatting is standardised as well - I can
link you to the docs if you wish).

Other than that, something I'd really like to see as a user is the ability to
add my SSH public key and even better would be the ability to just "sync" an
existing Git repository. This is something that
[https://cadlab.io](https://cadlab.io) has and it seems to be very similar to
InventHub.

Can you talk more about the technologies used to build this? What's your
front-end framework of choice? Did you implement Git-hosting from scratch or
did you manage to reuse an open source project like Gitea or Gogs?

[1]:
[https://app.inventhub.io/kaspar/sangaboard/tree/master/](https://app.inventhub.io/kaspar/sangaboard/tree/master/)

~~~
usamaabid
Hi, Thank you so much for your kind words and appreciation. we tried our best
to make the UI user friendly, glad that you liked it :)

Definitely, there was not point of making something from scratch in place of
Git.

> Automated BOM generator is under-development and is not released yet. I just
> visited [https://kitspace.org](https://kitspace.org) and I really like what
> you are doing. I totally agree there needs to be a standardization and we
> can definitely collaborate on this. It would be great if you can link me to
> the docs so we can improve the feature we are building.

Also, what will be the best way to get in touch with you I would like your
feedback on BOM generator.

> SSH Keys & Sync feature with other Git repos are in development and will be
> out soon. It nice to see someone else doing the same thing, the more the
> better.

> Technologies - We implemented git from scratch because we were initially
> more focused on the design conversion + faster rendering. Now when we were
> thinking to expand on git like features it was taking us too much time so we
> are considering to utilize Gitea and focus more on hardware centric
> features.

Frontend - ReactJS Backend - NodeJS, GoLang, Python(Server-less functions for
design conversion) Database - MongoDB and MYSQL

We figured the limitation of NodeJS and are now planning to migrate the
infrastructure on GoLang. Gitea will come in handy for this as well. A lot of
things will come off the shelf.

~~~
kasbah
Nice, thanks for the honest answers about the tech. I think focusing in on
what makes hardware different is definitely the right move. I have been
working on using Gitea as the Kitspace back-end as well.

Regarding the BOMs, the manifest is documented on the Kitspace readme [0]. The
BOMs themselves are mainly documented in the 1-click BOM readme [1]. I also
put an MIT licensed parsing library on NPM [2].

The parsing library has seen a lot of feature creep, expanding what it
accepts: it can now parse Excel, ODS and even .kicad_pcb. However, what it
outputs may be the more useful standard. BOMs in this format have predictable
headings, are tab-seperated (so you can actually just parse by splitting on \n
and \t) and are always served on

    
    
        https://kitspace.org/<project>/1-click-BOM.tsv (e.g. [3])
    

My email is in my HN profile, always happy to talk more about it.

[0]: [https://github.com/kitspace/kitspace#kitspaceyaml-
format](https://github.com/kitspace/kitspace#kitspaceyaml-format)

[1]: [https://github.com/kitspace/1clickBOM#all-cad-
programs](https://github.com/kitspace/1clickBOM#all-cad-programs)

[2]: [https://www.npmjs.com/package/1-click-
bom](https://www.npmjs.com/package/1-click-bom)

[3]:
[https://kitspace.org/boards/gitlab.com/bath_open_instrumenta...](https://kitspace.org/boards/gitlab.com/bath_open_instrumentation_group/sangaboard/sangaboard_v0.4/1-click-
BOM.tsv)

~~~
usamaabid
No problem! >I have been working on using Gitea as the Kitspace back-end as
well.

That's great do let me know how was your experience. Will let you know if we
plan to use gitea may be my development will of help for you as well with
regards to using Gitea.

> Regarding the BOMs, the manifest is documented on the Kitspace readme [0].
> The BOMs themselves are mainly documented in the 1-click BOM readme [1]. I
> also put an MIT licensed parsing library on NPM [2].

This is amazing and very thoughtful project. Its a really good standard for us
to adopt and expand on with regards to our ideas of BOM generator and I see a
very solid base line. I am going to sit and tinker with this tonight.

Thanks for sharing the contact info, will be in touch soon to share the ideas
and get your feedback.

~~~
kasbah
Good stuff, thanks for the kind words. If you are trying the lib, probably
best to use it straight from GitHub. I got a bit sloppy about releasing it to
NPM and have been using GitHub versions everywhere.

It's interesting to think about how to make BOM parsing a more universal
solution. Some things I do for Kitspace definitely don't scale. Embedding a
lot of header aliases into npm-1-click-bom is one of them.

Anyway, sorry to make this so much about me and my work. Great to see new
platforms in this space. I am definitely going to follow along, try it out
some more and see where it goes even if we don't manage to work together, but
let's try and keep in touch.

~~~
usamaabid
My pleasure :) Great I will try it with GitHub. No worries I can understand.

>It's interesting to think about how to make BOM parsing a more universal
solution. Some things I do for Kitspace definitely don't scale. Embedding a
lot of header aliases into npm-1-click-bom is one of them.

May be we will be able to contribute back with some scalable strategies once
we start utilizing it.

> Anyway, sorry to make this so much about me and my work. Great to see new
> platforms in this space. I am definitely going to follow along, try it out
> some more and see where it goes even if we don't manage to work together,
> but let's try and keep in touch.

Oh no worries I loved your work and I am glad you shared it we would have been
reinventing the same thing when something sophisticated already existed out
there.

It would be really great if you can use the product and keep sharing the
feedback we are in it for long and we will make sure to give it the shape
hardware industry needs.

Definitely I will stay in touch even if we don't work together. I am happy
that I made a new friend here on HN today :)

------
cushychicken
This is a great space to be working on - I've wanted tools like this as a HW
engineer for a long time. Enabling remote work as an EE seems like a powerful
advantage to grant to EE contractors.

Another business I've seen pop up in this space who appears to compete with
you is Allspice - they're my neighbors here in Massachusetts. What do you do
that they don't?

[https://www.allspice.io/](https://www.allspice.io/)

~~~
usamaabid
> This is a great space to be working on - I've wanted tools like this as a HW
> engineer for a long time. Enabling remote work as an EE seems like a
> powerful advantage to grant to EE contractors

Definitely its has been a huge need and as an EE contractors it makes things
much easier to share and handover work to your clients. Documentation gets
much easier for others who join the project or extend it later on.

> nother business I've seen pop up in this space who appears to compete with
> you is Allspice - they're my neighbors here in Massachusetts. What do you do
> that they don't?

They have done some great work and its interesting to see other people trying
to solve this problem too. I really liked their simple approach.

If we make the comparison; They just offer diffing on Altium schematic file
and they are download only.

Whereas, we are cloud based VCS you can view your projects and view changes on
the go. But on top of that we offer visual annotation, documentation tools.
Not just that we are building a part database and many other features to make
it an experience for an HW engineers. So, you focus more on your
designs/projects with efficient process in place and tools that take care of
repetitive and time consuming stuff.

Also we have support for EagleCAD, KiCAD, Altium (schematic and layout)
support is under development and will be soon rolled out.

I hope this answers your question.

~~~
cushychicken
It does indeed. Thanks for your reply.

As an aside - one thing I find interesting is that Altium seems to be the
premier SCH/PCB format supported by companies like yours. Guessing that's
because Altium is a more open SW standard, and is used by more business of the
size a company like yours would prefer to target. More succinctly: Altium
seems like where the money is at.

Do you have any theories as to why more companies don't choose KiCAD or other
open tool in lieu of Altium? It seems to me there is a lot KiCAD can do, and
there's very little Altium does that KiCAD does not. Do you choose to support
KiCAD with the thought that the market will eventually move to free tools like
that?

~~~
usamaabid
>Do you have any theories as to why more companies don't choose KiCAD or other
open tool in lieu of Altium? It seems to me there is a lot KiCAD can do, and
there's very little Altium does that KiCAD does not. Do you choose to support
KiCAD with the thought that the market will eventually move to free tools like
that?

I have two things to say about this;

First to answer your question precisely, that wasn't my theory. We supported
KiCAD because it is most popular in community. We figured this based on user
surveys and feedbacks while being in private beta. Though KiCAD is my personal
favorite tool for ECAD designs as it gives me freedom to code tools for myself
with its programmable utilities (that wasn't the criteria for choice). They
two main goals of InventHub are to empower open-hardware community and help
small startups build hardware products fast so we see more innovative hardware
products coming out everyday.

Yes I agree the money is at Altium as all big companies use it and we are
definitely working on to add support for Altium because that will help us
sustain so we can empower the open-hardware community.

Second thing: My personal theory is that world is a better place when we work
together. I truly believe in community and DIY GEEKS or InventHub both were
started on the idea to build and empower the community. I have a hope that
open source will be commercially viable soon and will get bigger than
enterprises(Just the things I keep on thinking about: how will we moderate the
infrastructure for security) - Well I can keep on talking about this, but I
guess its a conversation for another thread.

~~~
cushychicken
Thanks for being so generous with your replies.

Wishing you all the success with InventHub! I hope I can get to a point where
I can considering becoming a client! (Currently slugging it out in an Orcad
shop. Bleck.)

~~~
usamaabid
No problem :) Thank you for taking out time for looking at product and asking
such questions.

Thanks for your kind wishes. We will make sure to provide you support and new
features that you’ll switch to Inventhub.

------
Animats
_" We need the legal right to do things like host Your Content, publish it,
and share it. You grant us and our legal successors the right to store, parse,
and display Your Content, and make incidental copies as necessary to render
the Website and provide the Service. This includes the right to do things like
copy it to our database and make backups; show it to you and other users;
parse it into a search index or otherwise analyze it on our servers; and share
it with other users."_

All your designs are belong to us. They don't get copyright ownership, but
they can ship the design to Shenzhen and have it made.

~~~
usamaabid
Hi John, I totally agree and we are inline with the mission of protecting open
source projects and helping design owners maintain copyright ownership. We are
even exploring avenues to work with industry leaders and lawyers to develop
new open source licenses for open hardware to help protect the projects
completely.

I am sorry for this language in our terms and policies, which shouldn't have
been there in first place. We adapted the terms of Heroku's Terms of Service
which are maintained under CC license, as engineers we were more focused on
product features initially. I will get it fixed and make sure they designs
stay the property of the owners and owners maintain copyright ownership, and
they have explicit discretion of licensing it the way they want.

~~~
elcritch
Thank you for being responsive! That said, the language quoted by the parent
doesn't appear to grant "ownership" as the parent implies, unless I'm missing
something? Still, it'd be nice to have it clearly stated.

Secondly, do you know if there is a place for founders to find ToS like these?
Or do you just copy them from providers with CC licenses? A while back there
was a project with lawyers annotating legal licenses in a wiki/git that was a
great idea.

~~~
usamaabid
Agreed and yes its good to state it more clearly.

I wasn’t able to find any best resources of ToS. The best option was adapting
these ToS covered under CC licenses.

------
contingencies
Interesting product as we do hardware and came from the software world. My
team use git on Github. For versioning we use design names and version numbers
in sequence within git, which may seem an antipattern but it is the approach
we have evolved over time, as it allows us to identify a design with a short
version number for mechanical engineering and integration purposes, work more
effectively with outside people and processes, and sidestep more cleanly the
built in RCS/VCS system in our CAM program.

We also do a lot of 3D design for mechanical parts, which is where I think
this platform could really be useful. I would encourage you to consider
expanding from electronics only to parts. There is definitely pain around
BOMs, accounting, ordering timelines, ease of purchasing (external fabrication
services as well as components), test processes (hardware equivalent CI/CD)
and so on. Part files are often large and good integration with _git-lfs_ [1]
could be a killer feature.

Also, you may find this recent comment[0] interesting.

Do you have plans to monetize? I guess one option is you could offer the
platform for free and then onsell fabrication and component services, which
solves the 'how to get money' problem without SaaS sales challenges, as well
as the 'every damn fabricator has their own (often poorly or undocumented)
format preferences' (and tends to push the cost of mistakes on the customer)
problem.

I believe there is a huge amount of value add possible in streamlining the
learning process for new hardware designers who are as yet unfamiliar with
available fabrication processes (applies mostly to parts, not PCBs) / design
approaches (PCBs also) and their relative costs, timelines, and limitations. I
would make this the core USP / selling point as it is unmatched globally. A
flowchart like selection / comparison process for a given part based on base
requirements (part volume, part material limitations, part material property
targets, part cost limitations, target production speed, overall equipment
budget, timeline, part lifetime and deployment environment, etc.), try to go
deep and get extreme clarity on trends here, I strongly suspect it will pay
dividends with new users.

[0]
[https://news.ycombinator.com/item?id=22370210](https://news.ycombinator.com/item?id=22370210)
[1] [https://git-lfs.github.com/](https://git-lfs.github.com/)

~~~
usamaabid
Hi, Interesting approach even being anti-pattern it seems a very efficient
approach.

> I would encourage you to consider expanding from electronics only to parts.

This a great idea we had parts database in mind and same visual support for
footprints and symbols. I forgot to mention in my initial comment we are also
working to develop 3D render of PCB's, Gerber and Parts.

> Part files are often large and good integration with git-lfs[1] could be a
> killer feature.

Yes we realized this recently and adding Git-lfs to not only handle large
files but to also offer File Locking that will enable teams to collaborate bit
more efficiently.

>Also, you may find this recent comment[0] interesting. Thanks for sharing
this! Looking into it.

> Do you have plans to monetize?

Yes we do, we are initially planning to charge teams for access controls and
self-hosted git, once all the features I have highlighted and use have
mentioned are in play so it adds value in team collaboration.

>onsell fabrication and component services This is an interesting approach for
pricing. I have added for discussion with my team. Let's see where it leads us
but thanks for giving this idea :)

>I believe there is a huge amount of value add possible in streamlining the
learning process for new hardware designers who are as yet unfamiliar with
available fabrication processes (applies mostly to parts, not PCBs) / design
approaches (PCBs also) and their relative costs, timelines, and limitations. I
would make this the core USP / selling point as it is unmatched globally. A
flowchart like selection / comparison process for a given part based on base
requirements (part volume, part material limitations, part material property
targets, part cost limitations, target production speed, overall equipment
budget, timeline, part lifetime and deployment environment, etc.), try to go
deep and get extreme clarity on trends here, I strongly suspect it will pay
dividends with new users.

I totally agree with you this, I am putting this on as a core USP for product
going forward wasn't considering this use-case of the product in this way. Our
part database in not out yet because of this we are trying to sort
requirements for this and design interactive Ui to bring this in play, I mean
narrowing down parts and then ability to look for possible projects to get off
the shelf integration help would make things so much similar and quicker.

Thanks for taking out time to share such in-depth feedback. It is really
helpful for us in prioritizing features for development and is giving me
another perspective to think about things.

------
alufers
Hey!

The core features work great (albeit the schematic and board preview are a bit
sluggish compared to the rest of the website). I would also like to point out
that the design of the page is really eye-pleasing. The GitHub-like file
browser is visually pleasant and feels familiar without being a direct ripoff
of GitHub.

Unfortunately I found a few minor problems concerning authentication. Namely
there is no way to use ssh keys when pushing with git. This is a real bummer
since I use generated passwords which are stored in my password manager.
Pasting passwords with special characters (which are a requirement in your
registration form) in terminals is sometimes a bit cumbersome on some
platforms. The second problem I noticed is that you cannot change your
password when logged in (without using the "I Forgot My Password" option).

Cheers!

~~~
usamaabid
Hi, Thank you for appreciating the design. We tried to make it a GitHub like
experience to avoid adoption issues and make it user-friendly.

Re- Problems: 1- We are adding the SSH keys within next two weeks along with
the sync feature with GitHub/GitLab. 2- Thanks for pointing this out I will
mark it as a priority fix and totally agree to your point. We will remove
special characters as a requirement. 3- We added the password change option
after logging in due to malfunctioning it was taken down we will be putting it
back by the end of this week.

Thanks again for taking out time to use and point these problems out.

------
imjasonmiller
It looks great and I can't wait to try it out for my first printed circuit
board.

One thing I'd suggest adding are twitter card tags [1] and others. It would
make it stand out more upon being shared on social media. I noticed it didn't
generate a thumbnail or other extra data after I did.

1\. [https://developer.twitter.com/en/docs/tweets/optimize-
with-c...](https://developer.twitter.com/en/docs/tweets/optimize-with-
cards/guides/getting-started)

~~~
usamaabid
I am glad you liked it. Do try and share your feedback.

Yes we totally missed this aspect while focusing on to develop fast experience
with conversion of designs and rendering.

~~~
usamaabid
I have forwarded it to the development team to be added asap.

------
PaulBGD_
I don't work with hardware, but this looks fantastic for viewing visual
changes and sharing feedback. Looks exactly how I'd imagine it should work.

~~~
usamaabid
Thank you Paul :)

------
lgEE
Nice interface. Seems very similar, if not exact to
[https://cadlab.io/](https://cadlab.io/)

~~~
usamaabid
Yes, it's great to see others doing the same work. The more the merrier, it's
a huge industry and we need more hands to solve this problem.

------
usamaabid
Hello.

I'm Usama, a two-time startup founder. Previously, I founded DIY Geeks in my
home country, developing maker kits locally and creating a community of makers
from the ground up. However, for the past year now, I've been working on
InventHub. It is essentially a visual version control platform with a focus on
real time collaboration for electronics development.

For most of my adult life, I've either been building a hardware product or
helping others build their product. From what I've seen, time and time again,
most people run into the same challenges:

Time-consuming research: finding parts/data-sheets, reference designs for
components in consideration, and running into issues someone else already ran
into but just to find the possible solution after hours of searching the
internet. No effective way to collaborate: most time is wasted in sync
meetings, writing reports and discussing changes...all hard to do remotely.
Continuous hassle: saving files for each iteration and naming them, etc. and
then sharing screenshots in reports as to what has changed.

And so, I thought to make a process oriented product just like GitHub with the
following two goals: Build a connected community of hardware developers and
give them a space to share and collaborate on hardware projects, which in turn
will be a vast collection of hardware designs, increasing discovery and
reusability while making resources accessible to everyone at one place. Make a
more effective process of collaboration for engineering teams - one that
allows them to focus more on product and to enable effective remote team
management, revision management, issue tracking and document generation
without juggling through multiple platforms.

The product features I have set out to build are: Visual Version Control for
better collaboration among engineering teams, with an ability to view design
files in browser, visual diffing, visual annotations, and chiefly, maintain
accurate revisions. Library Management tool to help teams view, diff and
manage revisions of symbols and footprints. Automated BOM generator that can
detect parts in a project and give you a cost estimation of how much the parts
will cost. Automated design rule checks to help with industry compliance.
Gerber Generator - For generating gerbers in compliance with the drill specs
of your prefered fabrication facility and get estimates. A connected
marketplace of manufacturers so the developers can get cost estimation for
different batch sizes and place order right from the platform.

We just came out of private beta and we are now in public beta. I am actively
looking for feedback on the product. Currently we have built the first feature
from the list above and we will release features 2 through 5 within the next
two months.

It would be great if you could try out the product and share your feedback to
help us improve the platform; if you could add to these ideas regarding
product features, it would help us prioritize features in development and we
would be especially grateful.

~~~
skmurphy
you should take a look at [https://www.pcbevo.com/](https://www.pcbevo.com/) I
think it offers analytics that complement your visualization.

~~~
usamaabid
This is interesting we were thinking of bringing such analytics soon on the
platform for different parts. Let me look into it in detail and see if there
is a possible collaboration with them on this. Thanks for sharing!

~~~
skmurphy
I interviewed the founder here [https://www.skmurphy.com/blog/2019/08/12/tim-
lombard-launche...](https://www.skmurphy.com/blog/2019/08/12/tim-lombard-
launches-pcbevo-a-unique-analysis-tool-for-pcb-layout/)

------
seba_dos1
For KiCad users, there's Eeshow: [https://kicad-pcb.org/external-
tools/eeshow/](https://kicad-pcb.org/external-tools/eeshow/)

~~~
usamaabid
Have you tried InventHub though?

------
bananaeater
When I tried out the annotate function on the home page, the finished comment
had my first name as the username associated with the annotation. How did it
know my name?

~~~
usamaabid
We have a preset names on the annotation/designs or other feature it is just a
coincidence that your name is in the preset.

------
kayson
If you don't mind me asking, how do you implement the visual diff? Is it just
based on a diff of cad files? Are they just text? Or do you have to use
gerbers?

~~~
usamaabid
That's the magical part! We implement visual diff on the native design itself
to make sure you get the most accurate diffs on your projects.

------
skvj
Looks fantastic, congrats on the launch. Using git for versioning and PCB
development has been nearly unworkable. So nice to see a visually-oriented
solution.

~~~
usamaabid
Thank you :) Do try the product and share your feedback or any feature request
you have.

------
rcfox
I see you have the Altium format coming soon. How are you handling it, given
that it's not an open format?

~~~
usamaabid
One of the open source python project helped us in understanding the format
for schematic from there onwards we explored the layout files. Hopefully we
will have something functional soon. In long term I see partnering up with
Altium, will be a better way to go about it because its not sustainable for us
to keep on reverse engineering every new update in their design formats.

------
beckingz
This makes me want to get into creating my own PCBs.

~~~
usamaabid
That’s exactly why we have built InventHub please do give me your feedback :)

