Open source ecommerce,
done right

Self-hosted, Handlebars-themed ecommerce on Node.js and SQLite.

You're on the list. We'll be in touch.

No spam. Unsubscribe any time.

yourstore.com
Amazing products
for amazing people
Shop Now →
Featured Products View all →
Beautiful
£30.00
Wonderful
£30.00
Brilliant
£30.00
Fantastic
£30.00
The problem

WooCommerce is WordPress
wearing a shop

WooCommerce works. But it's built on top of a CMS from 2003, held together by plugins that conflict with each other, require separate licences, and break on every major update.

You end up maintaining a WordPress site, a WooCommerce install, a payments plugin, a search plugin, a caching plugin - each with its own settings screen, its own update cycle, its own support forum.

squaark is a purpose-built ecommerce platform. SQLite is embedded - there's no database server to install or maintain. One process. You're selling.

squaark WooCommerce
Dependencies to run 1 10+
Built-in search Plugin required
Theme system Handlebars + zip PHP + WP hooks
Import from WooCommerce ✓ Built in -
Works without JS Varies
Update process git pull Pray nothing breaks
Analytics ✓ Built in Plugin required
Customer accounts ✓ Built in Plugin required
Open source ✓ MIT GPL / freemium
What's included

Everything built in.
Nothing bolted on.

squaark ships as a single Node.js process. The features below are part of the platform. They aren't plugins, add-ons, or a marketplace purchase.

Handlebars themes
Themes are a folder of .hbs files and CSS. No SPA, and no build pipeline required. If you can write HTML, you can build a theme, package as a zip and install from the admin.
SQLite, embedded
No separate database process to install or connect to. SQLite lives inside the Node.js process. Everything is in one file including search, sessions, background jobs, config, and you can back up with cp.
htmx interactivity
Pages work without JavaScript. Add-to-cart, quantity updates and live theme config preview are all powered by HTML fragments returned from the server. Htmx is a progressive enhancement, not a requirement.
Full-text search
SQLite's FTS5 engine handles product search with relevance ranking and prefix matching. Title matches outrank description matches.
Stripe and PayPal
Both payment providers work out of the box and can run simultaneously. There is no payments plugin to license or keep in sync.
Live theme editor
Change colours, fonts, and layout from the admin panel and see changes in a live preview before saving.
WooCommerce import
Migrate your existing woocommerce store with the built-in import tool. You can use the wordpress export tool or the wordpress API which will bring your products, collections and orders into your squaark store.
Customer accounts
Customers can register, sign in, and view their order history directly on the storefront. After checkout they're prompted to set a password. You can toggle customer accounts it on or off in Settings.
Built-in analytics
Your dashboard shows key analytics such as page views, unique visitors, top pages, and top referrers. You can of course add your own analytics but by default there is no cookie banner and no data leaving your server.
Multi-user admin
Add staff accounts with a restricted role: they can manage products and orders but can't touch settings, themes, imports, or user management. Useful once the team grows beyond just you.
System logs
Payment events, sent emails, and server errors are captured and viewable in the admin under Settings → Logs. No need to SSH in to debug a failed payment or a bounced confirmation email.
Secure by default
CSRF protection on every form. Content Security Policy headers on all storefront pages. Argon2id password hashing. Theme uploads validated for path traversal before installation.
Self-hosting

Clone, configure, start.

One Node.js process, SQLite embedded with no database server. Run it on any VPS, any machine, or any platform that can run Node.

terminal
# Clone and configure
git clone https://github.com/squaark/squaark
cd squaark && cp .env.example .env
# Set STORE_NAME, STRIPE_SECRET_KEY, PAYPAL_CLIENT_ID, SESSION_SECRET in .env

# SQLite is embedded - no database server to start or connect to
node server.js

# Or with Docker (single container, no compose file needed)
docker run -p 3000:3000 -v ./data:/app/data squaark/squaark

→  Store running at  http://localhost:3000
→  Admin panel at    http://localhost:3000/admin

Migrating from WooCommerce? The admin panel includes an import tool for products, collections, customers, and order history. Export from WooCommerce, upload in squaark.

Pricing

Free to self-host.

squaark is open source. The self-hosted version is and always will be free.

Coming soon

Pro

TBD

We run the infrastructure, you run the store.

  • Everything in self-hosted
  • Managed hosting & backups
  • Custom domain & SSL
  • Email deliverability
  • Launch date TBD
  • Pricing TBD
Early access

Be first to know when we ship

squaark is in active development. Drop your email and we'll let you know when the open source release is ready.

You're on the list. We'll be in touch.

No spam. Unsubscribe any time.