Formcord - Why I built this as an npm package
From a personal contact form to a reusable Discord notification package.
This started as a small thing in my portfolio. I had a contact form and wanted messages to show up in Discord so I would not miss them.
At first, it was just a simple setup that worked for my site. Nothing special. But every time I needed the same thing in another project, I ended up copying the same code again and again. That got annoying pretty quickly.
So I thought, why not just turn this into something reusable?
The First Spark
The initial version was just a basic Discord API call. It did the job, but it was stuck inside one project.
Whenever I wanted the same feature somewhere else, I had to copy it, adjust it, and hope I did not break anything. It felt messy and repetitive.
That is when I started thinking about making it a small package that I could just install and use anywhere.
Turning It Into a Package
I kept a few simple rules while building it:
- Use standard Web APIs like fetch and JSON
- Avoid anything Node-specific so it works in serverless and edge environments
- Keep it small and easy to understand
I started with a core sender, then added helpers for common use cases like contact forms, errors, feedback, and bug reports.
Each one just builds a clean message and sends it. No complicated setup.
The Best Part
The best part is how easy it became to reuse. What started as a one-off feature is now something I can drop into any project.
I also added simple theming for embeds so it can look a bit nicer without extra effort.
Shipping It
Publishing it to npm felt good. I kept everything simple, added basic docs, and made sure it works where I actually need it.
It is the kind of tool I wish I had earlier, so I made it.
What's Next
- Add more helpers based on real use cases
- Maybe support other platforms later
- Keep the core simple and stable
If you want to try it, search for formcord on npm.
GitHub: Link Here