sendportal.io
Modern open source email marketing and newsletter software. Free to use.
At a glance
- Category
- Marketing
- Language
- English
- Paid-content signal
- No paid content foundObserved
- Registered
- 2017
- Hosting
- CloudflareInferred
- HTTPS certificate trusted
- PassedObserved
- Last updated
Related questions
More questions →What Are Open-Source UI Element Libraries and How Do They Differ From UI Frameworks?
An open-source UI element library is a collection of individual, ready-made interface pieces—buttons, cards, inputs, toggles, loaders—that you copy into your own project and adapt. A UI framework, by contrast, is a structured system of components, conventions, and often a theming layer that governs how your whole interface is built. The practical difference: an element library gives you a snippet; a framework gives you a way of working. If you need a polished button in ten minutes, reach for the element library. If you're building a 40-screen product with a team, you probably want the framework.
What "open-source UI element library" actually means
The term gets used loosely, so it helps to separate the parts:
- Open-source: the code is publicly available, and the license tells you what you may do with it—copy, modify, redistribute, or use commercially.
- UI element: a single, self-contained piece of interface, usually small enough to read in one sitting. A button with hover states, a pricing card, a search field.
- Library: a browsable, searchable collection of those elements, typically contributed by many different people.
On a site like Uiverse, elements are shared by a community and written in plain CSS or Tailwind. You find one you like, copy the markup and styles, paste them into your project, and adjust colors, spacing, and text to fit. There's no package to install and no build step required—which is exactly the appeal, and also the source of most of the confusion.
Element library vs. UI framework: the core differences
| Dimension | Open-source UI element library | UI framework / design system |
|---|---|---|
| Unit of reuse | A single snippet you copy | A component you import or call |
| Installation | None; paste into your code | Package install, config, sometimes a provider |
| Consistency | Depends on you; each element may look different | Enforced by shared tokens and APIs |
| Theming | Manual edits per element | Central theme/config file |
| Updates | You own the copy; no upstream updates | Version bumps bring fixes and changes |
| Accessibility | Varies per contributor; must be checked | Usually tested and documented |
| Best for | Prototypes, landing pages, small sites, one-off needs | Multi-page apps, teams, long-lived products |
| Learning curve | Low—read the CSS | Higher—learn the API and conventions |
The table isn't a verdict. It's a map of trade-offs. Element libraries win on speed and freedom; frameworks win on consistency and maintenance.
Licensing and attribution: what to check before you paste
This is where people get into trouble, and it's worth slowing down for.
- Find the license. Every element or collection should state one. Common open-source licenses include MIT, Apache-2.0, and BSD. Some projects use copyleft licenses like GPL, which can impose obligations if you redistribute your code.
- Understand what the license permits. MIT and Apache-2.0 are permissive: you can typically use the code in commercial and closed-source projects. Copyleft licenses may require you to release derivative source under the same terms.
- Check attribution requirements. Permissive licenses usually require you to keep the copyright notice and license text somewhere in your project. That's a real obligation, not a formality.
- Look for per-element terms. On community sites, the site's overall terms and the individual contributor's stated wishes may differ. If a contributor asks for credit, honor it.
- When in doubt, ask or avoid. If a snippet has no license at all, you don't have clear permission to reuse it. Treat "no license" as "not open source," even if the code is publicly visible.
This article is general information, not legal advice. For commercial products with real exposure, have someone qualified review the licenses you're relying on.
How to use a community element in your project: a practical workflow
Here's a repeatable process that avoids most of the usual mess.
1. Start from a real need, not a browsing session
Decide what you need first—"a compact primary button with a loading state"—then search. Browsing aimlessly produces a pile of pretty snippets that don't fit together.
2. Copy the smallest version that works
Take the markup and the styles. Strip anything you don't need: demo wrappers, extra animations, decorative layers. Less code means fewer surprises.
3. Convert it to your conventions
If your project uses design tokens or CSS variables, replace hard-coded values:
/* Before: hard-coded */
.button { background: #4f46e5; border-radius: 8px; }
/* After: token-based */
.button { background: var(--color-primary); border-radius: var(--radius-md); }
This one step is what keeps a copied element from looking like a foreign object in your UI.
4. Check accessibility before you ship
Community elements vary widely here. Verify at minimum:
- Keyboard focus is visible and the element is reachable by Tab.
- Color contrast meets WCAG AA (4.5:1 for normal text).
- Interactive elements use semantic HTML (
<button>, not a clickable<div>). - Form inputs have associated labels.
- Motion respects
prefers-reduced-motion.
5. Test in context
Paste it into a real page with real content. Long labels, small screens, and dark mode break more copied elements than anything else.
6. Note where it came from
Keep a short comment or an internal credits file: source, license, date. Future you—and your legal reviewer—will be grateful.
Where element libraries genuinely shine
- Prototypes and demos: you need something clickable today, not a design system.
- Landing pages and marketing sites: a handful of distinctive elements, each custom.
- Filling gaps: your framework lacks one specific component, and you don't want to build it from scratch.
- Learning: reading well-made CSS is one of the fastest ways to improve.
- Small projects: a personal site doesn't need a theming architecture.
Where they fall short
- Consistency at scale: ten elements from ten contributors rarely look like one product.
- Maintenance: you own every copy. When your design changes, you edit each one.
- Accessibility debt: you inherit whatever the contributor did or didn't do.
- No upstream fixes: a bug fixed in the original won't reach your copy.
- Integration friction: different naming conventions, different units, different assumptions about resets.
When to choose which
Choose an element library when the scope is small, the timeline is short, or you need a few distinctive pieces rather than a whole system.
Choose a framework or design system when multiple people build multiple screens over months, when consistency is a product requirement, or when accessibility and theming need to be guaranteed rather than checked.
A hybrid works well for many teams: adopt a framework for the structural components—forms, navigation, layout—and borrow individual elements for the places where you want personality. Just route every borrowed element through the same token and accessibility checks, so it lands as part of your system rather than beside it.
The short version: open-source UI element libraries are a fast, flexible way to get good-looking interface pieces into a project. They are not a substitute for a design system, and the license and accessibility details are the part worth reading carefully.
What is SendPortal?
SendPortal is an open-source, self-hosted email marketing and newsletter platform built on Laravel. You install and run it on your own server, which means your subscriber data and campaign history stay under your control rather than sitting in a vendor's cloud. It fits teams that want the core features of a hosted email tool — lists, segments, campaigns, and tracking — without paying per-subscriber pricing or handing over their data.
What SendPortal actually does
The platform covers the standard email marketing workflow:
- Subscriber & list management — import or update contacts through the REST API or a CSV upload, then split them into custom-defined segments.
- Campaign management — send to your full list or a specific segment, and build your own templates.
- Message tracking — sending, opens, clicks, bounces, and unsubscribes are tracked automatically per campaign.
- Multiple workspaces — run several teams or brands from one interface.
- REST API — integrate SendPortal with other systems programmatically.
The project describes itself as "unlimited everything": unlimited users, subscribers, segments, and messages. That claim is a consequence of self-hosting — there is no vendor metering your usage.
How it differs from MailChimp and Campaign Monitor
The fundamental difference is who runs the software and holds the data.
| Dimension | SendPortal | Hosted tools (MailChimp, Campaign Monitor, etc.) |
|---|---|---|
| Hosting | Self-hosted on your own infrastructure | Vendor-hosted SaaS |
| Data ownership | You control it | Held by the vendor |
| Cost model | Open source; you cover your own hosting and sending | Typically scales with list size or volume |
| Setup effort | You install and maintain it | Sign up and start sending |
| Extensibility | Open source, Laravel-based, REST API | Varies by plan and vendor |
SendPortal positions itself explicitly against these tools on cost and control. The trade-off is real: self-hosting means you are responsible for installation, upgrades, server uptime, and deliverability setup.
Who it's for
SendPortal makes sense if you:
- Want your subscriber list to stay on infrastructure you control.
- Have (or can get) someone comfortable deploying and maintaining a Laravel application.
- Send at a volume where per-subscriber SaaS pricing has become a significant cost.
- Need API access and don't want it gated behind a higher pricing tier.
It's a weaker fit if you have no technical capacity to run a server, or if you need a fully managed sending reputation and support contract out of the box.
Getting started
SendPortal is distributed as open source, with documentation and a GitHub repository linked from the project site. Version 2 introduced the ability to install it as a package, which simplifies deployment compared to a full manual setup. From there, the typical path is: connect your sending method, import subscribers via CSV or API, define segments, build a template, and launch a campaign — then watch opens, clicks, bounces, and unsubscribes in the tracking view.
Because it is self-hosted, the practical prerequisites are a server environment capable of running a Laravel application and a plan for how email will actually be delivered. Those are the two areas to sort out before you commit, since they determine both your real cost and your deliverability.
How to Integrate SendPortal into Existing Workflows
SendPortal integrates into existing workflows through three main channels: a flexible REST API for connecting external systems, CSV upload or API import for subscriber data, and package installation for embedding it directly into a Laravel project. If your team already runs a Laravel application, the package route gives the tightest integration. If you're connecting SendPortal to tools like a CRM, e-commerce platform, or custom backend, the REST API is the primary path. CSV upload covers one-off or bulk subscriber imports when you don't need automation.
Integration Options at a Glance
| Method | Best for | What you control |
|---|---|---|
| REST API | Connecting external systems, automating subscriber and campaign actions | Requests your app sends and how you handle responses |
| CSV upload | Bulk or one-off subscriber imports | The file you prepare and the fields it maps to |
| Package install | Embedding SendPortal inside a Laravel project | How it lives within your existing codebase |
Using the REST API
SendPortal exposes a flexible REST API, which is the main mechanism for wiring it into automated workflows. The general pattern:
- Identify the action you want to automate — for example, adding a subscriber when someone signs up on your site, or syncing a segment from your CRM.
- Send the request from your existing system to the relevant SendPortal endpoint.
- Verify the result in SendPortal — confirm the subscriber appears in the expected list or segment, and that any campaign or tracking data updates as expected.
The API is described as flexible, so it can support custom integrations rather than forcing a fixed data shape. The site does not publish endpoint-level documentation on the homepage; the Docs and GitHub links referenced on the page are where the concrete request formats live.
Importing and Updating Subscribers
Subscriber data can enter SendPortal two ways:
- CSV upload — prepare a file of customers and import them in bulk. This suits migrations or periodic batch updates.
- API — import or update customers programmatically, which suits ongoing sync from another system.
Once subscribers are in, you can organize them with custom-defined segments. Segments are what let a workflow target a specific group rather than the whole list — for example, sending a campaign only to subscribers who came from a particular source.
Embedding as a Laravel Package
Version 2 of SendPortal can be installed as a package. This matters if your existing workflow already lives inside a Laravel application: instead of running SendPortal as a separate self-hosted instance and talking to it over the API, you can bring it into the project itself. The site notes the software is powered by the Laravel community, so the package route aligns with that stack.
Choose this path when your team is Laravel-based and wants SendPortal to share the same codebase and deployment rather than operate as a standalone service.
What to Check Before You Commit
- Stack fit — the package route assumes Laravel. If your systems aren't Laravel-based, plan around the REST API or CSV instead.
- Data ownership — SendPortal is self-hosted, so your data stays under your control. That's a reason to integrate it, but it also means you're responsible for the hosting and the integration plumbing.
- Scale assumptions — the site advertises unlimited users, subscribers, segments, and messages, so integration design isn't constrained by per-tier limits described on the page.
- Tracking feedback — message sending, opens, clicks, bounces, and unsubscribes are tracked per campaign, so your workflow can read that data back rather than only pushing data in.
A Practical Starting Point
If you're unsure which route fits, start with the question of where the trigger lives. A signup on your website or a status change in your CRM points to the REST API. A one-time list migration points to CSV. A Laravel app that should own the whole flow points to the package install. The homepage's Docs and GitHub links are the places to confirm exact request formats and installation steps before building.
Why choose self-hosted email marketing with SendPortal?
SendPortal is an open-source, self-hosted email marketing and newsletter platform built on Laravel. You choose it when you want your subscriber data to stay on infrastructure you control, when per-contact pricing on hosted platforms has become a budget problem, and when you have (or can get) someone comfortable running a PHP/Laravel application. If you have no server, no one to maintain it, and need deliverability handled for you, a hosted service is the more realistic choice.
What "self-hosted" actually changes
With a hosted platform, your list lives in someone else's database and your costs scale with list size. With SendPortal, the application runs on your own server. The site states the data is always under your control, and that the trade-off is a large saving compared to MailChimp, Campaign Monitor and similar tools.
That control is real but partial. SendPortal manages subscribers, campaigns and tracking; it does not deliver email by itself. You still send through an SMTP provider or API-based sending service, and that provider is where deliverability, IP reputation and abuse handling live. Self-hosting moves the list and the software, not the sending infrastructure.
Core capabilities
| Area | What it does |
|---|---|
| Subscriber & list management | Import or update subscribers via API or CSV upload; build custom-defined segments |
| Campaign management | Send to all subscribers or to specific segments; create your own templates |
| Message tracking | Tracks sending, opens, clicks, bounces and unsubscribes per campaign |
| Multiple workspaces | Manage multiple workspaces or teams through one interface |
| API | REST API for integration |
| Limits | Unlimited users, subscribers, segments and messages |
The "unlimited everything" claim is a software licensing statement, not a capacity guarantee. Your server, database and sending provider still impose real ceilings.
Who this fits
- You already run Laravel or PHP infrastructure. Version 2 can be installed as a package, which fits teams that want it inside an existing Laravel application rather than as a standalone install.
- List size is driving your bill. If you are paying a hosted platform per contact and the list keeps growing, self-hosting shifts cost toward fixed server and sending expenses.
- You need code-level control. Open source under an active Laravel community means you can read, audit and extend the code rather than file a feature request.
- You handle multiple brands or teams. Workspaces let you separate them without separate accounts.
Who should not choose it
- No one to maintain a server. Upgrades, backups, security patches and database care are yours.
- Deliverability is your main worry. A self-hosted app does not fix a poor sending reputation; you still need a competent sending provider and proper authentication (SPF, DKIM, DMARC).
- You need a support contract. Community-driven open source means help comes from docs, GitHub and the community, not a guaranteed SLA.
Before you commit
- Confirm you have a host that meets the application's requirements and someone who can deploy a Laravel app.
- Decide on your sending provider first — it determines deliverability and a large share of your real cost.
- Test the CSV import and segment logic against a copy of your existing list.
- Run one campaign end to end and verify that opens, clicks, bounces and unsubscribes are recorded as expected.
The honest summary: SendPortal is a strong fit when control and cost per subscriber matter more than convenience, and a poor fit when you want email marketing to be someone else's operational problem.
What features does SendPortal offer for email marketing?
SendPortal is a self-hosted, open-source email marketing application built on Laravel. It covers the core loop of running a newsletter: managing subscribers, segmenting them, sending campaigns, and tracking what happens after each send. Because it is self-hosted, your subscriber data stays on infrastructure you control, and the project describes unlimited users, subscribers, segments, and messages rather than tiered caps.
Subscriber and list management
SendPortal handles the contact side of email marketing in two ways:
- Import and update subscribers via the REST API or CSV upload, so you can sync from an existing CRM, signup form, or database export.
- Segment subscribers using custom-defined segments, which the site describes as a way to "slice and dice" your audience.
In practice, this means you can keep one master list and build segments for different send groups — for example, a segment for customers who signed up in the last 90 days, or one for a specific product interest — then target campaigns at those segments instead of the whole list.
Campaign management
Campaigns can be sent to all subscribers or to specific segments. SendPortal also lets you create your own templates, so the visual design of a newsletter is not fixed to a single built-in layout. The workflow is: define the audience (all or a segment), attach or build a template, and send.
Message tracking
Tracking is automatic per campaign. SendPortal records:
| Event | What it tells you |
|---|---|
| Sending | Whether the message went out |
| Opens | Whether recipients opened it |
| Clicks | Whether they clicked a link |
| Bounces | Addresses that failed to deliver |
| Unsubscribes | Recipients who opted out |
Because these are tracked per campaign, you can compare performance across sends and clean up lists based on bounces and unsubscribes.
Multiple workspaces
A single interface can manage multiple workspaces or teams. This suits agencies or organizations running separate brands, clients, or departments from one installation, keeping their lists and campaigns separated without standing up a new instance for each.
Integration and extensibility
SendPortal exposes a flexible REST API, which is the main path for integrating it with other systems — syncing subscribers, triggering sends, or pulling tracking data into another dashboard. It is open source and powered by the Laravel community, so the code can be inspected and modified.
What to weigh before choosing it
SendPortal's advantages are control and cost: self-hosting keeps your data under your control, and the site positions it as a large saving compared with services like MailChimp and Campaign Monitor. The trade-off is operational — you run and maintain the installation yourself, including the sending infrastructure, rather than paying a hosted provider to handle deliverability and uptime. If you want a hosted service with no server management, this is not that; if you want ownership of the data and the code, the feature set above is what you get.
Website Overview
An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.
Domain and Registration
Registered in 2017, this domain has about 9 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is NameCheap, Inc., a widely used domain service provider. The domain uses the common .io extension, which is not an independent safety signal.
DNS and Email
Nameservers are provided by Cloudflare, indicating managed DNS hosting. No CNAME was found; the observed records resolve directly to addresses. No MX record was found. A conventional explicit inbound-mail route is not configured. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed. The lowest observed DNS TTL is 300 seconds.
TLS and Certificates
The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.
HTTP and Browser Security
The response lacks these common security headers: HSTS, CSP, Referrer-Policy, Permissions-Policy. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header identifies cloudflare without an exact version.
Technology Stack Analysis
The public page identifies Bootstrap, Cloudflare without precise versions, leaving fewer clues for version-specific scanning.
Search and Social Sharing
No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. Open Graph is partially configured; og:description, og:image is missing. The title has 49 characters, within a common display range. A meta description is present, with 72 characters. The observed directives allow indexing and link following.
Hosting and Email
Registration details
| Registrar | NameCheap, Inc. |
|---|---|
| Registered | 2017-04-28 |
| Expires | 2027-04-28 |
| Domain status | clientTransferProhibited https://icann.org/epp#clientTransferProhibited |
| Nameservers | gina.ns.cloudflare.com、glen.ns.cloudflare.com |
| DNSSEC | unsigned |
DNS records
TLS and certificates
HTTP response headers
| Header | Value |
|---|---|
| content-type | text/html; charset=UTF-8 |
| cache-control | no-cache, private |
| server | cloudflare |
| x-frame-options | SAMEORIGIN |
| x-content-type-options | nosniff |
| set-cookie | Redacted |
Identified technologies
Pages, Search and Sharing
| Meta description | Modern open source email marketing and newsletter software. Free to use. |
|---|---|
| Canonical URL | Not detected |
| Language | English (default) |
| Twitter Card | Not detected |
Social Sharing Preview
2 fieldsrobots.txt (opens in a new tab)
0 rulesAll bots 0 allowed · 0 disallowed
No matching rules.
Sitemaps
0No sitemaps found
Recent Updates
- Website images
- Screenshots
- Network details
- Website Technologies
- Pages and Search Information
- TLS and certificates
User reviews (0)