FAQ

Common questions about licensing, Solana specifics, and compatibility.

Licensing

Are all blocks really free?

Yes. Every block on MarrowStack is free and MIT licensed. Sign in with GitHub OAuth or a Solana wallet and copy any block directly from the browser. No payment, no waitlist.

Can I use a block in commercial projects?

Yes. The MIT license lets you use, modify, and distribute the code in any project — personal or commercial — without restriction. Attribution is not required.

Do I get updates?

Yes. Blocks are updated in their public GitHub repositories. Pull the latest version of any block and copy the changed file into your project. There is no auto-update mechanism — you control when you adopt changes.

Access

How do I get a block?

Sign in at marrowstack.dev (GitHub OAuth or Solana wallet), open any block, and click Copy all files. All file contents are copied to your clipboard. Paste them into your project. No cloning required.

Is there a CLI or code generator?

No. MarrowStack blocks are plain TypeScript files. Copy the file, run the SQL migration, set env vars. No generator, no scaffold tool, no dependency on a MarrowStack package at runtime.

Why do I need to sign in just to copy?

Sign-in prevents anonymous abuse of the copy API and lets us track which blocks are most useful. Both GitHub OAuth and Solana wallet sign-in take under 30 seconds.

Solana-specific

Do the Solana blocks work on mainnet?

Yes — set NEXT_PUBLIC_SOLANA_CLUSTER=mainnet-beta and SOLANA_RPC_URL to a private RPC endpoint. The playground on this site is hardcoded to devnet and cannot be switched to mainnet.

Which wallets does Solana Auth support?

The WalletProviders component bundles adapters for Phantom, Solflare, and Backpack. For wallets that support the SIWS standard (solanaSignIn), the hook uses it. For wallets that don't, it falls back to signMessage.

Does Solana Payments support tokens other than USDC?

No. The block is hardcoded to USDC on the configured cluster. Supporting other SPL tokens would require modifying the USDC_MINTS constant and removing the USDC mint correct verification check — we don't recommend this.

Does Solana Payments support recurring billing?

Solana has no native pull payments — no wallet gives a protocol the permission to debit it on a schedule. The subscription scaffold in the payments block tracks billing cycles and generates new payment requests. Users must approve each payment. There are no silent recurring debits.

Why do you recommend a private RPC?

Public Solana RPC endpoints (devnet and mainnet-beta) have rate limits measured in requests per second. The payment confirmation poller calls findReference every 3 seconds per active payment. Under even moderate load this will hit rate limits. Helius, QuickNode, and Alchemy all have free tiers that are sufficient for early-stage apps.

Compatibility

Does it work with Next.js 15?

Yes. Blocks are tested against Next.js 14 and 15 with the App Router. The Pages Router is not supported.

Does it work with Prisma / Drizzle / Kysely?

The web2 blocks use Supabase's JavaScript client directly. The Team Workspace block has an ORM adapter pattern — see the Teamspace docs for how to swap the default implementation. The Auth and Admin blocks can be adapted similarly, but the migration path requires more manual work.

Does it work with other databases (PlanetScale, Neon, Railway Postgres)?

The SQL migrations use standard PostgreSQL and should run on any Postgres-compatible database. The Supabase client can be replaced with pg or any Postgres driver — the block's database adapter calls are isolated to a small set of query functions at the bottom of each file.

Does it work with Bun?

Yes. All blocks are tested with Bun 1.x as the runtime. bun install and bun dev work without any additional configuration.